伪随机和真随机区别(是什么决定了运气?游戏中的“真随机”与“伪随机”是什么?)
计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。随机...
伪随机和真随机区别
计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。
随机数三个特性1、随机性:完全乱序;
2、不可推测性:从已有的数,无法推测出下一个数;
3、不可重复性:随机数之间不重复。
真随机数是伴随着物理实验的,比如:抛硬币、掷骰子、电子元件的噪音、核裂变等,它的结果符合三大特性的。
伪随机数伪随机数是通过一定算法,获得一个随机的值,并不是真的随机。伪随机又分为强伪随机数和弱伪随机数。强伪随机数:更加贴近真随机数,满足特性的。随机性和不可推测性,难以预测。弱伪随机数:满足随机性,可以预测。
伪随机和真随机区别
计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。
随机数三个特性
1、随机性:完全乱序;
2、不可推测性:从已有的数,无法推测出下一个数;
3、不可重复性:随机数之间不重复。
真随机数是伴随着物理实验的,比如:抛硬币、掷骰子、电子元件的噪音、核裂变等,它的结果符合三大特性的。
伪随机数伪随机数是通过一定算法,获得一个随机的值,并不是真的随机。伪随机又分为强伪随机数和弱伪随机数。强伪随机数:更加贴近真随机数,满足特性的。随机性和不可推测性,难以预测。弱伪随机数:满足随机性,可以预测。
伪随机和真随机
真伪随机其实分别指的是几率和概率
很久以前流传着这样一则笑话:一个身患重病的人决定去动手术。在手术之前,他问医生:“这起手术的成功率是多少?”医生回答他:“只有1%。”他很惊慌,但是医生说:“没事的,在你之前我已经治死过99个人了。”
这是一则嘲笑那些不懂“概率”的人的笑话,却讲出了“真随机”和“伪随机”之间的区别。
1.随机性:完全紊乱;
2.不可预测性:从现有号码,无法推断下一个数字;
3.不可重复性:随机数之间没有重复。
真随机数是伴随物理实验,例如:掷硬币、掷骰子、电子元件噪声、核裂变等,其结果符合三个特点。
伪随机数是通过某种算法,获取随机值,不是真的很随机。
伪随机数分为强伪随机数和弱伪随机数。
1.强伪随机数:接近真实随机数,令人满意的特性。随机性与不可预测性,不可预知的。
2.弱伪随机数:满足随机性,可预测的。
在游戏当中我们一直提到的“真随机”和“伪随机”,到底是什么意思?
我们通常说的真随机又名“纯随机”(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——这对玩家的游戏体验来说可以说是毁灭性的打击。
设计者们提出了“伪随机”的概念:在不确定性的随机事件当中,通过一系列算法使随机事件均匀分布在多次事件当中,尽可能减少或消除极端情况的发生,以提高玩家的游戏体验。
制造“伪随机”的方法有很多,
N表示当前攻击的次数,P(N)表示当前攻击的暴击率,C为概率增量。如果我们这次攻击产生了暴击,则需要将 N 重置为 1,如果这次攻击没有产生暴击,则 N + 1。
为了便于理解,这里直接给出一个具体例子:
设我们当前玩家角色暴击率还是0.5,那么对于 PRD算法,此时的 C = 0.3
可以看到,使用 PRD 算法,对于攻击是否会暴击这一问题,仍然是存在着随机性即玩家的运气因素的,但即使是运气最差的玩家,仍然也会在第四次攻击时产生暴击,因此PRD算法可以在保存随机性的同时,减少玩家运气因素对游戏结果的影响。
真随机: 有一天,小明在的班级上举办了一次抽奖活动。这个班级有40个学生,所以为了公平起见,保证每个学生都有1/40的几率中奖,老师准备了40个相同的纸盒,每个纸盒中都有40张纸条,有1张纸条是中奖纸条。这样一来,每个学生都有1/40的几率中奖,但每个学生是否中奖并不受其他学生的影响。在极端情况下,这个班上可能40个学生都能中奖。这就是真随机。
伪随机: 小明班上举办了抽奖活动。为了公平起见,老师准备了1个纸盒,纸盒中有40张纸条,只有1张纸条是中奖纸条。这样一来,每个学生都有1/40的几率中奖——但是显而易见,这个班上有且仅有一名学生能够中奖。一名学生在中奖后,余下的所有学生中奖几率都会减少至0。这就是伪随机。
什么是“随机”?教你分清“伪随机”和“真随机”
很久以前流传着这样一则笑话:一个身患重病的人决定去动手术。在手术之前,他问医生:“这起手术的成功率是多少?”医生回答他:“只有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。这就是伪随机。
如何区分伪随机和真随机
现在的计算机还无法产生一个真正的随机数,它能产生的随机数都是伪随机数,在这方面它跟人脑还没法比,但是它有强大的计算功能,可以通过复杂的计算弥补这一缺点。
存在一个基本的随机率m,被的随机率都以m和固有概率共同计算,如网络游戏中攻击力的浮动,装备的精炼。m=f(t)是时间t的函数,t至少精确到0.01秒。t还是一个周期较大的周期函数.
因为计算机是结构,条理非常清晰的数理逻辑.
它所执行的东西都是按照人们编好的程序一步一步来的.
所以这并不是真正的随机.
举个例子来说,你玩过网游吧,一般的游戏里都有本地图内随机传送的技能或物品.
如果真随机的话,你无限次传送可以到达任何一个地方.
但如果伪随机的话,无限次传送之后有些地方仍然是无法到达的。
计算机通过复杂得计算,让大家看起来好像是数据之类的东西是处于随机状态的,但是他还是有一定的规律。
真正的随机,没办法预测下一步。
是什么决定了运气?游戏中的“真随机”与“伪随机”是什么?
随机性之前就要提到两个概念那就是真随机和伪随机。真随机制作起来极其复杂,且成本较高,即我们常见意义上的随机事件,事件发生的概率是独立的例如抛硬币,每次出现1的概率都是1/6,与之前几次抛几次的结果无关,所以很多游戏的设计几乎都是伪随机的,伪随机算法是递增,其实还有一种算法是递减,落空的负面效果和下坡攻击的落空效果现在都采用伪随机触发,同样的概率,但是会有个上限,通常是利用计算机抓取一些数值,然后将这些数值输入至一个复杂算法,每一个事件都是相互独立、服从真随机分布的,不受其他事件的发生而改变。
目前很多游戏中都采用的此类机制(PRD机制),所谓PRD机制,可以简单描述为事件每一次不成功,都会固定增加下一次成功的概率C ,RPD机制使竞技游戏中连续触发或不触发技能的几率降低,避免了运气成分过度干扰战斗结果。
当然不仅仅是在抽卡系统当中如此,在一些竞技性比较强的游戏中,连续数次的走运极大影响游戏的竞技性和观赏性。
真随机的伪随机,就是指在系统内部抓取一个程序员自身无法预料准确值的值,把该值作为种子,放进随机数生成器,由此得到一连串随机数的方法。
在应用层面上,真随机就是指每一次几率判断都是独立的,伪随机则是人为创造出来的一种机制,他需要程序员写下更多的代码,也需要数值设计者做更多的计算。
在真随机中,每一个事件都是相互独立、服从真随机分布的,不受其他事件的发生而改变,在不确定性的随机事件当中,通过一系列算法使随机事件均匀分布在多次事件当中,尽可能减少或消除极端情况的发生,以提高玩家的游戏体验,真随机的定义是指,通过外置的观测设备,观测某个真正随机的事物的状态。
是什么决定了运气?游戏中的“真随机”与“伪随机”是什么?
答:真随机的伪随机,就是指在系统内部抓取一个程序员自身无法预料准确值的值,把该值作为种子,放进随机数生成器,由此得到一连串随机数的方法。在应用层面上,真随机就是指每一次几率判断都是独立的,伪随机则是人为创造出来......详细什么是“随机”?教你分清“伪随机”和“真随机”
答:在设计师们的努力下,“伪随机”应运而生,这里的伪随机就和上文的赝随机数算法(PRNG)意义不同了。 制造“伪随机”的方法有很多,在War3、Dota2这类 游戏 当中普遍使用的是 “伪随机分布”(Pseudo Random Distribution,简称PRD) 处理......详细以上介绍的就是《伪随机和真随机区别(是什么决定了运气?游戏中的“真随机”与“伪随机”是什么?)》的具体内容,希望本篇文章能帮助到你了解更多的学习知识和生活常识。