【求助】求解释原理
projecteuler吧
全部回复
仅看楼主
level 7
酒尽望天
楼主
问题:求1/d 产生的循环小数中循环位数最多时,d的值,其中d=1,2,3...1000
答案:
求第11行的原理。
2012年08月24日 01点08分
1
level 7
酒尽望天
楼主
大召唤术
@xw_y_am
@我的名字在游荡
2012年08月24日 01点08分
2
level 10
xw_y_am
这你从哪儿看的。。。。
2012年08月24日 01点08分
3
酒尽望天
百度淘的,结果好像是对的。。。
2012年08月24日 01点08分
level 10
xw_y_am
这个方法diao爆了。。。
1/9 = 0.111111...
1/99 = 0.0101010101...
1/999 = 0.001001001...
1/9999 = 0.000100010001...
明白了吗???
2012年08月24日 01点08分
4
酒尽望天
还是不明白,这跟“循环数的位数等于该数能被几个9整除”有什么逻辑关系?
2012年08月24日 01点08分
level 10
xw_y_am
方法虽然很巧妙,但是并没有我的算法快。。。
2012年08月24日 01点08分
5
酒尽望天
。。。
2012年08月24日 01点08分
酒尽望天
回复 酒尽望天 :你是算法是不是直接append?然后,if in:break?
2012年08月24日 01点08分
xw_y_am
回复 酒尽望天 : 不知道你说的是什么
我的算法是把每个数得循环节按照竖式除法算出来。。。。这是个确定性算法,中间木有试除循环得过程,所以略快一些。。。
2012年08月24日 01点08分
酒尽望天
回复 xw_y_am :竖式除法是什么?
2012年08月24日 02点08分
level 10
xw_y_am
@酒尽望天
明白了吗??
2012年08月24日 01点08分
6
酒尽望天
明白了,不过建议前面加上: 求任意1/a=0.abc...def...(其中abc...表示非循环部分假设有m位,def表示循环部分)的循环数都等同于求10^m*(1/a),再等同于求10^m*(1/a)-abc...的循环数。
2012年08月24日 02点08分
酒尽望天
回复 酒尽望天 :即等同于求0.def...的循环数
2012年08月24日 02点08分
xw_y_am
回复 酒尽望天 : 额。。。这个仅仅是预处理而已,不是主要部分。。。
2012年08月24日 04点08分
雪竹◎霜月
2012年08月24日 15点08分
level 10
xw_y_am
这是计算 1 - 2000 时得结果
上边是我的算法的运行时间
下边是他的算法的运行时间
2012年08月24日 01点08分
7
酒尽望天
我的是1979 20.5s 1979 4.89100003242s 看来这个算法虽然妙,但确实慢,
2012年08月24日 02点08分
level 6
我的名字在游荡
╮(╯▽╰)╭你们啊,竟然趁我工作时就把问题给解决了,真不给面子啊
2012年08月24日 02点08分
8
xw_y_am
谁让你不抓紧。。。
2012年08月24日 02点08分
level 12
z7753522
我是打酱油的。。。
2012年08月24日 02点08分
9
level 6
Liutos
我也是来打酱油的,不知道你们在说哪题的飘过
2012年08月24日 02点08分
10
xw_y_am
26
2012年08月24日 04点08分
level 6
Liutos
0.12秒飘过~
2012年08月24日 04点08分
11
xw_y_am
how can??难不成你是用的分数做的???
2012年08月24日 05点08分
Liutos
回复 xw_y_am :我发现看不懂自己的代码了T_T
2012年08月24日 06点08分
Liutos
回复 xw_y_am :奇怪,我也是用小学的那种方法啊,为什么我们的代码会有那么大的差别的?PS:我用CL写的,然后是直接在SLIME中运行的,所以没有启动程序的时间,并且是编译过的。你是用Python写的吗?
2012年08月24日 07点08分
xw_y_am
回复 Liutos : 必然是啊。。。为啥python如此之慢呢。。。
2012年08月24日 10点08分
1