algorithm - 类似 iPod 的 shuffle 算法的高效实现?

标签 algorithm random shuffle

目标是从 1..N 首歌曲中随机选择一首,N 首歌曲不重复,并且能够像 iPod 一样向前和向后迭代。我使用哈希表来存储随机歌曲。有更好的办法吗?

最佳答案

执行此操作的一个简单算法是从所有 N 首歌曲的列表开始,然后使用类似 Fisher-Yates Shuffle 的算法随机打乱数组元素。 。完成此操作后,您将按随机顺序对所有歌曲进行排序,并且不会重复。如果您跟踪列表中的当前索引,则可以通过在数组中向前或向后移动来实现下一个和上一个。

希望这有帮助!

关于algorithm - 类似 iPod 的 shuffle 算法的高效实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16404501/

相关文章:

algorithm - 如何对所有大小的十五个拼图进行最佳洗牌?

java - 2D int 数组洗牌

javascript - jQuery:在对象内随机播放对象

c# - 在字符串数组中查找下一个匹配项的索引和值

c++ - 如何使用rand随机模拟点击

sorting - 使用带有 seq::index::sample 的排序时出现 Rust 错误

c# - 在 C# 中获得 0.5% 的机会

algorithm - 显示每个节点出现一次并使用 Dijkstra 算法在 neo4j 中找到最短路径

algorithm - 寻找具有特定性质的整数 - 欧拉计划问题 221

javascript - 负方向的指数公式?