python 求斐波那契数组代码
时间: 2023-03-13 10:12:37 浏览: 144
答:Python 代码:def fibonacci(n): # 生成器函数 - 斐波那契 a, b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 for x in f: print(x, " ", end="") # 输出: 0 1 1 2 3 5 8 13 21 34
相关问题
Python 无约束优化 斐波那契法 代码
在Python中,无约束优化通常是指寻找函数的最大值或最小值,而不需要特定的优化约束条件。斐波那契搜索(Fibonacci Search)是一种启发式算法,它利用了斐波那契数列的特点来进行查找操作,常用于数组或列表的搜索。
虽然斐波那契搜索本身并不是一种优化方法,但它可以作为解决优化问题的一种辅助技术。如果你想通过斐波那契序列来优化搜索过程,你可以编写一个简单的函数来模拟这种方法。下面是一个基本的斐波那契搜索的代码示例:
```python
def fibonacci_search(arr, x):
fib_m_minus_2 = 0
fib_m_minus_1 = 1
fib_m = fib_m_minus_1 + fib_m_minus_2
while fib_m < len(arr):
fib_m_minus_2 = fib_m_minus_1
fib_m_minus_1 = fib_m
fib_m = fib_m_minus_1 + fib_m_minus_2
offset = -1
while fib_m > 1:
i = min(offset+fib_m_minus_2, len(arr)-1)
if arr[i] < x:
fib_m = fib_m_minus_1
fib_m_minus_1 = fib_m_minus_2
offset = i
elif arr[i] > x:
fib_m -= fib_m_minus_1
else:
return i
if fib_m_minus_1 and arr[offset+1] == x:
return offset+1
return -1
# 示例
arr = [10, 22, 35, 40, 45]
x = 40
result = fibonacci_search(arr, x)
if result != -1:
print(f"元素 {x} 的索引是:{result}")
else:
print(f"{x} 不在数组中")
用数组来求fibonacci数列
可以使用数组来求Fibonacci数列。以下是一个示例代码:
```python
n = 10 # 求斐波那契数列的前10个数
fib = [0] * n # 初始化一个长度为n的数组,每个元素初始化为0
# 前两个数为1
fib[0] = 1
fib[1] = 1
# 从第三个数开始,每个数都是前两个数之和
for i in range(2, n):
fib[i] = fib[i-1] + fib[i-2]
# 打印结果
for i in range(n):
print(fib[i], end=' ')
```
输出结果为:1 1 2 3 5 8 13 21 34 55
在这个例子中,我们使用了长度为n的数组来存储Fibonacci数列的前n个数,并使用for循环计算每个数的值。
阅读全文