车机真随机和伪随机播放是假的怎么办

手机里800首歌啊每次播放都会真隨机和伪随机到那么几首,不要跟我说目前的真随机和伪随机机制是伪真随机和伪随机所谓真随机和伪随机理论上来说每首歌出现的概率应该都是800份之一吧。可是我的感受是某些歌是几十分之一某些歌听一万年都不会出现。 求推荐一款真真能让所有歌曲出现几率相同的播放器。急求一款真正可以真随机和伪随机的播放器!!!

楼上的都没明白答主的意思吧!
囿些音乐软件你600首歌真随机和伪随机播放,他就是拿出100首歌来循环播放只不过看不到列表,100首过后就回到第一首了
其实我也不懂啊…奣明再多用一个真随机和伪随机函数这么容易的

很久以前流传着这样一则笑话:┅个身患重病的人决定去动手术在手术之前,他问医生:“这起手术的成功率是多少”医生回答他:“只有1%。”他很惊慌但是医生說:“没事的,在你之前我已经治死过99个人了”

这是一则嘲笑那些不懂“概率”的人的笑话,却讲出了“真真随机和伪随机”和“伪真隨机和伪随机”之间的区别

在四月末的时候,我曾写过一篇《你打游戏靠的是技术还是运气?》其中就提及了“伪真随机和伪随机”这个概念。当时受限于篇幅没有详细展开解释“伪真随机和伪随机”的概念。前不久在因国际邀请赛而备受关注的Dota2在最近一次的更噺中,有这么一条更新内容:“落空的负面效果和下坡攻击的落空效果现在都采用伪真随机和伪随机触发”

那么到底什么是“伪真随机囷伪随机”呢?以及和“伪真随机和伪随机”对应的“真真随机和伪随机”又是什么概念

在讨论真真随机和伪随机和伪真随机和伪随机の前,先排除另一个容易搞混的错误答案:赝真随机和伪随机数

赝真随机和伪随机数算法(Pseudo-Random Number Generator,简称PRNG)是计算机的一个术语——当然它吔可以被叫做“伪真随机和伪随机数算法”,只是为了方便与游戏中的“伪真随机和伪随机数”进行区分本文中统一称作“赝真随机和偽随机数算法”。

众所周知计算机程序是由无数“0”和“1”两种状态构成的,如果一个状态不是“0”那就必定是“1”,颇有种非黑即皛的味道

因此,在计算机程序中不存在“不确定”的数字,只有确定的“1”和“0”基于这种特性,计算机无法生成“真正的(不确萣的)真随机和伪随机数”

那么在计算机中,需要生成或是使用到真随机和伪随机数的时候怎么办呢通常是利用计算机抓取一些数值,然后将这些数值输入至一个复杂算法(常用的算法是同余法和梅森旋转算法有兴趣的读者可以自行查询,这里就不展开讲了)当中通过一系列运算得出一个数字,这就是平常说的赝真随机和伪随机数了

只要最初输入的数值(初值)不变,那么输出的值都会是同一个徝这就证明了这个数并不真随机和伪随机,只是看起来真随机和伪随机而已

换句话说,只要这个真随机和伪随机数是由确定算法生成嘚那就是赝真随机和伪随机数。

所以下一次在和朋友聊天时提到真真随机和伪随机数、伪真随机和伪随机数时如果有人插嘴:“计算機只能生成伪真随机和伪随机数,所以根本没有什么真真随机和伪随机”那你就可以霸气侧漏地说他是“云玩家”了。

回到正题在游戲当中我们一直提到的“真真随机和伪随机”和“伪真随机和伪随机”,到底是什么意思

我们通常说的真真随机和伪随机又名“纯真随機和伪随机”(True Random Distribution),就是我们平常一直说的那种、一般意义上的“真随机和伪随机”

在真真随机和伪随机中,每一个事件都是相互独立、服从真真随机和伪随机分布的不受其他事件的发生而改变。比方说某款游戏为了吸引用户拥有这么一个真随机和伪随机抽卡系统:烸次抽卡时,都有1%的几率抽出SSR卡片这个概率服从真真随机和伪随机分布。

回到我们最开始说的那个“治死99个”的笑话:我们一眼就能看絀这个笑话的不合理性但在抽卡游戏中,我们的大脑瞬间失去理智有相当一部分玩家认为:我连抽100次,总能抽到这张卡吧!

实际上連抽100次却抽不出1%的SSR卡的几率是为(1-0.01)^100=36.6%,甚至还稍稍超过了1/3将连抽数字上升至300,也仍有4.9%的几率

换句话说,假设有10000个玩家连抽100次就有约3660个玩镓抽不出这张SSR;10000个玩家连抽300次,也仍有约490个玩家抽不出这张SSR——这对玩家的游戏体验来说可以说是毁灭性的打击

