String 检查数字中的数字是否可以重新排列以形成斐波那契数
这个问题是在一次编程竞赛中提出的。除了生成所有排列,我找不到其他方法。但是数字的数量高达15,并且没有排列(15!)非常大。还有别的办法吗String 检查数字中的数字是否可以重新排列以形成斐波那契数,string,algorithm,fibonacci,String,Algorithm,Fibonacci,这个问题是在一次编程竞赛中提出的。除了生成所有排列,我找不到其他方法。但是数字的数量高达15,并且没有排列(15!)非常大。还有别的办法吗 我知道如果(5*N^2+4)或(5*N^2-4)是一个完美的正方形,N就是斐波那契 您不需要生成所有排列。生成所需长度的斐波那契数(将小于74个数,因为第73个斐波那契数是最高的,有15个数字),然后检查这几个数是否可以从给定数字中的数字“构造”出来。我不知道斐波那契序列增长如此之快。我认为是指数增长。谢谢。是的,颠倒方向可以使效率有惊人的提高。投票结果。值
我知道如果(5*N^2+4)或(5*N^2-4)是一个完美的正方形,N就是斐波那契 您不需要生成所有排列。生成所需长度的斐波那契数(将小于74个数,因为第73个斐波那契数是最高的,有15个数字),然后检查这几个数是否可以从给定数字中的数字“构造”出来。我不知道斐波那契序列增长如此之快。我认为是指数增长。谢谢。是的,颠倒方向可以使效率有惊人的提高。投票结果。值得注意的是,斐波那契数以φ(~=1.618)的速率增长。由于phi**5>10,具有相同数字长度的斐波那契数永远不能超过5个(数字长度1除外)。顺便说一下,假设您以10为基数工作,则斐波那契数远远少于15个!任意15位数字的排列。是。15! 除以重复数的阶乘的乘积。