今天,看了一数学题
从1到9中取8个不重复的数,
使得 sum = a/b X(c+d)- (e X f) -g +h 最大 ,
其中字母代表 那8个数,X大写的,表示乘法。
我写了个几行代码
import random
lll=[n for n in range(1,10)]
allsum=big=1.0
t1=t2=t3=[]
t1=lll[:]
mm=lk=99999
while lk>0:
for i in range(1,9):
mm= random.randint(0,9-i)
t2.append(t1.pop(mm))
#print(t2)
allsum =(t2[0]/float(t2[1]))*(t2[2]+t2[3]) +t2[4]-t2[5]-(t2[6]*t2[7])
if allsum>big:
big=allsum
print(big)
t3.append(t2)
t2=[]
t1=lll[:]
lk-=1
print(t3[-1])
算了出来,因为书有答案。
44.0
64.0
118.0
120.0
128.0
130.0
131.0
[9, 1, 8, 7, 6, 4, 2, 3]
$python main.py
6.2
25.0
31.5
44.0
113.0
124.0
130.0
131.0
[9, 1, 8, 7, 6, 4, 3, 2]
谁能直接推到出答案,从数学方面,请指教,
我这是使用了计算机暴力。注意lk的大小
网友评论