如果约束条件A > B > C > D
f(A,B,C,D,N,X)=XB+D+(N-X)C
H(N,B)=NB
g(A,B,C,D,N,X)=XB+A+(N-X)*C
求f(A,B,C,D,N,X)与g(A,B,C,D,N,X)最大值
以及的范围
H(N,B)> f(A,B,C,D,N,X), g(A,B,C,D,N,X)
H(N,B)< f(A,B,C,D,N,X), g(A,B,C,D,N,X)
因为没有太多的限制条件,我想可以自己先限制一下取值范围,在逐步放宽限制
我的假设是:因为求的是最大值,所以第一步限制A,B,C,D,N,X只取正整数,且限制最大值小于10,即10>A > B > C > D,随后逐步放大最大值限制,如20,30等等。
就目前我爬出来的数据显示,列表flist的最大值与最后一次取值的数值相同,可判断为单调递增,因此变量取值越大,函数也越大,最大值为正无穷
# A > B > C > D
def f(A,B,C,D,N,X):
return X*B + D + (N-X)*C
def H(N,B):
return N * B
def g(A,B,C,D,N,X):
return X * B + A + (N-X) *C
num = 30
flist = []
for a in range(num):
for b in range(a):
for c in range(b):
for d in range(c):
for n in range(num):
for x in range(num):
f1 = f(a,b,c,d,n,x)
flist.append(f1)
max(flist) == fl
ABCD有具体的取值范围吗?
我想问一下最后的范围是什么意思?
如果不看范围的话,最大值可以取到正无穷
话说
f函数没有a参数啊
参考陕西人民出版社,陈军斌,赵来军著的《最优化理论与方法》,第7章第五节的动态规划
被难住了
可以定义一个函数,给你参考,如有帮助,请采纳
以下是max()方法的语法:
max( x, y, z, .... )
参数
x -- 这是一个数值表达式。
y -- 这也是一个数值表达式。
z -- 这是一个数值表达式。
返回值
此方法返回其参数的最大值。
例子
下面的例子显示了max()方法的使用。
#!/usr/bin/python
print "max(80, 100, 1000) : ", max(80, 100, 1000)
print "max(-20, 100, 400) : ", max(-20, 100, 400)
print "max(-80, -20, -10) : ", max(-80, -20, -10)
print "max(0, 100, -400) : ", max(0, 100, -400)
当我们运行上面的程序,它会产生以下结果:
max(80, 100, 1000) : 1000
max(-20, 100, 400) : 400
max(-80, -20, -10) : -10
max(0, 100, -400) : 100
本人最近也在准备数模,题主是不是漏了f和g的范围没给出来😂没有别的条件求解出来的是无穷大呢
……是我理解错了?难道我理解得…
参考一下这个
https://blog.csdn.net/qq_40498551/article/details/89278247
https://blog.csdn.net/cr496352127/article/details/55270988
竟然没看懂题意,愚钝了
暂存一下,待标记
# A > B > C > D
def f (A,B,C,D,N,X):
return X*B + D + (N-X)*C
def H(N,B):
return N * B
def g(A,B,C,D,N,X):
return X * B + A + (N-X) *C