2018-08-27

2018-08-27  本文已影响0人  木马音响积木

今天,看了一数学题
从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的大小

上一篇下一篇

猜你喜欢

热点阅读