设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2915|回复: 12
打印 上一主题 下一主题

[随意闲聊] 教你快速判素数

[复制链接]

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

跳转到指定楼层
1
发表于 2011-8-10 01:16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
听完神犇的话后...
对干x<2^31-1我们有
x为素数当且仅当

a^x-1%x=1对a<21的正立整数成立
叫我是费马小定理
用二分快速幂,简单,有滋味。
哎呀,蛋疼什么的最有爱了

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42409
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2011-8-10 01:19:04 | 只看该作者
喲!菲菲姐威武,前排學習。
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2007-12-16
帖子
3454
3
发表于 2011-8-10 01:53:14 | 只看该作者
本帖最后由 做游戏的新手 于 2011-8-10 01:54 编辑

for i:=2 to trunc(Sqrt(x)) do if x mod i = 0 then exit(false)
特殊判断 if x<=1 then exit(false);
if x=2 then exit(true)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
4
发表于 2011-8-10 03:53:17 | 只看该作者
本帖最后由 苏小脉 于 2011-8-10 03:59 编辑

Fermat 素性测试是非确定性的,它测的是拟素数,不是素数。从 Fermat 小定理的前件可以推出那个同余式,但它的逆命题却是假的。你只能说:如果你找到一个数 a 使得 a^(n-1) %n != 1 不同余,那么 n 就必然是合数。但如果反过来,就可能有合数 n 满足"所有与 n 互质的整数 b 都满足 b^(n-1)%n = 1"这个条件,这样的数被称为 Carmichael 数。

目前全世界最快的可用于所有自然数的确定性素性测试法是 AKS 素性测试,前几年被证明在 O(log6(n)) 时间内运行。有比它更快的测试,但要么就是非确定性的,要么就是有特定条件限制的。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

5
发表于 2011-8-10 09:05:18 | 只看该作者
本帖最后由 IamI 于 2011-8-10 09:15 编辑

这个费马小定理测出来的质数不是有反例的么……Matrix给出了2组“基本正确”的方法来着……
你信不信这货可以判定质数?
  1. /^1?$|^(11+?)\1+$/
复制代码
(先转二进制)
猛击我看上面这个诡异的正则原文
猛击我拆费马质数台
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
554 小时
注册时间
2007-6-25
帖子
1188
6
发表于 2011-8-10 09:51:02 | 只看该作者
←_←虽然不明白但是觉得好厉害啊
我记得素数的判断是只能用筛选法的吧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
7
发表于 2011-8-10 09:55:49 | 只看该作者
IamI 发表于 2011-8-10 09:05
这个费马小定理测出来的质数不是有反例的么……Matrix给出了2组“基本正确”的方法来着……
你信不信这货可 ...

那个不是二进制,是把 n 变为 n 个 "1" 串联后的字串 -v-

Miller–Rabin 素性测试原是非确定性的,后来在其基础上又演变出了确定性的变异版,只是算法依赖于至今仍未能证明或反证的  Riemann (黎曼)猜想。


苏小脉于2011-8-10 10:01补充以下内容:
SOU 发表于 2011-8-10 09:51
我记得素数的判断是只能用筛选法的吧? ...

通常在生成素数的列表的时候才用筛法,检测单个数的素性则另有多种(概率性的、确定性的)检测法,而不用把前面所有的素数都罗列出来。现今做研究的人找大质数通常都是用快速的概率性素性检测来找伪素数,然后再进行验证。

点评

SOU
原来如此,谢谢你=w=  发表于 2011-8-10 10:10
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
55 小时
注册时间
2009-8-30
帖子
449
8
发表于 2011-8-10 11:33:24 | 只看该作者
那啥,你们在说啥……&素数是啥?

点评

质数(根本没解释吧喂  发表于 2011-8-10 11:52
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

9
 楼主| 发表于 2011-8-10 13:13:09 | 只看该作者

本帖最后由 yangff 于 2011-8-10 13:15 编辑
苏小脉 发表于 2011-8-10 03:53
Fermat 素性测试是非确定性的,它测的是拟素数,不是素数。从 Fermat 小定理的前件可以推出那个同余式,但 ...


所以a从1~20可以使反例在2^31-1范围内不存在= =|我记得是这样?至少OI是没问题了
---------------------------------------------------------------------------------------------------------------------------------
log6N是骗人的AKS常数硕大无比,效率爆差2999...999977这伙敢跑3分钟……
---------------------------------------------------------------------------------------------------------------------------------
据说神犇用的都是Log10N的。
---------------------------------------------------------------------------------------------------------------------------------
据说ZJ有牛人出过线性筛能过,没优化的不能过的素数题
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

10
发表于 2011-8-10 15:47:59 | 只看该作者
理论性太强,表示无法理解……
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 11:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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