例如,我有一个表达式作为整数n
f[n_]:=10^n*(n^2+4*n)
我想找到n
的最大整数,以便f[n]<=m
找到另一个数字m
。
我可以将其表述为整数编程/优化问题。但这使事情复杂化。我也可以尝试从1开始并继续测试约束是否被违反。有没有更有效或更优雅的方式这样做?请注意,约束可能允许Infinity
值n
,我理想情况下想要检测到这种情况。
答案 0 :(得分:5)
取决于。如果你可以使用数值方法来解决启发式结果,那么假设整数最大值是实际最大值的最低值,那么可以如下所示。
f[n_] := 10^n*(n^2 + 4*n)
In[32]:= Floor[First[NMaximize[{n, f[n] <= 10^8}, n]]]
Out[32]= 6
Daniel Lichtblau