「伪随机」伪随机码测距原理

2024-09-21 22:22:51 趣味生活 59阅读 回答者:宝百科
最佳答案今天我们来看一下伪随机,以下6个关于伪随机的观点希望能帮助到您找到想要的百科知识。本文目录伪随机是什么意思?『伪随机』伪随机的概念什么是伪随机?什么是伪随机和真随机?什么是伪随机数?什么是“随机”?教

今天我们来看一下伪随机,以下6个关于伪随机的观点希望能帮助到您找到想要的百科知识。

本文目录

  • 伪随机是什么意思?
  • 『伪随机』伪随机的概念
  • 什么是伪随机?
  • 什么是伪随机和真随机?
  • 什么是伪随机数?
  • 什么是“随机”?教你分清“伪随机”和“真随机”
  • 伪随机是什么意思?

    现在的计算机还无法产生一个真正的随机数,它能产生的随机数都是伪随机数,在这方面它跟人脑还没法比,但是它有强大的计算功能,可以通过复杂的计算弥补这一缺点。 存在一个基本的随机率m,被的随机率都以m和固有概率共同计算,如网络游戏中攻击力的浮动,装备的精炼。m=f(t)是时间t的函数,t至少精确到0.01秒。t还是一个周期较大的周期函数.因为计算机是结构,条理非常清晰的数理逻辑. 它所执行的东西都是按照人们编好的程序一步一步来的. 所以这并不是真正的随机.举个例子来说,你玩过网游吧,一般的游戏里都有本地图内随机传送的技能或物品. 如果真随机的话,你无限次传送可以到达任何一个地方. 但如果伪随机的话,无限次传送之后有些地方仍然是无法到达的。 计算机通过复杂得计算,让大家看起来好像是数据之类的东西是处于随机状态的,但是他还是有一定的规律。真正的随机,没办法预测下一步。

    『伪随机』伪随机的概念

    计算机里的确的确没有“真随机”,因为计算机是由0和1组成,不存在不确定的因素。但是程序经常会用到随机的功能,因此出现了“伪随机”,这是相对“真随机”的一个概念。 “真随机”就是我们现实世界中的随机,每次发生都是独立事件,概率不会相互影响。 比如一件事发生的概率是20%,不管是否发生,那么下次再发生的概率依然是20%。 随机数生成器 是一个函数y=f(x),而 随机种子 则是变量x。所以一旦x和f(x)确定了,那么产生的随机数y也就确定。 “伪随机”正是通过,在 随机数生成器 中传入的 随机种子 得到结果产生随机数。之所以为“伪随机”,是因为能够出现的结果以及次序其实已经在 随机数生成器 这个函数中确定了,如果f(x)一定,而程序通过输入x的变化,而产生不同结果,达到随机的效果。 “伪”指的是有规律,而不是“假”。 比如3次输入的x值相同,那么得到的3次结果也将相同。但是如果将当前时间节点(时钟)当做输入x,x则必然不同,则达到了随机的效果。 在游戏中,经常有"暴击率"的游戏设定,但是出现连续暴击而改变战局对于电子竞技游戏来说并不是好事,因此经典游戏war3,dota就对暴击率进行了干涉,首先设定一个暴击率初始值x%,之后进行正常判定,如果未发生暴击,则通过算法,提高x%的值。那么下次暴击率就会提高。如此循环,直到出现暴击,然后重置暴击率为初始x%。 虽然过程并不独立,但平均总体算下来,是符合该角色暴击率的。 在游戏中,经常有抽卡玩法,比如YYS,FGO,王者荣耀等。 假如SSR出率为1%,那么1个玩家抽100次没有SSR的概率是99%,那么100个玩家各抽100次,0.99^100=0.366,将近37%的人没有SSR。这就非常影响游戏体验了,超过1/3的玩家都没有获得强力卡牌。这会导致这部分玩家一气之下卸载游戏甚至在网络上攻击游戏,对游戏厂商非常不利。为了避免这种情况,很多游戏推出了保底机制,比如当你前99次都没有抽到某爆率1%角色时,第100次必定会出,这就是保底机制。 现在的音乐播放器都有“随机播放”功能,这个功能的实现并不是在你的歌单中随机抽取歌曲播放,而是将你歌单中的歌曲重新打乱排序生成一个新歌单(用户看不到),再顺序播放这个生成的歌单。 所以即使你使用随机播放,当你从固定的歌曲选择“上一首”时,每次都是同一首歌。

    什么是伪随机?

    结构可以预先确定,可重复产生和复制,具有某种随机序列随机特性的序列码。伪随机码序列一般可以利用移位寄存器网络产生,该网络由R级串联双态器件移位脉冲产生器和模二加法器组成。该网络可以产生码长为15的伪随机码。在计算机、通信系统中我们采用的随机数、随机码均为伪随机数、伪随机码。所谓“随机码”,就是无论这个码有多长都不会出现循环的现象,而“伪随机码”在码长达到一定程度时会从其第一位开始循环,由于出现的循环长度相当大,例如CDMA采用42的伪随机码,重复的可能性为4.4万亿分之一,所以可以当成随机码使用。 中文名:伪随机码 利用:移位寄存器网络产生 例如:CDMA采用42的伪随机码 特点:结构可预先确定,重复产生和复制

    什么是伪随机和真随机?

    所谓真伪随机其实分别指的是几率和概率。 所谓概率,用Dota里话说,就是出现得并不规律,但是大致上就是这么多次数。比如17%,如果是每2000次为一周期,那么17%意味着,尽管你不确定这340次究竟会什么时候出现,但2000次中必然出现340次,不多一次也不会少一次。貌似这就是伪随机了。概率事件之间相互影响,一旦这一次没有触发,那么下一次触发的概率就会变大。形象而言,概率事件就好比,一个班有50位同学抓阄抽奖,纸条总计50个,其中10个有有奖,40个没奖。可以确定,按理说每个人平均都有20%的中奖可能。一旦第一位同学没有抽到,那么剩下同学平均中奖的可能性就会从20%提高到20.40%,以此类推,如果前10位同学都没有中奖,那么剩下同学中奖概率将提高到平均25%。但是不管谁中谁没中,最后横竖只有20%的人中奖。这就是20%的中奖概率。

    而真随机则是指几率。比如17%的几率,意味着你这次触发特殊事件是17%的可能性,下次也是,每一次都是。如果你这次失败,下次依然保持在17%的可能性。。同样使用上面抽奖的例子,这次把20%概率换成20%的几率,那么就成了这样了:50个同学,每人会得到一个装着50张纸条的盒子,其中有10张有奖,40张不中奖,每人可以抽10张纸条。那么这时候,大家抽奖就是个抽各的,互不影响。你抽中了不会导致别人中或者不中,这就是几率,意味着事件之间毫无联系,说不定50个人总计可以抽到1000张全部奖品,或者50人全部空手而回。虽然同样是20%的可能性,概率是所有事件相互影响,总体可能性保持在20%,而几率是所有事件相互独立,单次可能性保持在20%,但总体中奖分布则在0到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。这就是伪随机。

    今天的百科内容先分享到这里了,读完本文《「伪随机」伪随机码测距原理》之后,是否是您想找的答案呢?想要了解更多百科知识,敬请关注宝百科,您的关注是给小编最大的鼓励。

    声明:宝百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系 9072867@qq.com
    广告位招租
    广告位招租