algorithm - "Least frequently used"- 算法

标签 algorithm artificial-intelligence

我正在构建一个应该从有限任务池中为用户提取任务的应用程序。问题是我想要:

  1. 用户不会两次获得相同的任务,
  2. 在一段时间过去之前,用户不会获得与其 friend (在应用程序中)相同的任务。

总结一下我的问题,我需要从池中提取最不常见的任务

有人可以向我推荐寻找最不常见事物 (LFU) 的已知算法吗? 我还需要理论方面的知识,所以如果有人知道一些关于这方面的文章或研究论文(来自《科学美国人》等知名杂志),那就太好了。

最佳答案

要获得最少使用的任务,只需给每个任务一个计数器,计算它被使用的次数。然后搜索计数器值最低的任务。

为了获得一组 friend 最不经常使用的任务,您可以为每个用户存储他/她完成的任务(以及次数)。无论如何,这些信息可能还是有用的。然后,当需要为用户选择新任务时,可以很容易地创建用户及其所有 friend 使用的任务及其频率的(临时)组合列表,并按频率排序。这不是很贵。

关于algorithm - "Least frequently used"- 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450969/

相关文章:

java - 对人物相似度算法的建议

ajax - 如何在每个页面可能从不同的偏移量开始时进行分页

javascript - sigmoid 函数中的 e 等于什么?

artificial-intelligence - 为什么要识别 XOR 算子的反向传播神经网络需要偏置神经元?

algorithm - 找到所有可能的欧拉循环

Java 最短成本路径 : Uninformed/Informed search from a (. txt) 文本文件

artificial-intelligence - A* 在启发式仅可接受但不一致时重新打开

c# - 如何实现序列的约束改组

algorithm - 为什么在 Dial 版本的 Dijkstra 算法中使用双链表?

algorithm - 设计一个也可以在 O(1) 摊销时间内出队的堆栈?