给定 n 和 e,在列表 L 中找到最小值 a,并且 (n/a) < e
Finding the minimal value a in list L given n and e, and (n/a) < e
这就是我到目前为止的想法。我现在已将用户输入替换为固定数字,以便更快地进行故障排除。
n = 5
e = 0.5
L = range(1, 20+1)
k = 0
a = min(element for element in L if element > k)
while (n/a) > e:
k = k + 1
a = min(element for element in L if element > k)
if (n/a) < e:
print(a)
if (n/a) < e:
print(a)
如果我删除部分代码,那么我会得到:
n = 5
e = 0.5
L = range(1, 20+1)
k = 0
a = min(element for element in L if element > k)
o = n/a
if 0 < e:
print(o)
然后一切正常。问题当然是我必须手动将k的值加1才能找到满足设定条件的最小a。
这是作业的一部分,另一部分是创建斐波那契数列。我设法弄清楚了那部分。在赋值的上下文中,n 仍然是用户输入的随机整数,e 是用户输入的随机浮点数,a 是斐波那契数列中的最小数,其中 n/a < e.
所以你需要找到a
,使得a
是列表中所有元素的最小值,对于n/a < e
。
很容易将有效 a
值的条件编码为 L 上的生成器,然后取最小值:
min(a for a in L if n/a < e)
这就是我到目前为止的想法。我现在已将用户输入替换为固定数字,以便更快地进行故障排除。
n = 5
e = 0.5
L = range(1, 20+1)
k = 0
a = min(element for element in L if element > k)
while (n/a) > e:
k = k + 1
a = min(element for element in L if element > k)
if (n/a) < e:
print(a)
if (n/a) < e:
print(a)
如果我删除部分代码,那么我会得到:
n = 5
e = 0.5
L = range(1, 20+1)
k = 0
a = min(element for element in L if element > k)
o = n/a
if 0 < e:
print(o)
然后一切正常。问题当然是我必须手动将k的值加1才能找到满足设定条件的最小a。
这是作业的一部分,另一部分是创建斐波那契数列。我设法弄清楚了那部分。在赋值的上下文中,n 仍然是用户输入的随机整数,e 是用户输入的随机浮点数,a 是斐波那契数列中的最小数,其中 n/a < e.
所以你需要找到a
,使得a
是列表中所有元素的最小值,对于n/a < e
。
很容易将有效 a
值的条件编码为 L 上的生成器,然后取最小值:
min(a for a in L if n/a < e)