数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: 白新岭

[原创]请教vfbpgyfk先生一个编程问题

  [复制链接]
发表于 2010-5-11 12:13 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

白新岭:您好!
到现在为止,我还没有了解您的思路。您在17楼说:“现在用Excel软件来演示一下过程和思路”。从文字解释和下面的数据上看,还是不得要领。您能否把这个演示的Excel表通过邮件发给我,我可能从这个表格中找到一些要领(因为上面有计算公式)。我的电子邮箱是:nabaoj@126.com。
发表于 2010-5-11 14:51 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

白新岭 ,你向 vfbpgyfk 求教这么久了而一无所获,我劝你还是先看看一个网友对  
vfbpgyfk的质疑吧!如下:
【楼主:本来说过“再见”,不想回答了。看到你下面的问题:
您能告诉我“奇数”用什么表示吗?
我再说几句,这样的问题难道不怕你的高工们、同事们笑话?这样的基础来研究哥德巴赫猜想?】
发表于 2010-5-12 08:25 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

楼主:您好!
1、不知您是否看了那个上传文件,如果看了,计算结果是否有问题?我的感觉有些不对头。
2、您问的“编程问题”是指哪能些方面?即:编个程序;编程思路;程序描述……。
3、在您的描述中,多次提到“需要事先人工处理或人工提供”。如果利用编程解决问题,最好也能把这些“人工”工作交给程序来完成。这样,一方面可以提高运行速度,另一方面也能减少人的劳动强度,再则,人工干预程序过多,说明程序不健全。只要将人的思维归纳出来,在程序中体现出来,问题就全解决啦。这样一来,只需您输入需要计算的开始值、终结值和步长,剩下的工作全由计算机完成。
4、您说:“理解基本正确”。对编程来讲,不能用这个定论,应该以肯定词句来定论。如果有问题,就要明确指出来,否则,程序就无法编下去。计算机不能像人那样随机应变,它是很认真的,它只能按照程序的规定,不折不扣地执行。指不出问题所在,就可能得不到您需要的结果,或者得到错误的结果,即使偶然正确,那也不能说明程序完美,不一定在什么条件下出错。
5、从您的其它一些帖子来看,您的计算式都存在误差率(多数人都是这样,只是谁的良误差率小一些而已)。由于哥猜属多解,按照数学常规,多解题,就要给出全解,否则,就不能获得满分。从这方面考虑,数学界不认可概率论证明哥猜,很可能出于这方面原因。这个想法和愚见,是在童先生激励下的产物。[br][br]-=-=-=-=- 以下内容由 vfbpgyfk 时添加 -=-=-=-=-
对啦,还有一事差点忘说啦,我的那个上传数据表,是通过程序完成的。
 楼主| 发表于 2010-5-12 10:23 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

那个上传结果是错误的,你把重要的一环理解错了。本身那个子程序中(内循环中)是把有余数(0,2,6,8)其中之一的就一票否决了它,而且不在调取下一个素数(无论这个素数是否在开方值内)。
这与你筛选素数时一样,如果有一个素数能整除被筛选值,则程序结束,跳到下一个被筛选值上,只不过,筛选素数时,只有一个余数0是事先给定的余数,其余素数没有此权利,它可以继续被下一个素数筛选,而本被筛选值,事先是给了四个余数,只有是这四个余数以外的余数时,才调取下一个素数继续筛选,有其中余数之一就被判了死刑,被筛选值就被去掉了,只有通过开方前全部素数的被筛选值才留下来。
发表于 2010-5-12 10:27 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

白新岭与 vfbpgyfk ,看你俩讨论到何时得了啊??!!
发表于 2010-5-12 10:44 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

白新岭:您好!
我已在第9条的第3款说了,由于初始值99和步长值2130都是3的倍数,所以,按3取模都为0,计算也就结束啦。因此,不存在您所说的情况。
发表于 2010-5-12 11:02 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

白新岭  与vfbpgyfk ,祝愿你俩精心讨论,讨论,再讨论,争取取得惊天之成就来!!
 楼主| 发表于 2010-5-12 11:37 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

下面引用由vfbpgyfk2010/05/12 10:44am 发表的内容:
白新岭:您好!
我已在第9条的第3款说了,由于初始值99和步长值2130都是3的倍数,所以,按3取模都为0,计算也就结束啦。因此,不存在您所说的情况。
我不知道你说说:“不存在您所说的情况”指的是什么。
在那个例子中,初始值与步长是有些问题,但是你把所有不符合条件的都罗列出来了,这是没有必要的,如果你能理解我的意思的话,应该是最后结果为一个0值,它表示一个符合条件的也没有,都被淘汰,排除掉了,在预先设置好的表中也没有储存值。
本来这是一个简单的编程问题,你一直想把初始值,步长,怎么得来的放在心上,没有细心的读题意。
这样说吧,现在就一个奇数,(外循环就1次),那么我们如何判断它是不是符合条件,是不是我们需要的数据呢?现在我们对它进行一系列的排查,筛选工作。
首先,对它开方,找到所有它根号前的素数,从小到大(指它根号前的素数)依次求余,MOD(2n-1,Pj)=y,如果y=0或2,6,8其中之一,则结束排查筛选工作,它是不符合要求的值,不是我们需要的数据,去掉它,不存,不计数;假设不是那样,把所有素数(它根号前的素数)都进行验证后,还没有找到相同的余数,说明这个被判断值符合要求,是我们需要的数据,保存并累计计数。
这样我们只能对一个这类型的数进行判断与筛选,不能满足我们需要的数据,这时需要有一个n值来控制外循环次数,即控制被判断值的数量,n越大,说明一次性让电脑完成的数据量越多。这就是加一个外循环变量的目的。
问什么,还有一个起始值k呢?它是为了大量数据分批次处理做准备的,没有它,一次处理1000000个被判断值就很费时间了(我们做个这样的前提假设),要是处理1亿个这样的被判断值,到什么时候会出结果,让人无法等待,有了k,一次让它计算1000000个数据,第2次计算1000000个数据,分成100份,有时间它就算一份,没有时间就停。这样不至于挡误自己的工作时间。
至于初始值,步长,预先给的余数,问什么不纳入编程内,而要手工完成,这里有知识上的原因,编个一成不变的程序都没有办法,对于这错综复杂的问题,是没有办法编程电脑语言的,我也无法表达我的思路。
 楼主| 发表于 2010-5-12 12:01 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

[这个贴子最后由白新岭在 2010/05/12 00:07pm 第 2 次编辑]

编程寻找19+n*30中符合条件的19+n*30的数,保存并计数。限制条件是,Mod(19+30*n,Pj)不可以是0(或者2,6,8)。2≤Pj≤√(19+30*n),0≤n≤3333333.即寻找一亿范围内这样的数。(它实际上是四胞胎素数群中的最后一个素数)。
 楼主| 发表于 2010-5-12 15:59 | 显示全部楼层

[原创]请教vfbpgyfk先生一个编程问题

⑷ 第6条已经考虑到,只有偶数取模才可能有偶余数,任意奇数被奇数(素数)除,其余必为奇数。事实上,求出的被判断数都是奇数(见附表),除模为0外,不可能有2、6、8的偶余数。
这是一种错误的认识,MOD(5,3)=2,mod(49,5)=4,...奇数对素数求模可以得到0到素数-1之间的任何一种余数,无论它是偶数还是奇数,合数还是素数,还有1.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 07:21 , Processed in 0.066407 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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