数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
123
返回列表 发新帖
楼主: 天山草

您需要 100 亿以内的素数表吗?

[复制链接]
 楼主| 发表于 2011-7-9 12:36 | 显示全部楼层

您需要 100 亿以内的素数表吗?

下面引用由elimqiu2011/07/09 05:01am 发表的内容:
在 mysql 数据库中,前一百五十万个素数占用了 8kb(一点不吹!)。所以用数据库储存素数比文本要经济得多。另外,各种统计性的信息可以通过对数据库询问而得到。
这种数据库技术真厉害,若是普通文本文件,前150万个素数即使“压缩”后,也仍有2176kb,跟人家相差几百倍。
发表于 2011-7-9 13:09 | 显示全部楼层

您需要 100 亿以内的素数表吗?

数据库技术真厉害,能把30位以内的素数表全部储存吗?
发表于 2011-7-9 13:19 | 显示全部楼层

您需要 100 亿以内的素数表吗?

天山草老师好!祝您回家兼避暑愉快!我无能力下载一百亿素数表,也不打算要;您说指定要某素数都能得到,我想得到在一百亿中的素数分为30n+7  30n+11  30n+13 30n+17  30n+19  30n+23  30n+29  30n+31这八种形式的数据,不知能否分出?如果能分,请老师不忙时给予帮忙,万分感谢!我曾猜测这八种素尾数的素数个数一样多,谢谢!
发表于 2011-7-9 13:33 | 显示全部楼层

您需要 100 亿以内的素数表吗?

综合以上关系得出:
(1)素数的数型公式可有无限多个,所以素数是无限的。
(2)“模根剩余法”是不同于艾氏筛法的又一种素数判定方法,它能通过对较小模根数的判定得到较大的素数。模根剩余法、条件素数通式使素数有了系统的代数分类理论。
(3)素数可以分类判定和表示的新理论将为许多与素数有关难题的证明另辟新径。
(4)模根因数定理的出现,为计算表示不是完全方幂值的任意大数除式的精确等于及余数关系,提供了新的理论和实践方法。大数精确运算的理论有了新角度。
(5)本文得出,全体素数是全部素数为迭加因数在自然数列中无限迭加时的条件剩余;类型素数是类型素数为迭加因数在模根数列中无限迭加时的条件剩余;因此不存在无限意义上的直得型素数公式。
推论:
(1)以素数模常数mc(Pk)为模时,公差为mc(Pk)的素数等差数列最多可有Pk+1项;(此性质可从另一角度理解为:存在任意多项的素数等差数列)
(2)当范围足够大时,同模内不同数型素数的总量近乎均等。
发表于 2011-7-9 14:52 | 显示全部楼层

您需要 100 亿以内的素数表吗?

下面引用由天山草2011/07/09 00:20pm 发表的内容:
    先生这话说的,我是非常不同意这种说法的。计算很大的数字,只要程序语言和编程技术有突破,在普通的计算机上一样能快速运行。你看美国的 mathematica 软件,不是在我这个破机器上也一样能快速计算出很大的 ...
不知道先生说的是什么意思,至少像前面说的给出不太大的个数(例如数千万)一般编程是都能够办到的,我说的意思是这并不是什么难事,至于具体的素数,一下子给出好多占用空间很大,也没有什么意义,因为你也一下子看不过来,如果需要,多计算几次就行,所以根据需要某一段的素数更好些。
我并不是否认美国的 mathematica 软件,mathematica 还有其他的很多功能例如做函数图像等,但我并不需要,所以不关心它,而自己需要的自己又能做,动动手罢了。
我没别的意思,仅仅谈谈看法,没有必要发火。
发表于 2011-7-14 02:50 | 显示全部楼层

您需要 100 亿以内的素数表吗?

