[问题] Python 大数据处理

楼主: decken (HAHAHA~)   2015-11-12 19:14:53
大家好,
写了一个求质数程式(列出1~1000000000之间所有质数):
http://i.imgur.com/WxDZQun.png?1
def is_prime(num):
if num == 2:
return True
if not num & 1:
return False
return pow(2, num-1, num) == 1
for i in xrange(3, 1000000000+1):
if is_prime(i):
print i
发现Python在处理大数据时的效率并不好,
上面的程式执行需要半小时以上(程式写得不好也是原因之一),
不知道大家处理大数据还是会用C/C++吗?
谢谢!
作者: ccwang002 (亮)   2015-11-12 19:33:00
1M 算大数据吗…… 而且你算法应该不是列出你要的质数恩你是用 Fermat primality test?
作者: yogi (Yogi)   2015-11-12 19:37:00
好妙的判断prime法
作者: ccwang002 (亮)   2015-11-12 19:38:00
算到 1e6 的时候,就要算 2 ** (1e6-1) 感觉数字很大一般常见是用 Sieve of Eratosthenes 去筛质数例如 num = 341 就是反例,他不是质数(查 wiki 的)更多例子:https://oeis.org/A001567
楼主: decken (HAHAHA~)   2015-11-12 20:15:00
感谢回复,来看一下!
作者: CaptainH (Cannon)   2015-11-12 22:47:00
这就是资工系价值所在
作者: mikapauli (桜花)   2015-11-12 23:04:00
他的问题是可能没空间放质数表吧?不然直接做质数表就好另外一直print其实也会需要些时间。而且怎么会用Fermat's little theorem? XD要也是用Wilson's theorem吧(误
作者: MOONY135 (谈无欲)   2015-11-13 11:07:00
这样算大数据?这个只是质数就会有这种特性吧 数论上找质数不是这样找的好久没有碰数论问题了 好怀念
作者: johnny94 (32767)   2015-11-17 15:48:00
这叫 Big Number 不是 Big data
作者: MIKEmike07 (加油!)   2015-11-22 15:54:00
推楼上,差点喷饭XD

Links booklink

Contact Us: admin [ a t ] ucptt.com