gpt4 book ai didi

algorithm - 随机分组算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:57 27 4
gpt4 key购买 nike

我的音频播放器需要一个“随机播放专辑”算法,就像在 foobar2k 中一样。所以问题是:我有一个轨道列表,根据一些标准排序,以便具有相同专辑的轨道都是相邻的。现在我需要能够在“随机播放专辑”模式下播放播放列表中的歌曲,也就是说,如果下一首轨道来自同一专辑,就播放它,否则,转到下一张随机专辑的第一首轨道。如果用户想播放上一首轨道,请做同样的事情,但要倒退。所以问题是:我怎么知道以前的专辑是什么?我真的不想保留播放专辑的历史记录,也不想保留单独的列表。

目前,我通过给每个轨道随机随机索引来实现常规随机播放模式,这样我就可以通过找到最大随机索引小于当前随机索引和最小随机索引大于当前随机索引的轨道来找到上一个和下一个轨道。但它不适用于随机播放专辑模式。有人可以帮我解决这个问题吗?

示例输入:

Track 1, Album A
Track 2, Album A
Track 1, Album B
Track 2, Album B
Track 3, Album B
Track 1, Album C
Track 2, Album C
Track 3, Album C

假设当前轨道是轨道 1,专辑 A。下一首轨道将是轨道 2,专辑 A。下一首轨道不是来自同一专辑,因此应该选择随机专辑中的第一首轨道,比方说,轨道 1 ,专辑 C。我现在正在做的是选择下一首轨道,就好像它是常规随机播放模式一样,然后转到其专辑的第一首轨道,从而丢失我从哪里来到这张专辑的信息。所以当用户想去上一张专辑时,我不知道我是如何到达那里的。希望这能让问题更清楚。

谢谢。

最佳答案

您可以重复使用随机索引技术来索引相册。现在轨道索引是一个(专辑随机索引,轨道位置​​)对。要导航,增加/减少轨道位置;如果超出范围,则更新相册索引。

也就是说,您应该重新考虑不保留历史;如果有大量相册,它会让您更快地向后跳。

关于algorithm - 随机分组算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4233343/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com