fang10677208633 发表于 2017-7-31 20:01:16

求大佬来帮帮忙

1-n个数排成一个圆环,定义距离为相邻两个数差的平方,求距离的平方和最大时,圆环的排列

冬雪雪冬 发表于 2017-7-31 21:29:58

没有太好的思路,只好用暴力的方法。
先做出1~n的排列,由于是环形,可以把1固定,这样做2~n的排列就可以了。然后一一计算得到最大值。
我用python写了一个。
import itertools
n = 7
max1 = 0
for i in itertools.permutations(range(2, n + 1), n - 1):
    sum1 = 0
    lst = list(i)
    lst.insert(0, 1)
    for j in range(len(lst)):
      sum1 += (lst - lst[(j + 1) % len(lst)]) ** 2
      if sum1 > max1:
            max1 = sum1
            lst2 = lst[:]

print(lst2)
页: [1]
查看完整版本: 求大佬来帮帮忙