问题描述
小蓝定义了一个 Fibonacci 集合
F, 集合的元素如下定义:
- 最小的 5 个 Fibonacci 数 1,2,3,5,8 属于集合 F 。
- 如果一个元素 x 属于 F, 则 3x+2、5x+3 和 8x+5 都属于集合 F 。
- 其他元素都不而于 F 。
请问,这个集合中的第 2020 小元素的值是多少?
代码解答
import os
import sys
f=[1,2,3,5,8]
for i in range(20000):
if i in f:
f.append(3*i+2)
f.append(5*i+3)
f.append(8*i+5)
#set()函数先去重,再使用list()函数将集合转换为列表,最后使用sorted()函数进行排序后,取第2020号元素的值
result=sorted(list(set(f)))[2019]
print(result)
该题目为结果填空题,也可直接输出答案print(“41269”)。
涉及函数
- sorted() 作为 Python 内置函数之一,其功能是对序列(列表、元组、字典、集合、还包括字符串)进行排序。
- set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
set()函数会将数据转换为集合,如下图所示: