Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 检查数字中的数字是否可以重新排列以形成斐波那契数_String_Algorithm_Fibonacci - Fatal编程技术网

String 检查数字中的数字是否可以重新排列以形成斐波那契数

String 检查数字中的数字是否可以重新排列以形成斐波那契数,string,algorithm,fibonacci,String,Algorithm,Fibonacci,这个问题是在一次编程竞赛中提出的。除了生成所有排列,我找不到其他方法。但是数字的数量高达15,并且没有排列(15!)非常大。还有别的办法吗 我知道如果(5*N^2+4)或(5*N^2-4)是一个完美的正方形,N就是斐波那契 您不需要生成所有排列。生成所需长度的斐波那契数(将小于74个数,因为第73个斐波那契数是最高的,有15个数字),然后检查这几个数是否可以从给定数字中的数字“构造”出来。我不知道斐波那契序列增长如此之快。我认为是指数增长。谢谢。是的,颠倒方向可以使效率有惊人的提高。投票结果。值

这个问题是在一次编程竞赛中提出的。除了生成所有排列,我找不到其他方法。但是数字的数量高达15,并且没有排列(15!)非常大。还有别的办法吗


我知道如果(5*N^2+4)或(5*N^2-4)是一个完美的正方形,N就是斐波那契

您不需要生成所有排列。生成所需长度的斐波那契数(将小于74个数,因为第73个斐波那契数是最高的,有15个数字),然后检查这几个数是否可以从给定数字中的数字“构造”出来。

我不知道斐波那契序列增长如此之快。我认为是指数增长。谢谢。是的,颠倒方向可以使效率有惊人的提高。投票结果。值得注意的是,斐波那契数以φ(~=1.618)的速率增长。由于phi**5>10,具有相同数字长度的斐波那契数永远不能超过5个(数字长度1除外)。顺便说一下,假设您以10为基数工作,则斐波那契数远远少于15个!任意15位数字的排列。是。15! 除以重复数的阶乘的乘积。