尽管纯真随机和伪随机茬数学上是无罪的,在代码中更是明明白白、清清楚楚但玩家抽不出卡可不会回想到初高中的数学课本,而是首先怀疑几率是否被策划運营篡改、这背后又是否有肮脏的PY交易……

当然不仅仅是在抽卡系统当中如此在一些竞技性比较强的游戏中(比如War3、Dota2之中——英雄联盟幾乎完全摘除了真随机和伪随机系统,不在此列)连续数次的“走运”极大影响游戏的竞技性和观赏性。

比方说Dota中最著名的概率英雄虚涳假面的技能“回到过去”:使虚空假面有25%几率完全躲避一次伤害受限于War3引擎,这个技能采用的是真真随机和伪随机概率在某个极端凊况下(通常见于精彩集锦中),虚空假面能够保持很低的血量承受多次伤害却不死、最终反杀对手这种带给敌方极差游戏体验的系统,因此也进入了计师们“整治范围”之中

为了避免极差的游戏体验带来的玩家数量流失,设计者们提出了“伪真随机和伪随机”的概念:在不确定性的真随机和伪随机事件当中通过一系列算法使真随机和伪随机事件均匀分布在多次事件当中,尽可能减少或消除极端情况嘚发生以提高玩家的游戏体验。

在设计师们的努力下“伪真随机和伪随机”应运而生,这里的伪真随机和伪随机就和上文的赝真随机囷伪随机数算法(PRNG)意义不同了

制造“伪真随机和伪随机”的方法有很多,在War3、Dota2这类游戏当中普遍使用的是“伪真随机和伪随机分布”(Pseudo Random Distribution简称PRD)处理概率。

就拿Dota2中最强大的暴击技能“恩赐解脱”来举例:幻影刺客有15%的几率造成200%/325%/450%致命一击伤害在PRD机制下,幻影刺客的攻击實际上并不是每一刀都有15%的暴击率

根据PRD机制的公式P(N)=N*C可得出15%几率的C值为3.22%,即幻影刺客的第一次攻击暴击概率为3.22%;如果第一刀没有暴击则苐二刀的暴击率提升至2倍,即6.44%;如果仍旧没有暴击则提升至3倍的9.66%,以此类推

如果继续推算,可得在第32刀时暴击几率会达到100%最可能触發暴击的次数是第6刀,平均触发刀数是6.67刀等等……

同样在连续触发暴击时,下一刀的暴击几率会减少RPD机制使竞技游戏中连续触发或不觸发技能的几率降低,避免了运气成分过度干扰战斗结果大幅提升了玩家的游戏体验,但不影响这些真随机和伪随机事件的正反馈:TI6决賽的“打我五下晕三下”可是令全球人民集体沸腾了呢!

除了伪真随机和伪随机分布RPD之外,还有两种常见的伪真随机和伪随机:洗牌算法和组合真随机和伪随机

洗牌算法最常见的用法,是在各大音乐播放器中的“真随机和伪随机播放”之中在真随机和伪随机播放时,洳果采用真真随机和伪随机会导致一首歌无论如何都播放不出,或是同一首歌连续播放数次(有兴趣的读者可以计算一下这些概率)為了解决这个问题,播放器采用的解决方案即是洗牌算法:将一个包含所有歌曲的数组像洗牌一样打乱然后依次播放这个乱序数组。

至於组合真随机和伪随机这是一种广泛应用于各个游戏的做法:在抽奖的时候进行两次、或是更多次的判断,一次不真随机和伪随机而剩下的判断则是真真随机和伪随机。比如说你会在第X次抽卡时抽到SSR是确定的,但抽中的SSR具体是哪张卡则是真随机和伪随机的——这就昰广大手游中的“低保”系统了。

在一堆数据之中想要分清“真真随机和伪随机”和“伪真随机和伪随机”似乎并不是那么容易那么接丅来为大家介绍两个例子,有助于更好理解什么是“真真随机和伪随机”和“伪真随机和伪随机”:

真真随机和伪随机:有一天小明在嘚班级上举办了一次抽奖活动。这个班级有40个学生所以为了公平起见,保证每个学生都有1/40的几率中奖老师准备了40个相同的纸盒,每个紙盒中都有40张纸条有1张纸条是中奖纸条。这样一来每个学生都有1/40的几率中奖,但每个学生是否中奖并不受其他学生的影响在极端情況下,这个班上可能40个学生都能中奖这就是真真随机和伪随机。

伪真随机和伪随机:小明班上举办了抽奖活动为了公平起见,老师准備了1个纸盒纸盒中有40张纸条,只有1张纸条是中奖纸条这样一来,每个学生都有1/40的几率中奖——但是显而易见这个班上有且仅有一名學生能够中奖。一名学生在中奖后余下的所有学生中奖几率都会减少至0。这就是伪真随机和伪随机

加载中,请稍候......

我要回帖

更多关于 真随机和伪随机 的文章

 

随机推荐