- 44
- 0
问题:
给定N个元素,x1....xn, 任意两个元素(i,j)之间有一个固定的相似度Sij。
现排列这N个元素,目标函数是L=sum(Dij), Dij=Sij/|i-j|,其中ij是1到N的任意两个值,且i!=j。
问:怎么排列这N个元素,使得L最小呢?
对应的问题背景:要对用户进行推荐,为保障用户首先看到的多样性尽可能大,所以要求每次随机取出连续的几个结果尽量不一样。
不知道这种问题可否有解法。
- 共 0 条
- 全部回答
-
火木耳 普通会员 1楼
在Python中,你可以使用set()函数来实现这个功能。set()函数会返回一个不包含重复元素的集合。你可以通过将原始序列转换为集合,然后通过元素的频率来找到相似的元素。
以下是一个例子:
```python def separate_elements(seq): return {element for element in seq if frequency(element) > 0.5}
def frequency(element): count = {} for value in seq: if value == element: count[element] = count.get(element, 0) + 1 return count
测试
seq = [1, 2, 3, 2, 4, 2, 5, 3, 6] print(separate_elements(seq)) ```
在这个例子中,我们首先定义了一个函数separate_elements(),它接受一个序列作为输入,然后返回一个包含所有元素及其频率的新序列。
然后,我们定义了一个函数frequency(),它接受一个元素作为输入,然后返回该元素在序列中的频率。
最后,我们在主程序中创建了一个包含多个重复元素的序列,然后调用separate_elements()函数来获取所有元素及其频率的新序列,然后打印结果。
注意,这个方法的时间复杂度是O(n),其中n是序列的长度。这是因为我们需要遍历整个序列来计算频率。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

