Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- table = []
- res = []
- def makeSimTab(a, b, c):
- global res
- for i in range(n):
- table.append([b[i]])
- table[i] += a[i] + [0] * n
- table[i][m + i + 1] = 1
- table.append([0] + [-i for i in c] + [0] * n)
- res = [0] * (n + 1)
- def printTable():
- global res
- out = ["H"] + ['x' + str(i + 1) for i in range(n + m)] + ["res"]
- for i in out:
- print("%8s" % i, end="")
- print()
- for j, r in zip(table, res):
- for i in j:
- print("%8s" % (str("%.2f" % i)), end="")
- print("%8s" % (str("%.2f" % r)))
- print()
- print()
- def method():
- global res
- while True:
- mx = min(table[-1])
- if mx >= 0:
- break
- indMx = table[-1].index(mx)
- res = [table[i][0] / table[i][indMx] if table[i][indMx] > 0 else 99 for i in range(n)]
- indMn = res.index(min(res))
- # print(res)
- res.append(0)
- myVal = table[indMn][indMx]
- for i in range(len(table[indMn])):
- table[indMn][i] /= myVal
- for i in range(n + 1):
- if i == indMn:
- continue
- val = table[i][indMx]
- for j in range(n + m + 1):
- table[i][j] -= table[indMn][j] * val
- printTable()
- a = [[-1, 3, 0, 2, 1], [2, -1, 1, 2, 3], [1, -1, 2, 1, 0]]
- b = [1, 4, 5]
- c = [-1, 0, -2, 5, 4]
- n = len(b)
- m = len(c)
- makeSimTab(a, b, c)
- printTable()
- method()
- print(table[-1][0])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement