Python 返回递增函数的最小整数
编写一个函数Python 返回递增函数的最小整数,python,function,math,equation,minimize,Python,Function,Math,Equation,Minimize,编写一个函数lower\u integer(),它接受两个输入参数: 函数f表示递增函数您可以这样做: def lowest_integer(f, fmin): nmin=1 while f(nmin)<=fmin : nmin += 1 return nmin def最小_整数(f,fmin): nmin=1 当f(nmin)时,可以循环遍历从1开始的整数,直到找到满足条件的整数,在这种情况下,返回它: def lowest_integer(
lower\u integer()
,它接受两个输入参数:
- 函数
表示递增函数您可以这样做:f
def lowest_integer(f, fmin): nmin=1 while f(nmin)<=fmin : nmin += 1 return nmin
def最小_整数(f,fmin): nmin=1
当f(nmin)时,可以循环遍历从1开始的整数,直到找到满足条件的整数,在这种情况下,返回它:
输出: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
最小整数中定义
,您需要调用它。非常感谢!当我尝试第二个代码示例(即f
时,我得到的是f(n)=n**2+6*n-3
而不是21
,你知道这可能是什么原因吗?@codemachine98,请不要盲目使用代码,花一分钟时间自己解决这个问题。问问自己:20
真的与f(nmin)
?谢谢你的评论。我编辑了我的答案来纠正这个事实。当我为fmin输入一个浮点数,例如f相反吗(nmin)>fmin
时,我似乎收到了消息fmin=1.5
TypeError:“float”对象不能解释为整数。我尝试设置
,但没有得到正确的输出范围(int(fmin))
6 20