化工过程分析与合成-P21(2-3)第一版代码
必需承认,好久不碰编程,很多基本常识都已经忘记了。
但是为了上课能够演示一下,重新拾起来。
代码体现的思维方式,这是我解决这个问题的思路。
也就是一个情况一个情况的考虑。
但是程序写死了。应该开放接口方便扩展使用。
#coding:utf-8
import math
s=[[0,1,1,0],
[1,1,1,1],
[0,0,1,1],
[1,0,0,0],
[0,1,0,0],
[0,0,1,0],
[0,0,0,1]]
m=[0,0,0,0]
#判断1项是否满足
for i in range(0,7):
print("s",str(i+1),"=",s[i])
for i in range(0,7):
if (s[i]==[1,1,1,1]):
print('s',str(i+1))
#判断2项是否满足
for i in range(0,7):
for j in range(i+1,7):
for t in range(0,4):
m[t]=s[i][t]+s[j][t]
if (m==[1,1,1,1]):
print('s',str(i+1),'+','s',str(j+1),"=",m)
#判断3项是否满足
for i in range(0,7):
for j in range(i+1,7):
for z in range (j+1,7):
for t in range(0,4):
m[t]=s[i][t]+s[j][t]+s[z][t]
if (m==[1,1,1,1]):
print(" match the need")
print('s',str(i+1),'+','s',str(j+1),'+','s',str(z+1),"=",m)
#判断4项是否满足
for i in range(0,7):
for j in range(i+1,7):
for z in range (j+1,7):
for p in range(z+1,7):
for t in range(0,4):
m[t]=s[i][t]+s[j][t]+s[z][t]+s[p][t]
if (m==[1,1,1,1]):
print(" match the need")
print('s',str(i+1),'+','s',str(j+1),'+','s',str(z+1),'+','s',str(p+1),"=",m)