首页 > 编程语言 >一种基于喜爱程度的音乐随机播放算法

一种基于喜爱程度的音乐随机播放算法

时间:2023-01-30 18:39:42浏览次数:30  
标签:首歌曲 喜爱 算法 歌曲 随机 播放 Select


打开你手机中的音乐播放器,开始播放音乐,选择播放模式,共有四种

顺序播放    随机播放   循环播放    单曲循环    

        选择随机播放时,你真的希望是随机么,还是懒得手动选择?你是否希望随机时听到自己喜欢的歌曲的概率更高一些,毕竟,某一段时间内,你对歌曲的选择是有偏爱的,一首新歌刚出来时,你疯狂的听,但是几天之后,你又喜欢上了别的歌曲。

        能否根据用户的喜爱程度来随机播放呢?

        首先,我们要找到衡量喜爱程度的指标。假如播放器里有N首歌曲,那么我们就统计在此之前听过的N首歌曲的分布情况

       有a1,a2,a3.....aN,N首歌曲,在过去听过的N首歌曲中,a1听的次数最多,竟然有10次,a2听了5次,a5竟然为0。

       经过统计,听的次数最多的是a1,高达10次,我们就用10,作为用户对这首歌曲的喜爱程度。有些歌曲听的次数虽然是0,但我们不能认为用户对这些歌曲的喜爱程度是0,而是将其设置为1,OK,现在,每首歌曲都有了一个喜爱程度,假设这些值为L1,L2,L3.....Ln

      现在,我们要进行随机选择了。

      声明一个大小为N的数组,设为Select[N]  

      Select[0] = L1 

      Select[1] = L1 + L2

      Select[2] = L1 + L2 + L3

      ........

     Select[N-1] = L1 + L2 + L3+...+Ln

     下角标是歌曲的编号


     现在,随机生成一个大于0小于 Select[N-1]的 数值K,用二分查找法很快就能找到K在数组中的位置,所谓位置,就是数组的下角标,而下角标恰又是歌曲的编号,如此,我们随机的选择了一首歌曲,但却让那些经常听的歌曲被选中的概率更大。


      每次用户打开播放器时,都重新计算喜爱程度,如果随机选择出来的歌曲被用户pass掉了,这说明,用户现在不想听这首歌曲,那么则调低这首歌曲的喜爱程度,重新计算Select数组,如果用户在这种随机模式下选择了一首歌曲,这就说明,当前用户喜欢这首歌曲,调高这首歌曲的喜爱程度,重新计算Select数组

       

     通过上面的算法,用户在基于喜爱随机播放时,将更多的听到自己喜欢的歌曲。


标签:首歌曲,喜爱,算法,歌曲,随机,播放,Select
From: https://blog.51cto.com/u_15948370/6027572

相关文章

  • 封装用于循环播放展示一组内容的组件
    <template><divv-if="show"class="command-code":style="{color:color}"><divclass="command-code-box"ref="boxRef":style="{width:contentWidth}">......
  • 网页红警,如何将存入本地的音频转成可播放状态
    之前资源加载,我实现了将资源以ArrayBuffer的形式保存到的本地Indexeddb中,里面包含很多的音频文件,那么,如何将音频文件拿出以后,直接播放呢?有两个方法可以实现:URL.createObject......
  • 深度学习基础课:使用Adam算法
    大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序线上课程资料:本节课录像回放加QQ群,获得......
  • 【数据结构和算法】Trie树简介及应用详解
    作者:京东物流马瑞1什么是Trie树1.1Trie树的概念Trie树,即字典树,又称单词查找树或键树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以......
  • 【算法训练营day31】LeetCode455. 分发饼干 LeetCode376. 摆动序列 LeetCode53. 最大
    LeetCode455.分发饼干题目链接:455.分发饼干独上高楼,望尽天涯贪心的思路,将每块饼干都发给最合适的孩子,那么最后分发饼干的策略就是最合适的,即可满足最多的孩子。class......
  • 随机算法
    模拟退火听说是模拟了物理中的降温过程来寻找全局最优解的过程?众所周知物理中的降温过程是\(T=T_{ed}+a^t\),所以我们仿照这个过程定义温度\(T\),降温系数\(a\)。每次我们......
  • 根据地图point生成随机坐标
    在此记录一下,不是本人开发github地址:https://github.com/zxbit2011/RandomLngLat......
  • 使用遗传算法+神经网络解决贪食蛇游戏
    在网上无意看到的一个项目,感觉还是蛮有意思的:​​https://github.com/greerviau/SnakeAI​​    ==========================================  代码不知道是用什么语......
  • 怎么高效学习数据结构和算法?
    5个步骤:基础语法学习—>语法配套练习—>数据结构—>算法入门—>算法进阶一、数据结构官方解释:​​数据结构​​是一门研究非数值计算的程序设计问题中的额操作对象,以及他们......
  • 【算法与数据结构】Trie树简介及应用
    作者:京东物流马瑞1什么是Trie树1.1Trie树的概念Trie树,即字典树,又称单词查找树或键树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常......