下面引用由天山草2011/07/09 00:36pm 发表的内容: 这种数据库技术真厉害,若是普通文本文件,前150万个素数即使“压缩”后,也仍有2176kb,跟人家相差几百倍。
下面引用由ysr2011/07/09 01:09pm 发表的内容: 数据库技术真厉害,能把30位以内的素数表全部储存吗?
在MySQL 数据库服务器中我开了一个数据库 MathDB 在MathDB 中我搞了一个数据表 prime mysql> desc prime; +----------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+------------------+------+-----+---------+----------------+ | oid | int(10) unsigned | NO | PRI | NULL | auto_increment | | pv | int(10) unsigned | YES | | NULL | | | descript | text | YES | | NULL | | +----------+------------------+------+-----+---------+----------------+ 3 rows in set (0.80 sec) 其中 oid 是素数的序号,例如素数2的序号是1, 17 的序号是7等等。 我用以下 python 代码把 mathematica 生成的素数序列输入数据库: =================================== #!F:/Python/bin/python # -*- coding: utf-8 -*- import MySQLdb as mdb import sys cnt = 0 cmdHead = "Insert into prime (pv) values " cmdStr = cmdHead try: conn = mdb.connect(';localhost';, ';elim';, ';******';, ';mathdb';); cursor = conn.cursor() for line in open(';10m.txt';,';r';): cnt = (cnt + 1)%200 var = int(line) if var > 1: cmdStr += ';(%d),'; % var if cnt == 0: if cmdStr[-1:] == ';,';: cmdStr = cmdStr[:-1] cursor.execute(cmdStr) conn.commit() cmdStr = cmdHead if cmdStr[-1:] == ';,';: cmdStr = cmdStr[:-1] cursor.execute(cmdStr) conn.commit() cursor.close() conn.close() except mdb.Error, e: print "Error %d: %s" % (e.args[0],e.args[1]) sys.exit(1) ================ 实际运用表明,如果 10m.txt 有一亿个素数 (此时文档有一个多 Gb!),这个程序还是可以胜任。 这么说来,只要硬盘空间和内存OK, 这个方法还是可以把mathematica 生成的数据存入数据库的。(这件事让人干是要人命的)。 我说前150万个素数占用了8k,虽然不是要吹,却是错了。新的数据库把数据信息放到了两个地方,一是表格文件,二是一个诸表共用的文件ibdata1,而老的数据库却只放在数据表文件中。所以那个说法不正确,到底占多大空间现在变得不易知道了。另外,为了优化数据库询问的速度,不仅素数数据,还有 index 信息也需要空间... 不管如何,把素数数据存入数据库的好处是显然的。例如我们要得到前五百个素数中的孪生素数对 mysql> select t1.pv p1, t1.pv+2 p2 from prime t1 -> where t1.oid<500 and exists -> (select t2.pv from prime t2 where t2.pv = 2+t1.pv); +------+------+ | p1 | p2 | +------+------+ | 3 | 5 | | 5 | 7 | | 11 | 13 | | 17 | 19 | | 29 | 31 | | 41 | 43 | | 59 | 61 | | 71 | 73 | | 101 | 103 | | 107 | 109 | | 137 | 139 | | 149 | 151 | | 179 | 181 | | 191 | 193 | | 197 | 199 | | 227 | 229 | | 239 | 241 | | 269 | 271 | | 281 | 283 | | 311 | 313 | | 347 | 349 | | 419 | 421 | | 431 | 433 | | 461 | 463 | | 521 | 523 | | 569 | 571 | | 599 | 601 | | 617 | 619 | | 641 | 643 | | 659 | 661 | | 809 | 811 | | 821 | 823 | | 827 | 829 | | 857 | 859 | | 881 | 883 | | 1019 | 1021 | | 1031 | 1033 | | 1049 | 1051 | | 1061 | 1063 | | 1091 | 1093 | | 1151 | 1153 | | 1229 | 1231 | | 1277 | 1279 | | 1289 | 1291 | | 1301 | 1303 | | 1319 | 1321 | | 1427 | 1429 | | 1451 | 1453 | | 1481 | 1483 | | 1487 | 1489 | | 1607 | 1609 | | 1619 | 1621 | | 1667 | 1669 | | 1697 | 1699 | | 1721 | 1723 | | 1787 | 1789 | | 1871 | 1873 | | 1877 | 1879 | | 1931 | 1933 | | 1949 | 1951 | | 1997 | 1999 | | 2027 | 2029 | | 2081 | 2083 | | 2087 | 2089 | | 2111 | 2113 | | 2129 | 2131 | | 2141 | 2143 | | 2237 | 2239 | | 2267 | 2269 | | 2309 | 2311 | | 2339 | 2341 | | 2381 | 2383 | | 2549 | 2551 | | 2591 | 2593 | | 2657 | 2659 | | 2687 | 2689 | | 2711 | 2713 | | 2729 | 2731 | | 2789 | 2791 | | 2801 | 2803 | | 2969 | 2971 | | 2999 | 3001 | | 3119 | 3121 | | 3167 | 3169 | | 3251 | 3253 | | 3257 | 3259 | | 3299 | 3301 | | 3329 | 3331 | | 3359 | 3361 | | 3371 | 3373 | | 3389 | 3391 | | 3461 | 3463 | | 3467 | 3469 | | 3527 | 3529 | | 3539 | 3541 | | 3557 | 3559 | +------+------+ 96 rows in set (0.08 sec)
发表于 2011-7-14 03:14 | 显示全部楼层

您需要 100 亿以内的素数表吗?

简化了的询问语句:
mysql> select t1.pv p1,t2.pv p2 from prime t1,prime t2 where t2.pv=t1.pv+2 and t1.oid < 201 order by t2.pv;
+------+------+
| p1   | p2   |
+------+------+
|    3 |    5 |
|    5 |    7 |
|   11 |   13 |
|   17 |   19 |
|   29 |   31 |
|   41 |   43 |
|   59 |   61 |
|   71 |   73 |
|  101 |  103 |
|  107 |  109 |
|  137 |  139 |
|  149 |  151 |
|  179 |  181 |
|  191 |  193 |
|  197 |  199 |
|  227 |  229 |
|  239 |  241 |
|  269 |  271 |
|  281 |  283 |
|  311 |  313 |
|  347 |  349 |
|  419 |  421 |
|  431 |  433 |
|  461 |  463 |
|  521 |  523 |
|  569 |  571 |
|  599 |  601 |
|  617 |  619 |
|  641 |  643 |
|  659 |  661 |
|  809 |  811 |
|  821 |  823 |
|  827 |  829 |
|  857 |  859 |
|  881 |  883 |
| 1019 | 1021 |
| 1031 | 1033 |
| 1049 | 1051 |
| 1061 | 1063 |
| 1091 | 1093 |
| 1151 | 1153 |
+------+------+
41 rows in set (0.00 sec)
mysql>
发表于 2011-7-18 00:52 | 显示全部楼层

您需要 100 亿以内的素数表吗?

如果你装有 mysql 客户端,可以用
> mysql -u mathman -p -h elinkage.net
password = ';password';
进入数据库。那里目前有前一亿个素数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-7-11 04:05 , Processed in 0.103517 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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