|
|
1
19
您可以通过考虑二进制的问题来轻松地解决这个问题。地板(3/2*i)基本上是右移、截断和添加。在伪代码中:
这对于任何形式的实现都应该是相当快的。 我刚刚在Mathematica中实现了这一点,看起来bitshiftright操作也会将位截断到单元位置之外,这样就可以自动进行处理。这是一条线:
16秒,数字打印得很好,但很长:
全部结果 here . |
|
|
2
13
你差点就找到了。下次,看看 Online Encyclopedia of Integer Series . 条目如下: http://oeis.org/A061418
上面说:
清醒测试:
令人惊叹的!现在100万怎么样:
嗯,我试过了。
再次编辑: 找到解决方案!见 Timo 或 Lasse V. Karlsen 的答案。 编辑: 使用蒂莫的一点转变想法:
产量 1963756763…226123087(176092位)
|
|
|
3
11
你的脚本这么慢的原因是它正在生成
重写整个内容
另外,请注意,您的“floor”函数实际上是“int”。
注意
现在你可以做
|
|
|
4
6
我使用了下面的Java程序:
裁剪后的输出:( full output on pastebin )
所以在我的普通机器上花了8.5分钟。我用过
可能有更好的算法,但这总共需要10分钟,包括编写幼稚的实现和运行程序。 样本运行
|
|
|
5
5
这是一个在我10岁的笔记本电脑上运行的python版本,运行大约需要220秒:
它产生的结果与 this answer 在Pastebin上(也就是说,我验证了它的开始和结束,而不是全部。) |
|
|
6
3
隐马尔可夫模型,
很可能有一个数学公式可以很快地给出给你,但是,在你计算出来的时候,GMP可能会把结果扔给你:—) |
|
|
7
2
这被确定为序列
并且有一个合适的高精度的库(如已经建议的那样是gmp,或者是mpir,也许还有一个像我的宝宝一样的包装纸 gmpy 对于python)您可以使用封闭形式的公式来更快地计算“系列中的第百万项”等。 通常可以将递归指定的递归放入闭合公式中。对于一个广泛的初学者对这个主题的介绍, Concrete Mathematics (格雷厄姆,克努斯和帕塔什尼克)真的很难打败。 |
|
|
8
2
通过使用更合适的语言,例如,Scheme,您可能会更近一点。
这将计算
用大整数库(NTL,在这种情况下)切换到C++:
这将在我的机器上4分钟35秒内计算1000000个序列。速度足够快 几乎 相信一台真正快速的新机器至少能在一分钟内完成(是的,我检查了使用轮班而不是乘法/除法时发生的事情——它比较慢)。 不幸的是,其他人提出的封闭式计算似乎没有什么帮助。要使用它,您需要计算常数k到足够的精度。我看不到k的闭式计算,所以这实际上只是将迭代转换为计算k,并且看起来计算k到足够的精度比计算原始系列快一点(如果有的话)。 |
|
|
9
2
进去很容易 Pari :
这在我的机器上需要14秒。当然,有更快的方法——gmp出现在脑海中——但是为什么要麻烦呢?您将无法从运行时中节省超过10秒的时间,开发时间将按 分钟 . :) 小题:原公式中不明确的是第一百万项n 九十九万九千九百九十九 期望或n 一百万 ,索引为一百万的数字;我给出了后者,因为我看到前者已经在上面计算过了。 |
|
|
10
1
|
|
|
11
0
在大多数情况下,递归公式需要相当长的时间 Curcumstances,因为它必须维护机器堆栈。为什么不使用动态 改为编程? 即(伪代码)
当然,为了获得有意义的结果,您需要一个高精度的数字库。 |
|
|
12
0
我把蒂莫的想法转化为伊利普。它以100失败,给出负数。失败,请看 no BigNums !
|
|
|
MMedina · 将powershell应用于子文件夹 1 年前 |
|
|
YorSubs · Linux中遍历目录的时间不同方法[关闭] 1 年前 |
|
Romn · 在递归函数中键入元组或元组列表 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
Ack · 尝试迭代JSON数据以匹配用户输入 1 年前 |