返回递增函数的最小整数
Returning the smallest integer of an increasing function
Write a function lowest_integer()
which takes 2 input arguments:
- a function
f
representing an increasing function (),
- a number
fmin
,
and returns an integer nmin
such that >0 is the smallest
integer that satisfies ()>.
To test the function we use code like this where we define f(n)
then
print(lowest_integer(f, fmin))
and get the expected output:
def f(n):
return 2*n
print(lowest_integer(f, 10))
## 6
def f(n):
return n**2 + 6*n - 3
print(lowest_integer(f, 500))
## 20
我对代码的尝试:
def lowest_integer(f, fmin):
f = fmin
nmin = n + 1
return nmin
我无法弄清楚如何在 lowest_integer()
函数
中定义函数 f(n)
你可以这样做:
def lowest_integer(f, fmin):
nmin=1
while f(nmin)<=fmin :
nmin += 1
return nmin
您从 nmin = 1
开始,然后在 nmin
上加 1,而 f(nmin)<=fmin
。为此,您可以使用 while
循环。
通过执行 f(nmin)
,您可以调用函数 f
并计算条目 nmin
的值。
def f(n):
return 2*n
def lowest_integer(f, fmin):
for findmin in range(fmin):
if f(findmin) > fmin:
return findmin
return -1
print(lowest_integer(f, 10))
您可以遍历从 1
开始的整数,直到找到满足条件的整数,在这种情况下,return it:
def lowest_integer(f, fmin):
nmin = 1
while True:
if f(nmin) > fmin:
return nmin
nmin += 1
def f(n):
return 2*n
print(lowest_integer(f, 10))
def f(n):
return n**2 + 6*n - 3
print(lowest_integer(f, 500))
输出:
6
20
这种方法当然是一种幼稚的方法,如果函数 f
很慢并且 fmin
很大,这种方法会很慢,但总的来说效果很好。
一种更快的方法是使用像 sympy
之类的库,这些库具有使用适合此类问题的更复杂方法和技术的函数。
Write a function
lowest_integer()
which takes 2 input arguments:
- a function
f
representing an increasing function (),- a number
fmin
,and returns an integer
nmin
such that >0 is the smallest integer that satisfies ()>.To test the function we use code like this where we define
f(n)
thenprint(lowest_integer(f, fmin))
and get the expected output:def f(n): return 2*n print(lowest_integer(f, 10)) ## 6 def f(n): return n**2 + 6*n - 3 print(lowest_integer(f, 500)) ## 20
我对代码的尝试:
def lowest_integer(f, fmin):
f = fmin
nmin = n + 1
return nmin
我无法弄清楚如何在 lowest_integer()
函数
f(n)
你可以这样做:
def lowest_integer(f, fmin):
nmin=1
while f(nmin)<=fmin :
nmin += 1
return nmin
您从 nmin = 1
开始,然后在 nmin
上加 1,而 f(nmin)<=fmin
。为此,您可以使用 while
循环。
通过执行 f(nmin)
,您可以调用函数 f
并计算条目 nmin
的值。
def f(n):
return 2*n
def lowest_integer(f, fmin):
for findmin in range(fmin):
if f(findmin) > fmin:
return findmin
return -1
print(lowest_integer(f, 10))
您可以遍历从 1
开始的整数,直到找到满足条件的整数,在这种情况下,return it:
def lowest_integer(f, fmin):
nmin = 1
while True:
if f(nmin) > fmin:
return nmin
nmin += 1
def f(n):
return 2*n
print(lowest_integer(f, 10))
def f(n):
return n**2 + 6*n - 3
print(lowest_integer(f, 500))
输出:
6
20
这种方法当然是一种幼稚的方法,如果函数 f
很慢并且 fmin
很大,这种方法会很慢,但总的来说效果很好。
一种更快的方法是使用像 sympy
之类的库,这些库具有使用适合此类问题的更复杂方法和技术的函数。