伪随机和真随机区别

计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数” 。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数 。计算机只能生成相对的随机数,即伪随机数 。
随机数三个特性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算法可以在保存随机性的同时,减少玩家运气因素对游戏结果的影响 。