找回密码
 欢迎注册
楼主: mathematica

[提问] 2011这个素数, 最多是多少个连续素数的和?

[复制链接]
发表于 2011-1-18 18:34:25 | 显示全部楼层
《mathematica演示项目笔记》这本书的确不值得买,因为他连读者对象都没搞清楚---------
新手买了此书肯定看不懂,而老手则根本不屑于看此书;
高校的大学生也不会看这种信马由缰跟如今的大学课堂一点扯不上关系的东西,
教师买?更是不可能.

仿真论坛的几个老会员曾经就说过这个问题,我和其他几位都是不赞成的.但他很执着,觉得自己可以用Mathematica干出"一番大事"来 ..........
读此书可以读到此人...................

顺便透露一点细节,该书的封面是他设计的,但实现代码完全是我写的,
嘿嘿,末了,不忘自我卖弄一下~~
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-1-18 18:35:27 | 显示全部楼层
其实看了wayne写的代码,我倒是很想认识一下wayne,呵呵,不过
不知道什么地方得罪wayne,wayne居然不想跟帖了,呵呵,请见谅。
我没有什么恶意。也许是你我的观念不同吧。
呵呵,我喜欢有注释、有层次感的代码,
而wayne写的代码似乎都没注释,当然,最后一个MATLAB写的程序
似乎也不需要有什么层次感。呵呵,这只是你我的观念和标准的不同,
没有必要太和我较真太多,你不喜欢写代码的注释和层次感,我也不能
强迫你,不过上论坛来,既然贴除了自己的代码,就应该是让别人来阅读的,
从这种意义上来说,如果有注释和层次感的话,更容易被别人接受。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-1-18 18:41:12 | 显示全部楼层
《mathematica演示项目笔记》这本书的确不值得买,因为他连读者对象都没搞清楚---------
新手买了此书肯定看不懂,而老手则根本不屑于看此书;
高校的大学生也不会看这种信马由缰跟如今的大学课堂一点扯不上关系的东西 ...
wayne 发表于 2011-1-18 18:34


非常抱歉,我并不知道《mathematica演示项目笔记》里面的代码是你写的,
要不然我就不会那么说了,只是没想到这个世界这么小,居然被你撞上了,真的
感觉这个世界太小了。不过如果那个代码是你写的话,那个作者在封面上应该
有你的名字的呀?他怎么没有把你的名字给加上,wayne你至少还是个合著者呀!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-18 20:44:00 | 显示全部楼层
不可否认,Wayne 的MATHEMATICA 编程功底已相当了得,对于我们初学者而言,当然觉得有些神秘感,但这就是MATHEMATICA 简约之处(即简约而不简单,模块化就是用最快最有效的方式解决问题),这就更需要我们不断的学习和理解他的每个模块的高明之处(优化算法),这样我们才能更好更快的解决问题....
说的直接一点, mathematica 编写的程序有助于初学者的学习,Wayne 编写的程序有助于高手们的相互交流和共同提高....
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-19 13:13:33 | 显示全部楼层
一直观望中,
编程效率本来就是看对库函数的了解程度了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-21 20:49:30 | 显示全部楼层
64# 数学星空

你真坏,我都说了我不跟贴了,你却还在这说人家“坏话”
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-21 20:52:44 | 显示全部楼层
65# winxos
准确的说,是 软件文档的异常丰富和规范  提升了我的编程效率
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-21 20:59:31 | 显示全部楼层
62# mathematica
不知道什么地方得罪wayne,wayne居然不想跟帖了,呵呵,请见谅

还请你见谅,我这人太直。不喜欢纠缠于细节。
==============================
不知道你知不知道 wolfram说的一句话,大致如此:
不管项目多大,原则上 Mathematica不会超过50行。如果超过了,我很自信你的程序有待斟酌

我很相信这话,事实上,我从来没有写过超过20行代码的程序,绝大部分都是少于10行的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-21 21:29:35 | 显示全部楼层
58# mathematica
要理解某软件的思想,首先必须熟练它的api,从低层到最后的封装的外包,这样我们会更高效的给出解决方案。就拿之前有个隐函数作图的例子来说,一般我们也就想到ezplot,而wayne能直接理解到contour plot还给出了程序和示图,可见wayne在这方面有过人之处,佩服。在佩服之后,试想这也是个人的艰辛学习和业余时间换来的,我们不能用一句“不过很大程度上是你掌握的函数比较多的缘故”来不了了之,这是一种不负责任的表现。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-3-12 11:27:28 | 显示全部楼层
17# wayne
再来一个速度快点的:xx = Accumulate[Prime@Range@PrimePi[n]]; Flatten[Position[xx, #] & /@ Select[xx, MemberQ[xx, # + n] &]] + 1
wayne 发表于 2011-1-17 10:21

我把17楼的wayne的代码分解注释一下,同时他的代码稍微有些不完美的地方就是
没有给出连续的素数,只给出了连续的素数开始的位置,本人稍微补充了一下。
  1. (*2011是多少个连续素数的和*)
  2. Clear["Global`*"];           (*Clear all variables*)
  3. n=90;                        (*被考察的整数n*)
  4. a=PrimePi[n];                (*小于等于n的素数的个数*)
  5. b=Prime@Range@a;             (*小于等于n的所有素数*)
  6. c=Accumulate[b];             (*小于等于n的素数的前k项和*)
  7. d=Select[c,MemberQ[c,#+n]&]; (*从c中选出那些加上n后仍然在c中的元素*)
  8. e=Position[c,#]&/@d;         (*从c中找出d中的每个元素在c中的次序*)
  9. f=Flatten[e]+1;              (*压平,并且偏移一下,因为偏移后落在的素数才是开始求和的素数*)
  10. g=Select[c,MemberQ[c,#-n]&]; (*从c中找出那些减去n后仍然在c中的元素*)
  11. h=Position[c,#]&/@g;         (*从c中找出g中的每个元素在c中的次序*)
  12. i=Flatten[h];                (*压平*)
  13. j=Join[{f},{i}];             (*合并得到矩阵,第一行是开始位置,第二行结束位置*)
  14. k=Transpose[j];              (*转置,第一列开始位置,第二列结束位置*)
  15. l=b[[#[[1]];;#[[2]]]]&/@k;   (*取出从开始到结束位置内对应的连续素数*)
  16. m=Length[#]&/@l;             (*l中对应的连续素数的个数*)
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-24 13:09 , Processed in 0.052780 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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