鱼C论坛

 找回密码
 立即注册
查看: 3390|回复: 1

求大佬来帮帮忙

[复制链接]
发表于 2017-7-31 20:01:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1-n个数排成一个圆环,定义距离为相邻两个数差的平方,求距离的平方和最大时,圆环的排列
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-31 21:29:58 | 显示全部楼层
没有太好的思路,只好用暴力的方法。
先做出1~n的排列,由于是环形,可以把1固定,这样做2~n的排列就可以了。然后一一计算得到最大值。
我用python写了一个。
  1. import itertools
  2. n = 7
  3. max1 = 0
  4. for i in itertools.permutations(range(2, n + 1), n - 1):
  5.     sum1 = 0
  6.     lst = list(i)
  7.     lst.insert(0, 1)
  8.     for j in range(len(lst)):
  9.         sum1 += (lst[j] - lst[(j + 1) % len(lst)]) ** 2
  10.         if sum1 > max1:
  11.             max1 = sum1
  12.             lst2 = lst[:]

  13. print(lst2)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 07:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表