问题的评论
-
6个评论
数字太大是个问题。相反,我们可以找到偶数和奇数出现的规律。然后一切都变得简单和容易。
一旦你弄明白了,就会非常简单
提示:复制并粘贴前几个测试套件到您的MATLAB控制台,并尝试用':o'绘制它
我的解决方案在我的本地计算机上工作,但与从d = 100开始的测试套件不一致。我还是没有得到答案。
你不需要生成所有的d个斐波那契数来找到偶数。想想看,两个奇数的斐波那契数会得到一个偶数
比如11 1等于2 3 5等于8。所以一组中的3个数都是偶数
一点都不难,哈哈
Tran Tran注释是解决问题的关键。
解决方案的评论
-
3评论
-
1评论
@Kashfia Rahman Oyshei:你的评论被删除了,因为它揭示了一个潜在的解决方案。如果您的解决方案在较大的d值时失败,请查看该问题的其他注释以获得提示。
-
1评论
它在我的Matlab中工作
-
1评论
我对我的代码非常有信心,但它不适用d>= 100,由于缺乏精度,因为它超过了double和uint64的能力,所以你不能测试数字是否为偶数。
-
1评论
我认为在第四个断言中有一个错误
-
3评论
这有什么问题?它在matlab中为我工作。
me2,
fibonacci()函数在工具箱中。Cody只识别普通Matlab中的函数。
-
4评论
我的代码工作到d=50,在测试套件中较高的值失败。我认为这是硬件限制的舍入误差(?沼泽)与非常大的数字。当我在我的系统上测试eps(fibonacci(100))时,答案是6.5,即我的系统不能准确地区分奇数和偶数在这么大的数字。
Leo,你的理论是正确的:你为d>50计算的数字太大了,不能用32位数字表示,并且不能正确地计算mod(x,2)。非常仔细地思考斐波那契数列中的数字模式,看看是否出现了一种模式。
事实上,我的代码一直工作到d = 50,因为这是一个很大的数字,所以我们的算法是正确的,我们不应该担心,我认为我们已经成功地完成了这个挑战。
我也是。
-
1评论
这不是一个真正的解决方案。如果测试套件被扩展,将失败。
-
1评论
不是通解。如果测试套件展开将失败。