Closed. This question is off-topic. It is not currently accepting answers. Learn more。
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
>
这是我的密码。我不知道如何把我所有的价值观都输入
公式。我环顾四周,大多数公式都是n-1和
n-2我有A,F1,F2和N-1。
a = (int(input("Value of a: ")))
最佳答案
大多数公式只有n-1和n-2。我有A,F1,F2和N-1。
“正常”斐波那契数列以您拥有的:F(1)
,F(2)
和递归规则开始,以生成n-th
数:F(N) = F(N-1) + F(N-2)
。在您的例子中,唯一的变化是递归规则被因子a, b
:F(N) = a*F(N-1) + b*F(N-2)
扩充。
您的行不反映return (a*1*(n-1)) + (b*1*(n-2))
(a*F(n-1) + b*F(n-2)
)。
注意a times (n-1)th element plus b times (n-2)th element
和(n-1)
不是因素,而是指标!
如果(n-2)
和F(1) == 1
,则F(2) == 1
=A*1+B*1=A+B=3。此外,您应该将整个序列输出到第n个数字,而不仅仅是一个数字。
下面的解决方案使用一个生成器函数和规范Python Fibonacci赋值的变体F(3) = a*F(2) + b*F(1)
输出是第一个x, y = y, x + y
元素的列表:
def fib(a, b):
x, y = 1, 1
while 1: # this will produce fibonacci-like sequence ad infinitum
yield x
x, y = y, b*x + a*y # here is the variation using a, b
def fib_square(a, b, n):
fib_gen = fib(a, b)
return [next(fib_gen) for _ in xrange(n)]
# print ', '.join([str(next(fib_gen)) for _ in xrange(n)])
> fib_square(1, 2, 8)
[1, 1, 3, 5, 11, 21, 43, 85]
# 1, 1, 3, 5, 11, 21, 43, 85
关于python - 输入斐波那契数列的a,b和n ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37378666/