@Kashfia Rahman oshei:你的评论被删除了,因为它透露了一个潜在的解决方案。关于您的解决方案在较大的d值时失败的问题,请查看对该问题的其他注释以获得提示。
它在我的Matlab中工作
我对我的代码很有信心,但它不能在d>= 100的情况下工作,因为缺乏精度,因为它超过了double和uint64的能力,所以您不能测试这个数字是否为偶数。
我认为在第4条之后的断言中有一个错误
这有什么问题??它在matlab中工作。
me2,
函数fibonacci()在工具箱中。Cody只识别Matlab中的函数。
我的代码工作到d=50,在测试套件中较高的值上失败。我认为这是一个硬件限制的舍入误差(?淹没)与非常大的数字。当我测试eps(fibonacci(100))在我的系统上,答案是6.5,即我的系统不能准确区分奇数和偶数在那么大的数字。
Leo,你的理论是正确的:你计算的d>50的数字太大了,不能用32位数字来表示,mod(x,2)也不能正确计算。仔细思考斐波那契数列中的数字模式,看看是否有模式出现。
事实上,我的代码一直工作到d = 50,因为这是一个很大的数字,所以我们的算法是正确的,我们不应该担心它,我认为我们在这个挑战中成功了。
这不是一个真正的解决方案。如果扩展了测试套件,将会失败。
不是通解。如果测试套件扩展,将失败。