那个网站专做代购香水的/镇江网页设计

那个网站专做代购香水的,镇江网页设计,昆明网站设计制造,asp大型网站开发import java.util.*;/*** https://cloud.tencent.com.cn/developer/news/1045747* 伪随机播放音乐*/ public class MusicPlayer {private List<String> allSongs; // 所有歌曲列表private List<String> playedSongs; // 已经播放过的歌曲列表private Map<String…

import java.util.*;/*** https://cloud.tencent.com.cn/developer/news/1045747* 伪随机播放音乐*/
public class MusicPlayer {private List<String> allSongs; // 所有歌曲列表private List<String> playedSongs; // 已经播放过的歌曲列表private Map<String, Integer> songPreferences; // 歌曲偏好权重public MusicPlayer(List<String> allSongs) {this.allSongs = allSongs;this.playedSongs = new ArrayList<>();this.songPreferences = new HashMap<>();// 初始化所有歌曲的偏好权重为1for (String song : allSongs) {songPreferences.put(song, 1);}}// 根据偏好权重随机选择下一首歌曲public String getNextSong() {List<String> availableSongs = new ArrayList<>(allSongs);availableSongs.removeAll(playedSongs);if (availableSongs.isEmpty()) {// 如果所有歌曲都播放过了,重置播放列表playedSongs.clear();availableSongs = new ArrayList<>(allSongs);}// 计算总权重int totalWeight = availableSongs.stream().mapToInt(song -> songPreferences.get(song)).sum();// 生成一个随机数Random random = new Random();int randomWeight = random.nextInt(totalWeight);// 根据权重选择歌曲int cumulativeWeight = 0;for (String song : availableSongs) {cumulativeWeight += songPreferences.get(song);if (randomWeight < cumulativeWeight) {playedSongs.add(song);return song;}}return null; // 正常情况下不会执行到这里}// 更新歌曲偏好权重public void updatePreference(String song, int weight) {if (songPreferences.containsKey(song)) {songPreferences.put(song, songPreferences.get(song) + weight);}}public static void main(String[] args) {List<String> songs = Arrays.asList("Song1", "Song2", "Song3", "Song4", "Song5");MusicPlayer player = new MusicPlayer(songs);// 模拟用户偏好,增加某些歌曲的权重player.updatePreference("Song1", 3);player.updatePreference("Song3", 2);// 模拟播放10首歌曲for (int i = 0; i < 10; i++) {System.out.println("Now playing: " + player.getNextSong());}}
}

你是否曾想过音乐播放器的随机播放的歌曲真的是完全随机的吗?不,它们在骗你!

我们来介绍一下伪随机和真随机。

伪随机算法是最常见的一种,它会从播放列表中随机选择一首歌曲播放,然后根据一些规则来决定下一首播放的歌曲。例如,它可能会排除已经播放过的歌曲,以避免重复播放。另外,一些播放器还可能会根据歌曲的类型、时长、评分等因素来决定下一首播放的歌曲。

而真随机算法则会完全随机选择一首歌曲播放,没有任何规则和预测。但这种算法并不常见,因为它可能会导致某些歌曲被播放多次,而有些歌曲则几乎不会被播放。

如果,要表达的更清楚一些的话,如下:

真随机,它就像抓阄一样,没有列表的概念,也没有上一首和下一首的概念,它会随机到不同的音乐。而伪随机,是被算法所操纵的随机,算法在你选择随机播放时,一个完整的播放歌单或许就形成了。

那么如何判断是真随机还是伪随机呢?其实只要按上一首就知道了。如果切换到是你刚才听过的那一首,那就是伪随机。如果是每次都在切换不同的歌,那么就是真随机。

说到这里,大概有一个概念了,那就是大部分的音乐软件会推崇伪随机算法。为什么?

原因就是,用户选择随机播放就是为了满足自己无法下决定但又想要获得新鲜感的心理,这时就应该尽可能的避免重复和单调。如果是真随机算法的话,那么可能导致某些歌曲被播放多次,而有些歌曲则几乎不会被播放。

但这不是主要的,如果随机播放的歌是用户讨厌的呢?或者无论怎么随机播放,歌都不是用户不喜欢的,那用户会开始讨厌这个平台,平台的用户留存变少,转去其他平台。

打个比方,用户喜欢听古风歌曲,那么在它听歌时,前一首是古风,后一首就变成了嘻哈摇滚风,本来想着没准第三首就好了,结果第三首是纯音乐,换你你能接受吗?

用户的整体听歌体验都变得割裂了,于是用户转战其他平台,自己的平台用户大量流失。

那么,为了提高用户对于平台的粘滞力,伪随机是最好的选择。于是平台会干预随机列表,算法根据你平时的习惯,不断地推送那些你喜欢听的歌,迎合你的喜好。

而且,这还能让用户不需要自己搜就能找到想听的歌曲,甚至可以找到好多自己想听却忘记名字的歌了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MiniMind用极低的成本训练属于自己的大模型

本篇文章主要讲解&#xff0c;如何通过极低的成本训练自己的大模型的方法和教程&#xff0c;通过MiniMind快速实现普通家用电脑的模型训练。 日期&#xff1a;2025年3月5日 作者&#xff1a;任聪聪 一、MiniMind 介绍 基本信息 在2小时&#xff0c;训练出属于自己的28M大模型。…

区块链中的数字签名:安全性与可信度的核心

数字签名是区块链技术的信任基石&#xff0c;它像区块链世界的身份证和防伪标签&#xff0c;确保每一笔交易的真实性、完整性和不可抵赖性。本文会用通俗的语言&#xff0c;带你彻底搞懂区块链中的数字签名&#xff01; 文章目录 1. 数字签名是什么&#xff1f;从现实世界到区块…

【文生图】windows 部署stable-diffusion-webui

windows 部署stable-diffusion-webui AUTOMATIC1111 stable-diffusion-webui Detailed feature showcase with images: 带图片的详细功能展示: Original txt2img and img2img modes 原始的 txt2img 和 img2img 模式 One click install and run script (but you still must i…

hive之lag函数

从博客上发现两个面试题&#xff0c;其中有个用到了lag函数。整理学习 LAG 函数是 Hive 中常用的窗口函数&#xff0c;用于访问同一分区内 前一行&#xff08;或前 N 行&#xff09;的数据。它在分析时间序列数据、计算相邻记录差异等场景中非常有用。 一、语法 LAG(column,…

【软考-架构】1.3、磁盘-输入输出技术-总线

GitHub地址&#xff1a;https://github.com/tyronczt/system_architect ✨资料&文章更新✨ 文章目录 存储系统&#x1f4af;考试真题输入输出技术&#x1f4af;考试真题第一题第二题 存储系统 寻道时间是指磁头移动到磁道所需的时间&#xff1b; 等待时间为等待读写的扇区…

盛铂科技PDROUxxxx系列锁相介质振荡器(点频源):高精度信号源

——超低相位噪声、宽频覆盖、灵活集成&#xff0c;赋能下一代射频系统 核心价值&#xff1a;以突破性技术解决行业痛点 在雷达、卫星通信、高速数据采集等高端射频系统中&#xff0c;信号源的相位噪声、频率稳定度及集成灵活性直接决定系统性能上限。盛铂科技PDROUxxxx系列锁…

【文献阅读】The Efficiency Spectrum of Large Language Models: An Algorithmic Survey

这篇文章发表于2024年4月 摘要 大语言模型&#xff08;LLMs&#xff09;的快速发展推动了多个领域的变革&#xff0c;重塑了通用人工智能的格局。然而&#xff0c;这些模型不断增长的计算和内存需求带来了巨大挑战&#xff0c;阻碍了学术研究和实际应用。为解决这些问题&…

如何在Github上面上传本地文件夹

前言 直接在GitHub网址上面上传文件夹是不行的&#xff0c;需要一层一层创建然后上传&#xff0c;而且文件的大小也有限制&#xff0c;使用Git进行上传更加方便和实用 1.下载和安装Git Git - Downloads 傻瓜式安装即可 2.获取密钥对 打开自己的Github&#xff0c;创建SSH密钥&…

kafka-web管理工具cmak

一. 背景&#xff1a; 日常运维工作中&#xff0c;采用cli的方式进行kafka集群的管理&#xff0c;还是比较繁琐的(指令复杂&#xff1f;)。为方便管理&#xff0c;可以选择一些开源的webui工具。 推荐使用cmak。 二. 关于cmak&#xff1a; cmak是 Yahoo 贡献的一款强大的 Apac…

数据结构:八大排序(冒泡,堆,插入,选择,希尔,快排,归并,计数)详解

目录 一.冒泡排序 二.堆排序 三.插入排序 四.选择排序 五.希尔排序 六.快速排序 1.Lomuto版本&#xff08;前后指针法&#xff09; 2.Lomuto版本的非递归算法 3.hoare版本&#xff08;左右指针法&#xff09; 4.挖坑法找分界值&#xff1a; 七.归并排序 八.计数排序…

【商城实战(2)】商城架构设计:从底层逻辑到技术实现

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…

Mac mini M4安装nvm 和node

先要安装Homebrew&#xff08;如果尚未安装&#xff09;。在终端中输入以下命令&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 根据提示操作完成Homebrew的安装。 安装nvm。在终端中输入以下命令&#xf…

FOC无感开环启动算法

FOC无感开环启动排除掉高频注入这种直接识别当前转子dq轴的位置直接闭环启动&#xff0c;大部分的常规启动方式就是三段式启动&#xff0c;对齐-强拖-观测器介入-观测器误差稳定后平滑过渡-闭环。 这里就只写出I/F&#xff08;V/F&#xff09;启动的角度输出的代码&#xff0c…

Android 自定义View 加 lifecycle 简单使用

前言 本文是自定义view中最简单的使用方法&#xff0c;分别进行 ‘onMeasure’、‘onDraw’、‘自定义样式’、‘lifecycle’的简单使用&#xff0c;了解自定义view的使用。 通过lifecycle来控制 动画的状态 一、onMeasure做了什么&#xff1f; 在onMeasure中获取view 的宽和…

《挑战你的控制力!开源小游戏“保持平衡”开发解析:用HTML+JS+CSS实现物理平衡挑战》​

&#x1f4cc; 大家好&#xff0c;我是智界工具库&#xff0c;致力于分享好用实用且智能的软件以及在JAVA语言开发中遇到的问题&#xff0c;如果本篇文章对你有所帮助请帮我点个小赞小收藏吧&#xff0c;谢谢喲&#xff01;&#x1f618;&#x1f618;&#x1f618; 博主声…

【无标题】FrmImport

文章目录 前言一、问题描述二、解决方案三、软件开发&#xff08;源码&#xff09;四、项目展示五、资源链接 前言 我能抽象出整个世界&#xff0c;但是我不能抽象你。 想让你成为私有常量&#xff0c;这样外部函数就无法访问你。 又想让你成为全局常量&#xff0c;这样在我的…

给定计算预算下的最佳LLM模型尺寸与预训练数据量分配

给定计算预算下的最佳LLM模型尺寸与预训练数据量分配 FesianXu 20250304 at Wechat Search Team 前言 如果给定了计算预算 C C C&#xff0c;如何分配LLM的模型尺寸 N N N和训练的数据量 D D D&#xff0c;才能使得模型的效果 L L L最好呢&#xff1f;笔者在此介绍一篇经典的文…

青训营:简易分布式爬虫

一、项目介绍 该项目是一个简易分布式爬虫系统&#xff0c;以分布式思想为基础&#xff0c;通过多节点协作的方式&#xff0c;将大规模的网页抓取任务分解&#xff0c;从而高效、快速地获取网络数据 。 项目地址&#xff1a;https://github.com/yanchengsi/distributed_crawle…

任务9:交换机基础及配置

CSDN 原创主页&#xff1a;不羁https://blog.csdn.net/2303_76492156?typeblog 一、交换机基础 交换机的概念&#xff1a;交换机是一种网络设备&#xff0c;用于连接多台计算机或网络设备&#xff0c;实现数据包在局域网内的快速交换。交换机基于MAC地址来转发数据包&#x…

YOLOv8改进------------SPFF-LSKA

YOLOv8改进------------SPFF-LSKA 1、LSAK.py代码2、添加YAML文件yolov8_SPPF_LSKA.yaml3、添加SPPF_LSKA代码4、ultralytics/nn/modules/__init__.py注册模块5、ultralytics/nn/tasks.py注册模块6、导入yaml文件训练 1、LSAK.py代码 论文 代码 LSKA.py添加到ultralytics/nn/…