4、伪随机置换的原理
伪随机算法
大家好!今天让创意岭的小编来大家介绍下关于伪随机算法的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、『伪随机』伪随机的概念
计算机里的确的确没有“真随机”,因为计算机是由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次必定会出,这就是保底机制。
现在的音乐播放器都有“随机播放”功能,这个功能的实现并不是在你的歌单中随机抽取歌曲播放,而是将你歌单中的歌曲重新打乱排序生成一个新歌单(用户看不到),再顺序播放这个生成的歌单。
所以即使你使用随机播放,当你从固定的歌曲选择“上一首”时,每次都是同一首歌。
二、伪随机和真随机区别
计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。
随机数三个特性
1、随机性:完全乱序;
2、不可推测性:从已有的数,无法推测出下一个数;
3、不可重复性:随机数之间不重复。
真随机数是伴随着物理实验的,比如:抛硬币、掷骰子、电子元件的噪音、核裂变等,它的结果符合三大特性的。
伪随机数
伪随机数是通过一定算法,获得一个随机的值,并不是真的随机。伪随机又分为强伪随机数和弱伪随机数。强伪随机数:更加贴近真随机数,满足特性的。随机性和不可推测性,难以预测。弱伪随机数:满足随机性,可以预测。
三、我的世界 种子是什么意思
我的世界种子(Seed)是一个由一个或多个字符(包括正整数和负整数)组成的一个值,游戏根据这个值创建每一个Minecraft世界。
相关介绍:
种子在不同平台上不兼容,并且同佰一平台上的不同版本之间可能不兼容。
当游戏准备生成一个世界时,游戏会调用一个算法,生成一个伪随机数,这个数决定了世界的样子。但由于伪随机算法的度性质,若算法初始输入的数值(种子)是相同的话,算出的最终结果是相同的。这就是种子的意义:使用相同的种子可以生成出多个相同的世界。
扩展资知料
相关背景:
当世界生成算法更新(通常是加入新的生物群系)后,相同的种子就不会生成相同的地衜形。这就是某些不同的游戏版本中,相同的种子无法产生相同的地形的原因。
一个世界生成后,其种子便已经确定。默认情况下游戏会自动选择种子(使用系统时间)。但玩家也可以手动设置。使用相同的种子可以重复玩相佰同的世界,种子也可以用于与其他玩家分享世界。种子的设置可以用数字(包括负数)、字符等,非纯数字种子会被自动转换成纯数字。
必须注意的是种子其实只度是输入到伪随机算法中的值,而不是世界真正的名字。根据某个种子生成的世界的特征并不注定与种子的字面含义有关。
四、伪随机置换的原理
原理:在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器。
接受拒绝法:假设希望生成的随机数的概率密度函数(PDF)为f,则首先找到一个PDF为g的随机数发生器与常数c,使得f(x)≤cg(x),然后根据接收拒绝算法求解。由于算法平均运算c次才能得到一个希望生成的随机数,因此c的取值必须尽可能小。显然,该算法的缺点是较难确定g与c。
含义
这个函数用来移动内存数据,其中FP_SEG(far pointer to segment)是取temp数组段地址的函数,FP_OFF(far pointer to offset)是取temp数组相对地址的函数,movedata函数的作用是把位于0040:006CH存储单元中的双字放到数组temp的声明的两个存储单元中。这样可以通过temp数组把0040:006CH处的一个16位的数送给RAND_SEED。
以上内容参考:百度百科-伪随机数
以上就是关于伪随机算法相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: