惊了
mathematica吧
全部回复
仅看楼主
level 7
真心不卡 楼主
PE第二题我写的代码特别快
NestWhileList[
# + 3 &, 3, ! Fibonacci[#
+ 3] > 4 10^6 &] //
Fibonacci // Total // AbsoluteTiming(*我写的代码*)
Last[{1, 2, 3,
0} //. {{i_, j_, k_, n_} /; j < 4000000 -> {j + k, 2 k + j,
3 k + 2 j, n + j}}] // AbsoluteTiming(*MathCraft维基的代码*)
Total@Select[
Fibonacci /@ Range[Log[4 10^6 Sqrt[5]]/Log[(Sqrt[5] + 1)/2]],
EvenQ] // AbsoluteTiming(*贴吧的代码*)
Clear[myFibonacci]
myFibonacci[1] = 1;
myFibonacci[2] = 2;
myFibonacci[n_] :=
myFibonacci[n] = myFibonacci[n - 1] + myFibonacci[n - 2];
res = With[
{
terms = Module[
{n = 1},
Reap[
While[
myFibonacci[n] <= 4000000,
If[EvenQ[myFibonacci[n]], Sow[{n, myFibonacci[n]}]];
n++
];
]
]
},
Composition[
Total,
#[[-1, 1, All, 2]] &
][terms]
] // AbsoluteTiming(*MathCraftGithub的代码*)
时间分别为
{0.0000723872, 4613732}
{0.000116526, 4613732}
{0.000218927, 4613732}
{0.000439267, 4613732}
(*多次测试稳定结果*)
Fibonacii函数 1996年引入 (3.0) | 1999年更新 (4.0)
事实证明
自己造零件不如用内置函数
2018年10月27日 07点10分 1
level 7
真心不卡 楼主
我将指数提高到了10000
结果是第二位上升到了第一位
但是第三位还是比我慢
第四位已经惨不忍睹了 不知道为什么这样的代码可以上
2018年10月27日 07点10分 2
吧务
level 7
Sum[ Fibonacci[n], {n, 3, Log[1.618, 4000000 Sqrt[5.]], 3}]
本质上就是Sum[ Fibonacci[3 n], {n, 11}],只有11项的和
2018年10月27日 08点10分 4
1