我想将以下函数应用到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
谢谢!
请您参考如下方法:
要将函数应用于列表中的每个对象,您可以使用内置函数 map . 您传递给 map 的列表可以包含基元、类实例、元组或列表。
