楼主: JimmyzZZ

[源码] @xiaomeng242 求10000以内的最大质数本人答案

[复制链接]

0

技术

1

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
877
人气
25
分享
0
发表于 2022-8-11 22:51:08 | 显示全部楼层
JimmyzZZ 发表于 2022-8-11 10:29
如果你这个精确到15位的话,几乎没有意义,因为你只是在测试效率,并且别人并没有这样的精度,如果他只是 ...

不是显的NB,是python解释器很NB
众所周知,python经常做科学计算的应用程序,有的对时间要求很高,这个是python本身就自带的功能,并不是我写代码要求它去精确到小数点后15位的。

四舍五入的话,那就统一精确到某位数就好了。

0.9循环其实与1是有差别的,因为1/3×3=1,这个就没有办法解释了

0

技术

14

魅力

1

原创

退休版主

Rank: 8Rank: 8

积分
7413
人气
365
分享
53

活跃会员灌水之王荣誉管理

 楼主| 发表于 2022-8-12 06:43:15 | 显示全部楼层
xiaomeng242 发表于 2022-8-11 22:51不是显的NB,是python解释器很NB
众所周知,python经常做科学计算的应用程序,有的对时间要求很 ...

如果精确到某位数而另一个语言顶多只能精确到万分位,15位数有意义吗?参考木桶原理
小白虚心请教,Python那么为什么不在工业级别的东西里用?(我是真的不知道

0.9循环就是1。初级证法,0.9循环=9/9=1
还是那句话,说0.9循环和1的差距是ο,然而当我们用ο的时候,其实已经承认他们相等了。。

另外,如果我们通过这个级数来表示
那么根据单调有界定理,他最终会收敛,可以证明用小数0.9循环表示1是合理的。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

技术

4

魅力

2

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
3950
人气
161
分享
46

优秀版主活跃会员

发表于 2022-8-12 11:37:51 | 显示全部楼层
@xiaomeng242


借楼发答案(Java编写,jdk版本17.0.2)

(有时间我会试试别的语言)

[Java] 纯文本查看 复制代码
package PN;
import java.lang.*;
public class pm {
    public static void main(String[] args){
        long start=System.currentTimeMillis();
        int maxprime=0;
        for(int i=2;i<=10000;i++){
            Boolean flag=false;
            int j;
            for(j=2;j<=Math.sqrt(i);j++){
                if(i%j==0){
                    break;
                }

            }
            if(j>Math.sqrt(i)){
                flag=true;
            }
            if(flag){
                if(i>maxprime){
                    maxprime=i;
                }
            }
        }
        long end=System.currentTimeMillis();
        System.out.println(maxprime);
        System.out.println((end-start)+"毫秒");
    }
}


我用了两种计时方法,一个是毫秒一个是纳秒,发现纳秒每次误差比较大,于是代码里给的是毫秒的代码

运算方法是素数的定义(最朴素的一种算法)







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 1人气 +3 收起 理由
xiaomeng242 + 3

查看全部评分

论坛邮箱:henry217@x64.site

1

技术

4

魅力

2

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
3950
人气
161
分享
46

优秀版主活跃会员

发表于 2022-8-12 11:45:12 | 显示全部楼层
@xiaomeng242 另外给个建议

10000以内的计算速度过快,误差非常大,无统计比较的意义

建议改成运算量更大的题目
论坛邮箱:henry217@x64.site

0

技术

1

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
877
人气
25
分享
0
发表于 2022-8-12 12:01:55 | 显示全部楼层
henry217 发表于 2022-8-12 11:45
@xiaomeng242 另外给个建议

10000以内的计算速度过快,误差非常大,无统计比较的意义

是的,我出的时候没想到会这么快

附:原来java没有python快(假)

1

技术

4

魅力

2

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
3950
人气
161
分享
46

优秀版主活跃会员

发表于 2022-8-12 13:34:09 | 显示全部楼层
xiaomeng242 发表于 2022-8-12 12:01
是的,我出的时候没想到会这么快

附:原来java没有python快(假)

真没有Python快?

你Python用的什么算法
论坛邮箱:henry217@x64.site

0

技术

1

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
877
人气
25
分享
0
发表于 2022-8-12 14:27:12 | 显示全部楼层
henry217 发表于 2022-8-12 13:34
真没有Python快?

你Python用的什么算法

埃拉托斯特尼筛法,3毫秒算出答案,并且只用了10行代码

不过我有点玩赖了@henry217

1

技术

4

魅力

2

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
3950
人气
161
分享
46

优秀版主活跃会员

发表于 2022-8-12 14:29:19 | 显示全部楼层
xiaomeng242 发表于 2022-8-12 14:27
埃拉托斯特尼筛法,3毫秒算出答案,并且只用了10行代码

不过我有点玩赖了@henry217  ...

建议统一算法

否则比较也没有意义
论坛邮箱:henry217@x64.site

0

技术

1

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
877
人气
25
分享
0
发表于 2022-8-12 14:45:49 | 显示全部楼层
henry217 发表于 2022-8-12 14:29
建议统一算法

否则比较也没有意义

也是,那你用埃拉托斯特尼筛法写一遍试试?

主要是我考虑到有些算法比较复杂,不是每个人都能写出来的

0

技术

1

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
877
人气
25
分享
0
发表于 2022-8-12 14:57:58 | 显示全部楼层
JimmyzZZ 发表于 2022-8-12 06:43
如果精确到某位数而另一个语言顶多只能精确到万分位,15位数有意义吗?参考木桶原理
小白虚心请教,Python ...

是这样的,我的毫秒数是用浮点表示的,浮点数是用机器上浮点数的本机双精度(64bit)表示的,提供大约17位的精度和范围从-308到308的指数。和C语言里面的double类型相同。

你说工业里不使用,这个说的就广泛,工业包括的范围很大。你告诉我但是是哪门工业,是机器工业还是什么,而且python是可以操控硬件的,不过很烧钱的

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表