我想将以下函数应用于a
,b
,c
的多个实例,但似乎我无法将此函数应用于列表。目标是计算一些不等式,最后将它们插入一个新的z = ax + bx
方程,以便找到最低或最高有序对。
这是一个更清晰的代码,省略了列表的使用:
xMin,yMin = 0,0
a,b,c = 2,-3,12
enter code here
def FindVar(object):
x = (-b*yMin)/a + c/a
y = (-a*xMin)/b + c/b
print '(', FindVar.x, ',', yMin, ')'
print '(', xMin, ',', FindVar.y, ')'
这是一个更长的代码,它使用更加粗糙的列表:
xMin = 0
yMin = 0
def i1():
a,b,c = 2,-3,12
#Create and append l1
global l1
l1 = []
l1.extend((a,b,c))
#Find X,Y
y = (-a*xMin)/b + (c/b)
x = (-b*yMin)/a + c/a
#Add to list
pair = []
pair.append((xMin,y))
pair.append((x,yMin))
print '%sx + %sy = %s' % (a,b,c)
print 'RETURNS'
print pair[0], z1
print pair[1], z2
def i2():
a,b,c = 1,1,5
#Create and append l2
global l2
l2 = []
l2.extend((a,b,c))
#Find X,Y
y = (-a*xMin)/b + c/b
x = (-b*yMin)/a + c/a
#Add to list
pair = []
pair.append((xMin,y))
pair.append((x,yMin))
print '%sx + %sy = %s' % (a,b,c)
print 'RETURNS'
print pair[0], z1
print pair[1], z2
因此,对于第二位代码,我最终得到4个列表项,每个列表项应该应用于最终等式z = ax + by
,其中a和b独立于其他函数。
编辑:目的是采用类似“z = 2x + 7y”的等式并使其遵守规则: 2x - 3y≤12, x +y≤5, 3x +4y≥24, x≥0, y≥0。
我取这些方程并将它们放入一个列表中,使a,b,c = [2,-3,12],[1,1,5],[3,4,24](其中a = 2 ,1,3,b = -3,1,4,和c = 12,5,24)。然后我可以根据三个实例中的每一个找到(x,y)并将每个有序对插入到我的初始“z = 2x + 7y”中。所有这一切的要点是获取数据集并找出哪个集合最有效。
在代码的先前版本中使用z1和z2将“z = 2x + 7y”应用于第一等式的第一和第二有序对。
编辑2: 这是我想出的更干净的代码。
xMin = 0
yMin = 0
a = [10,11,1]
b = [7,-8,1]
c = [200,63,42]
def findxy(a,b,c):
#Finds x,y for ax+by=c
x = (-b*yMin)/a + c/a
y = (-a*xMin)/b + c/b
#The results, followed by the z function "z = 15x + 15y"
if x >= xMin:
print '(%s, %s)' % (x,yMin), 15 * x + 15 * yMin
if y >= yMin:
print '(%s, %s)' % (xMin,y), 15 * xMin + 15 * y
map(findxy,a,b,c)
结果
(20, 0) 300 (0, 28) 420 (5, 0) 75 (42, 0) 630 (0, 42) 630
谢谢!