我制作了一个函数,该函数将列表作为输入并也返回列表。
例如输入为[4,6,8,10,12]
并且输出应为[0,0,1,0,0]
因为8属于斐波那契数列
我的代码是
for i in input1:
phi=0.5+0.5*math.sqrt(5.0)
a=phi*i
out =[ i == 0 or abs(round(a) - a) < 1.0 / i];
return out;
答案 0 :(得分:0)
我认为最好的方法可能是编写一个名为is_fibonacci
的函数,该函数接受数字输入,如果输入是斐波那契数,则返回True
,否则返回False
。然后,您可以对初始列表input1
:return [1 if is_fibonacci(num) else 0 for num in input1]
进行列表理解。 (当然,is_fibonacci
可以自动返回1
或0
而不是布尔值,在这种情况下,列表理解甚至更简单。)
编写is_fibonacci
函数是一个有趣的练习,我将留给您:)(但是,如果您为此感到苦恼,也很乐意为您提供帮助。)
答案 1 :(得分:0)
这将起作用:
input1 = [4,6,8,10,12]
out=[]
for i in input1:
phi=0.5+0.5*math.sqrt(5.0)
a=phi*i
out.append(i == 0 or abs(round(a) - a) < 1.0 / i);
要将bool转换为int
import numpy
y=numpy.array(out)
new_output = y*1
答案 2 :(得分:0)
我猜这应该解决
import math
# A function that returns true if x is perfect square
def isPerfectSquare(x):
s = int(math.sqrt(x))
return s * s == x
# Returns true if n is a Fibinacci Number, else false
def isFibonacci(n):
return isPerfectSquare(5 * n * n + 4) or isPerfectSquare(5 * n * n - 4)
i = [4, 6, 8, 10, 12]
print(i)
j = []
# A utility function to test above functions
for item in i:
if (isFibonacci(item) == True):
j.append(1)
else:
j.append(0)
print(j)
输出:
[4, 6, 8, 10, 12]
[0, 0, 1, 0, 0]
答案 3 :(得分:0)
这就是你想要的
from directory_two.package_inside_directory_two import more_tests
from directory_two.package_inside_directory_two.subDirectory_inside_package_two import file_under_Subdirectory