如何生成这样的伪随机数生成

输入关键字,都是我的提问!
您的举报已经提交成功,我们将尽快处理,谢谢!
总体密度曲线是密度的函数曲线,正态分布曲线是密度的积分,更形象具体。
ln(x)是以e为底的x的对数。ln 1=0
e是科学界非常重要而常见的常数,e=2.……。
对数函数,它是指数函数y=a^x(a&0且...
表,是为简化计算而制作的,计算和查表不一样,往往在于:
1)查错表,
2)查表错误,
大家还关注伪随机的上位和真随机的逆袭 - 文章 - 伯乐在线
& 伪随机的上位和真随机的逆袭
(伯乐在线已征得转载许可,如需再次转载,必须经过作者同意。)
生活中到处都充满了“随机”的概念:抛硬币、抽签、彩票、游戏、歌曲随机播放等等,但事实上有许多所谓的“随机”只是“伪随机”,只是让人感觉起来像是随机。就像我们的眼睛很容易被视觉错觉欺骗,我们关于“随机”的直觉其实也挺不靠谱的。
一、游戏掉宝率和伪随机
二、iTunes的歌曲随机播放
三、抛硬币和教授的“读心术”
四、Benford法则和彩票(有致富信息哦~)
五、”Guardians of the Randomness”——“随机护卫队”
先来说说那些伪随机逼死真随机的故事吧,真是既悲伤又欢乐啊。
一、游戏掉宝率和伪随机:
几乎所有游戏都带有“随机性”,而游戏中最常见也最常被讨论的随机事件就是掉宝,也就是打完怪有一定几率爆出各种不同的宝物。而掉宝就是个很典型的随机事件,一般来说每个怪的掉宝率是固定的,比如一个怪有1/1000的几率掉A物品,1/100的几率掉B物品之类的。一般越稀有越值钱越有用的物品的爆率就越低。
虽说1/这样的爆率看似很简单,但实际上很多人是有认知盲区的。
大家可能都听到过有人这样抱怨:“妈的不是说1/100的掉宝率么,老子都刷了300次了还没掉,骗人的吧!我听说有人总共只打了两次就掉了两次,尼玛不科学啊!” 其实这太科学了。
一些人以为“百分之一的爆率”就意味着我打一百次就差不多该有一次能成功。但其实,打100次爆率为1/100的怪能够至少掉一次宝的概率只有1-(1-0.01)^100=0.634,也就是说36.6%的玩家打100次也没能掉一次。事实上,13.4%的玩家就算打满200次也没结果,4.9%的玩家打满了300次还是悲剧。
而另一方面,玩家们又经常会听说有某个人总共只打了两次,结果两次都掉。这概率有多少呢?如果从个体玩家角度看,这样的概率是1/10000,确实挺小的。但问题是我们“听说”这样的事件发生的概率是针对一个人群而言的,而不是个体。假设你在游戏里认识50个其他玩家朋友,而这50个玩家又各自认识50个玩家朋友,那么你所认识的朋友和朋友的朋友就有2500(假设你50个朋友的圈子没有重叠),而这2500人就构成了你最基本的小道消息网络。那么在你的朋友和朋友的朋友中出现一个“打两次掉两次”的神人的概率是多少呢?是0.222,也就是有超过20%的概率你的一级和二级朋友圈会出现一个1/10000的小概率事件。
如果这个游戏总共有10万玩家,那么就有99.995%的概率会出现至少一个“打两次掉两次”,9.5%概率出现至少一个“打三次掉三次”,而同时,如果每个玩家都打满1000次,那仍然会有64.9%的概率出现一个就算打满1000次也还是悲剧的衰神。总之,一个对于个体的小概率事件在人群中出现的概率往往是很大的。比如知乎去年的世界杯竞猜,好像有人连续十几场猜中,然后大家纷纷膜拜“大神”。我不知道那位用户究竟是靠运气还是实力,但其实就算是一群猴子在猜,只要基数大到一定程度,也是很有可能会出现一个“神猴”的。
虽然这些事背后的原理其实还挺简单的,但偏偏很多玩家无法理解或懒得理解,于是游戏设计者们就整天被一群愤怒的、嫉妒的、坚信“游戏不公平、不科学”的玩家骚扰、差评、威胁。所以许多游戏的掉宝原理的设计到最后都被迫妥协,并不是真随机,而是某种伪随机,人为削弱某些小概率事件的可能,给玩家们营造一种“随机”的感觉。然后之前那些愤怒的玩家们纷纷表示:“这不就行了吗?这才叫真的随机好吧。设计这游戏的简直数死早,还要我们玩家来帮忙。”
伪随机逼死真随机,玩家逼死游戏设计,就是这个意思。
更多关于游戏中的伪随机,请看 的
二、iTunes的歌曲随机播放:
躺枪的不只是游戏,还有苹果。最开始iTunes上“随机播放下一首”的功能用的是真随机,随到哪一首就放哪一首呗。但这想法实在是太年轻了…
苹果很快就收到了大量的投诉,说“我明明用的是随机播放,怎么会连续播放两首一样的呢?!你这随机功能肯定是坏的!差评!” …“我放了4首歌,结果出现了两首歌交替出现,ABAB这样,非常有规律,苹果你耍我呢?!”
唉,真可谓“概率不学好,生活多烦恼”…跟上面游戏的例子相似,这类事件其实完全有可能,而且概率并不小。
如果歌曲列表里有20首歌,那么听完一首歌后马上又随机到同一首的概率其实就是1/20,也就是说你听2小时歌(假设每首平均5分钟),那么至少出现一次连续两首相同的概率是0.708,至少出现一次ABAB的概率是0.058,都还挺高的。这还只是听2小时而已,如果听2000小时,那么出现ABABAB的概率也高达0.139
听说苹果当时还专门发表了一个声明,解释出现这种现象的原因,表示这不是随机播放功能出了问题。但这想得实在太简单了…
最后苹果还是用了伪随机,禁止连续随机到同样的歌,甚至禁止出现一些诸如ABAB,ABCABC之类的常见序列。
不得不通过把“随机”变得不“随机”来让用户觉得这“随机”很“随机”。人脑的认知真是很呵呵啊…
三、抛硬币和教授的“读心术”:
听说有个概率论教授有一次把班上的学生分成两组,其中一组抛一个硬币100次,然后如实记录每一次的结果。另一组,教授不许抛硬币,而是让他们编出100个“尽可能随机”的抛硬币结果。实验过程中教授会走出教室,两组学生不能够互相交流。然后教授告诉大家,他到时只需要看到两组结果就能猜出哪一组结果来自真实的抛硬币,而哪一组是编出来的。学生自然不相信,不都是随机序列么,怎么可能看出区别?教授这是欺负我们智商?于是第二组的熊孩子就干劲十足地开始编,想把结果弄得看起来非常随机,从而混淆教授。下面是最后的两组结果,大家先猜猜哪一组是编的?(我这里直接借用了 在里的例子 )
tthhhhhtthhhhtthhthhhtthhhhttththhhtthhhhhhtthhhhh
htthhthhhthhhhthhththtttththtthhtthhhhhttthhththtt
tthhhhhtthhhhtthhthhhtthhhhttththhhtthhhhhhtthhhhhhtthhthhhthhhhthhththtttththtthhtthhhhhttthhththtt
hthtthhtthtthhhthtthtttththhthhththhhhthhtthtththh
hthhhthtththhhthttththhthhhthththhhhthhthttththhth
hthtthhtthtthhhthtthtttththhthhththhhhthhtthtththhhthhhthtththhhthttththhthhhthththhhhthhthttththhth
教授一眼就看出了正确答案:第二组是编的,第一组是真实的。为什么呢?因为第一组出现了连续6个相同的结果,而第二组的看起来更“杂”更“乱”一些。第二组学生的直觉告诉他们,“随机就是乱、没规律”,于是他们肯定不敢编出有连续五个六个相同结果的序列,因为这看起来“太有规律”了,“不够随机”,“看着太假”。但事实上(根据 的计算),抛100次硬币,至少出现一次连续6个相同结果的概率超过80%,至少出现一次连续5个相同结果的概率超过90%. 所以熊孩子们想把序列弄得“尽可能随机”的心理恰好中了教授的圈套,他们直觉上越“随机”的序列往往反而不是那么“随机”。于是教授成功带领真随机逆袭啦~
这其实跟之前的歌曲随机播放例子里的逻辑很像,只不过教授是反向利用了这种认知模式和错误直觉。抛6次硬币出现6次相同结果的概率很小,但抛100次出现这样情况的概率就很高了。
其实类似的错误直觉在各种牌类游戏和赌博中也很常见。许多大家平时总结出来的“规律”,一些牌桌上的顺口溜,都不一定准确。
还是拿抛硬币举个例子,比如你和小伙伴赌抛硬币,假设已知这个硬币是公平的。之前已经连续抛出10个正面,那么接下来一次还是正面的概率是多少?有些人会想“连续11个正面的概率也太小了吧,下一个总应该是反面了吧?”这种思维模式确实有迷惑性,但只要硬币是公平的,只要每次抛硬币是独立事件,那么不管之前出现了多少次连续正面,下一次还是正面的概率还是50%. 这种心理很容易在赌徒身上出现:我今晚连输30把了,一晚上全输的概率也太小了吧,我接下来肯定要开始赢了!…
相关的讨论有很多,比如
更多关于牌桌上的错觉,请看 的
四、Benford法则和彩票:
我要是说“买彩票是有技巧的”,大家肯定会说我民科。不过用真随机数买彩票,虽然不能帮你提高彩票中奖的概率,但也许能帮你提高中奖的奖金数额。听我慢慢解释:
彩票的中奖概率是无法通过“技巧”或“研究”改变的,这点很多人都解释过了:
但是大多数人都忽略了彩票中奖金额这一维度。对于许多彩票,中同一个号码的人越多,分奖金的人也越多,而每个人分到的奖金也就越少。另一方面,虽然中奖号码的产生本身是真随机,但人们买的号码往往不是随机的。如果把所有人买的号码放在一起做统计,那么0-9这些数字出现的频率会有很大的差异,有些数字被买的次数会明显高于其他一些数字。也就是说,当那些出现频率较高的数字真的出现在中奖号码中时,中奖人数就会比较多,每个人分到的金额就少。这主要有两方面原因。
首先,人们对数字有各种迷信,一般中国人会更喜欢6和8这些数字,而避开4,如果在一些西方国家,人们喜欢7,忌讳13。而买彩票时一些人也会想要一些带6和8的号码来“讨彩头”,但结果这些“幸运号码”反而让他们的收益期望值降低。这就跟出生年份的分布有点相似。大家应该都听说过龙年虎年出生的小孩特别多,而什么鸡年狗年出生的孩子相对少一些。“龙宝宝”、“虎宝宝”听着吉利,但等到小孩要升学、高考、考研、就业时面临的竞争对手也就多了,到这时候不管是再好听的“龙”还是“虎”都没半点用了。
其次,许多人都会用一些“有意义”的数字买彩票,而最常见的就是日期,比如生日、纪念日等等。而这些日期中包含的数字是绝对不随机的,而且是高度可预测的。这里就要提到了。Benford法则粗糙地说就是,在现实中的10进制数据中,以1为首位数字的数的出现频率最高,9最低,中间的数字依次递减。而且这种差异非常明显:
我自己对日期中出现的数字频率进行了统计。严格来说不是Benford法则,但原理应该很相似。在01.02,12.25 这样形式的日期中:
其中0,1,2三个数字竟然占到了66.9%,也就是如果大家都用日期买彩票,那么0,1,2三个数字被买的次数会超过剩下的7个数字总和的两倍还多。这种不随机的程度还真是挺夸张的。
所以,我猜在中国人买的彩票里,0,1,2出现次数最多,3,6,8其次,而4有可能是最少的。所以如果想要避开其他彩民的竞争,应该尽量避免0,1,2之类的数字,然后产生真随机数,这样也许可以最大化收益。于是,真随机似乎又逆袭咯~
这里有三个声明:
1. 以上只能算是一点理论,还需要真实数据验证,所以买彩票亏了别找我哦…
2. 当然按我的方法买彩票赚了的话可要千万记得我哦~
3. 其实就算用这种方法,买任何彩票的期望收益率仍然是负的,所以大家随便玩玩就好。
更多关于Benford法则的介绍请看 的
五、”Guardians of the Randomness”——“随机护卫队”:
The generation of random numbers is too important to be left to chance.
Random numbers should not be generated with a method chosen at random.
就像“银河护卫队”一样,这是一群有点逗逼又有点牛逼的人,他们默默地守卫着:嗯,“随机”。小标题里的名字是我给他们取的,他们的真名叫,也就是他们的网址。这其实是一个很正规的组织,是由爱尔兰都柏林三一学院计算机科学和统计学院的博士于1988年创建的,现在已经升级为有限公司了,曾被各大媒体报道过,甚至还被十几篇顶级期刊发表的论文引用过,至今它累计已经提供了超过19万亿次随机生成相关服务了。
旨在提供最优质最科学最随机的随机数生成及衍生服务。他们提供的免费服务包括:随机数、数组、字符、序列生成,随机正态分布生成,机选彩票,抛硬币,掷色子,洗牌器,随机打乱顺序,随机生成时间、日期、密码、地理坐标、DNA序列、纯净白噪音等等,从娱乐到学术都有。当然他们还有付费服务:第三方认证的抽签,为非常重要的抽签提供最高纯度的随机性。
很多人会问:生成个随机数还有好坏优劣之分?严格来讲的确有。
我们的各种电子设备需要生成许多随机数,但绝大多数的这些随机数生成都是“伪随机数生成”(PRNG),而是世界上少数几个提供“真随机数生成”(TRNG)的机构。“伪随机数生成”是运用一套算法,将一个初始数值/序列等转化为看似非常随机没有规则的结果。对于99.9%的应用而言,这些“伪随机数”其实也完全没问题,但对于一些科学研究、一些专业博彩机构、一些涉及加密和信息安全的应用,“伪随机数”从理论上讲是决定性的,可预测的,周期性的,这也就会带来各种隐患,因为如果知道了初始值,知道了具体算法,就有理论上的可能还原出完全一样的“随机数”。而各类“真随机数生成”一般会使用一些无法预测和控制的自然现象来生成随机数:元素的某些随机衰变现象、环境噪音等。这些方法背后的理论基础就跟量子理论和混沌理论有关了。使用的就是环境噪音。当然,“真随机数生成”的效率是远低于“伪随机数生成”的,这也是为什么对每个IP每天免费生成的随机数是有限制的,大约是122kb左右。
甚至还有针对黑客和恐怖袭击的应对措施…他们的设备分布在多个大洲的多个国家的隐秘地点,所以黑客或恐怖分子必须在所有地点同时用特殊仪器发起攻击才行。但即使是这样,还有对应的内部监测和防御机制,简直酷炫,对得起“随机护卫队”的称号。不过不知为啥读到他们这段说明时总有种浓浓的中二感……
关于“真随机数”的科普和“真随机数”的重要性,请看 和
大家还可以在这里看看各个领域的用户们是如何创造性地使用的:,除了之前提到的比较正经的,还有用来艺术创作的,用来制作白噪音提高睡眠质量的,用来提升夫妻生活质量的,用来拯救选择障碍症晚期患者的,还有跟中国的《易经》一起用来算命的…总之深受又认真又geeky的神经病的欢迎。
我最初知道这个网站是通过我们系管电脑的大叔。他这人完全就是个活生生的computer geek的刻板印象。有一次我们系开会讨论个事,中途需要决定一个日期/数字(记不清了,反正不重要),于是大家说:那我们就随机选一个吧。听到“随机”这个词,本来在思考人生的大叔突然被激活了,特别严肃地对大家说:“等等”。我们还以为他要发表什么重要观点,结果只见他打开电脑,登上,生成了一个符合要求的随机结果,然后在全场的注目礼中继续思考人生,like a boss……从此大家在他面前不太敢用“随机”这个词了…
总之,是一群认真、执着、洁癖但又有些可爱的人二十多年来共同努力的结果。希望大家优雅地使用。
我们生活中充满了跟“随机”相关的事物。有时伪随机逼死真随机,有时真随机又能逆袭,有时伪随机更实用,有时真随机能致富。这事儿还真是“随机”呢~
————————————————————————————————————
大家有兴趣还可以看一下 这个回答:,跟我的文章的第一第二部分也有些关系。本来我也想写的,但刚好看到了这篇,觉得写得蛮好的~
我偶尔还会继续写一些跟概率、统计有关的科普猎奇小文章,下一篇应该叫《廉价的巧合》。有兴趣的话可以关注一下专栏~
可能感兴趣的话题
抛硬币单次来看的概率是0.5,而且也不管前面到底出现了多少次,但是如果前面已经出现了100次,单次来看还是0.5的概率,可是还没有会一直出同一面而不出另一面的情况发生
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2017 伯乐在线TA的推荐TA的最新馆藏[转]&电脑随机数是如何生成的?
不论是维持着你余额宝安全的加密过程还是你在玩《战地4》,电脑都会产生随机数。目前有两类随机数——“真”随机数和伪随机数——两者的区别关乎加密系统的安全度。
对于随机数的讨论日渐升温,许多人怀疑英特尔内置于各种硬件内的随机数生成芯片是不是靠得住。要理解为什么这种随机数不太可靠,你必须理解随机数的生成原理。
随机数的作用
随机数的使用历史已经有数千年。无论是抛硬币还是摇色子,目的是让随机概率决定结果。电脑中的随机数生成器的目的也是如此——生成随机不可预测的结果。
加密法要求数字不能被攻击者猜到,不能多次使用同样的数字。所以需要一种机制产生攻击者无法预测的数字,这些随机数对加密法至关重要,无论你是加密文件还是访问https协议网站,都需要用到随机数。
如果电脑是靠代码生成随机数,是不是意味着随机数可以被预测?
根据随机数的生成原理,我们把电脑随机数分为两类:“真”随机数和伪随机数。
要生成一个“真”随机数,电脑会检测电脑外部发生的某种物理现象。比如说,电脑可以测量某个原子的放射性衰变。根据量子理论,原子衰变是随机而不可测的,所以这就是宇宙中的“纯粹”随机性。攻击者永远无法预测原子衰变的发生时间,也就不可能猜出随机值。
举个更实际的例子,电脑会根据环境中的噪音或者采取你敲击键盘的精确时间作为随机数据或熵的生成依据。举个例子,你的电脑监测到你某天下午2点以后敲击键盘的精确时间是0.秒,有足够的这些特定长数字你就能得到一个熵源,也就可以生成“真”随机数。由于人不是机器,所以攻击者无法掌握你的敲击时间。Linux中的/dev/随机设备生成随机数,“阻拦”访问直到熵积累量足够才返回一个真随机数。
伪随机数这个概念是相对于“真”随机数而言。电脑通过发送种子数值,运用算法产生某个看起来像随机数的数字,但是实际上这个数字是可以预测的。因为电脑没有从环境中收集到任何随机信息。
虽然是伪随机数,但是并不是所有领域都不需要伪随机数。比如,如果你在玩电子游戏,那么游戏过程中是靠伪随机数还是真随机数并不重要。另一方面,如果你的应用正在加密,情况就不同了,因为你不希望攻击者能够猜到你的随机数。
举个例子,如果攻击者掌握了某随机数生成器使用的种子数值和加密算法,如果随机数生成器完全依靠种子数值和加密算法生成密文,这个过程中不添加任何额外随机性,如果攻击者掌握的情报足够多,他们可以逆推来确定加密算法一定会用到的伪随机数,也就能破译密文。
NSA和Intel的硬件随机数生成器
为了帮助程序开发者更简单的生成随机数,也为了帮助生成安全的随机数,Intel的芯片组中包括一个硬件随机数生成器,名叫RdRand,这块芯片利用处理器的熵源向软件提供随机数。
问题是这个随机数生成器是个黑盒,我们不清楚里面的工作原理。如果RdRand藏有NSA的后门,那么政府就可以破译依靠随机数生成器提供的唯一数据产生的密钥。
这个问题非常严重。在2013年12月,FreeBSD的开发者们取消了对直接采用RdRand作为随机数源的支持,理由是无法信任Intel。RdRand设备的输出结果会用另一套加密算法增加额外熵,确保随机数服务器中即便有后门程序也不会产生影响。Linux已经这么做了,在RdRand的随机数基础上再次进行随机处理,以确保后门程序不可能从中作祟。Intel总裁Brian Krzanich在Reddit上没有直接回答关于是否装有后门的问题。
当然这不是Intel一家的问题,FreeBSD的开发者们也点了Via芯片的名。从这场争论中我们可以看出为什么不可预测的真随机数如此重要。
而随机数生成器生成“真”随机数只需要搜集熵或者从真实世界搜集看似随机的数据。对于某些不需要真正随机的应用,随机生成器可能会通过算法和种子数值算出随机数。
给这篇稿打赏,让译者更有动力
支付宝打赏 [x]
您的大名:
打赏金额:
23:16:11 :
23:22:25 :
10:40:27 :
23:39:46 :
09:40:08 :
15:16:49 :
叫姐姐姐姐
23:13:57 :【6V?闪?解密!】随机数是怎样产生一个蛋位的_口袋妖怪吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:592,778贴子:
【6V?闪?解密!】随机数是怎样产生一个蛋位的
申明1:请尊重版权,作者:夜空飞龙,未经许可,禁止转载,谢谢;申明2:全文7000+字,建议只看楼主,或者直奔第七章总结,另外【请慎入】;申明3:本人非黑客,不敢保证所写100%正确,但是在目前环境下,我的总结不会有错。申明4:本文首发帖子地址:。申明5:楼主发了一些总结或技术贴,还没有被精过的,本帖继续申精。另外有关孵蛋概率问题,请见楼主上一篇帖子:正题开始,一楼放上镇楼图。图片来自:
楼楼机子才买两个礼拜 ...
当初我说蛋拐二可能靠解...
客官进来看看再走不迟 ...
图1为派送区 均为母系5v...
刚刚小吧让我整理一下,...
梦特呆呆兽,梦特盾菇,...
2017看中超 牛魔王购票有保障!
为了快速孵出极品的宝宝,5V对项、6V、不浪费闪光蛋位,蛋位法成为了很多人的选择。但是你是否真正了解蛋位?随机数是怎样产生一个蛋位的?今天就让我来带领大家对蛋位进行一次解密。全文目录:一、游戏中的随机数二、蛋位的产生三、蛋位信息四、产生过程及判定顺
4.0十六进制
4.3个体及个体遗传项
4.4闪光判定
4.6为什么会丢闪
4.7遗传技能五、道具种类及影响
5.1指针类道具
5.2乱数类道具
5.3指针乱数类道具
5.4楼主关于蛋位信息的判定顺序是怎样得到六、蛋位记录本及蛋闪小七、终极总结(适合懒人,一看就明白)
引言为了快速孵出极品的宝宝,5V对项、6V、不浪费闪光蛋位,蛋位法成为了很多人的选择。但是你是否真正了解蛋位?随机数是怎样产生一个蛋位的?今天就让我来带领大家对蛋位进行一次解密0.5利用蛋位超快速出高V的PM这里楼主插入一个章节0.5,是想说一些楼主在去年12月刚通关后,是如何在短短一周之内出3箱子不同的成品的。该法适合刚通关进入蛋坑的玩家。先加若干FC好友,上线后开启后花园,带上复制特性,队首濒死的魅惑身躯PM,去后花园抓母梦特,至少两V,然后找紫毛鉴定,用6个标记把V标记出来,存箱子。把后花园该抓的都抓了差不多能有三箱子左右吧。然后进行蛋位法,比如出现一个防御特攻遗传母方的,那么就去电脑里的箱子搜索标记,查找对应的PM。这样速度就会很快了。个人当时的一点算不上什么的小技巧,这里简单的分享一下。
一、游戏中的随机数首先我并非专门做编程的,只能算是会编程,所以很多地方用语可能并不准确,本文采用大众易懂的话语来说明。无论哪一款,其中众多复杂的随机事件都是由乱数(随机数)来决定的拿口袋妖怪来讲,技能的命中、造成伤害的波动、草坪中遇敌的种类、每日事件要求提供的PM属性等,都属于随机事件的,当然生蛋也是。这些随机数的产生,或多或少都是和进行的和相对来决定的前几代中,通过乱数来刷闪刷6V的帖子百度一下就能找到很多,本文并不涉及。也就是说,中会存在这一个无穷项的无规律的数列,每当有事件判定时,就会消耗其中的一个或几个随机数,然后数列向前滚动这里对随机数做一个简短的说明,为的是让大家对蛋位的产生,有一个大体上的认识。
二、蛋位的产生每个蛋位都是由若干随机数组成的,这些随机数决定了小宝宝的性别、性格、遗传等信息那么蛋位是何时产生的呢?每当前一个蛋位出蛋时,下一个蛋位就已经固定了。形象点说,就是你在7番道路上跑啊跑,某一个时刻,出蛋了,那么这个蛋的下一个蛋的随机数组就已经产生了。也就是说,当一个蛋尚未出来的时候,一切随机事件(存档啦、骑车啦、遇敌对战啦等等)都会影响下个蛋位所以在蛋位法中,存档的时间点是在出蛋还蛋/出蛋取蛋之后,也是这个原因。
三、蛋位信息蛋位包含了哪些信息呢?为了说明不同父母放入饲育屋后产生子代的变化,我们有必要把蛋位包含的信息搞清楚这些信息有(本节不分先后):性别、子代种类、球、性格、遗传技能、特性、个体、个体遗传项、闪光判定、道具影响。其中并非所有信息都要消耗随机数,有些信息是在指针的作用下产生的,比如球、子代种类。而有些信息要靠消耗随机数来判定。大家最关心的性格、个体以及特性,尤其是闪光,在随机数的先后作用下逐一产生,注意“逐一”这个词。
好评如潮,顺便不怕下一个闪难产?
网易超人气网游-「梦幻西游」电脑版,开春新服「万紫千红」2月24日火爆开启中!百元限量瑞兽礼包大放送,千元神兽等你抽!要玩就玩,「梦幻西游」电脑版!
四、产生过程及判定顺序首先说球,这个直接遗传母方的没什么可说的,不消耗乱数,单性别公和无性别都是红白球。再说子代种类,除了个别雌雄差异之外,子代种类也是不消耗乱数的,各种香炉只是将子代指针到对应的PM处,不消耗乱数。除了这两项,其余的信息则按照:性别、性格、特性、个体、个体遗传项、闪光判定这个顺序来逐一判定!为了方便说明一些特殊的问题,楼主本节将按照性格、特性、个体、个体遗传项、闪光判定、性别来说明整个判定过程4.0十六进制简单说一下,本节会用到大量的十六进制的相关内容,学过的吧友自然一看就明白,如果没学过的,就看一下每段之后的总结部分就可以了~~
4.1性格游戏中存在的性格一共有25种,加某一项能力的每种4个以及5个不加不减的。性格是由两位随机数决定的,其中加某一项能力的性格每个占据10个数值范围,而5个不加不减的性格每个占据11个数值范围(因为根据楼主的数据,每一个不加不减性格出现的概率要稍稍高于加某一项能力的概率,故认为其所占的数值范围稍大)。虽然不能完全确定某种性格具体的数值范围区间在哪,但是可以肯定的是00~09,0A~13,14~1D,1E~27(这四个每个分别占用10个数),28~32(这个占用11个数),5个性格一组,之后类似,也就是说00(0)~FF(255)这个区间内分布了25种性格,比如某个蛋位固定后性格判定值是2A(十进制的42),那么它就落在了性格28~32(十进制40~50)的范围内,则该区间所代表的的性格就是这个蛋孵出来的PM的性格!总结:性格是由两位随机数决定的。
你又透露天机@( ̄- ̄)@不怕下一闪千箱未果吗
4.2特性众所周知,本作遗传特性的大致规律,但是完全系统研究的还没有。楼主经过记录3000+个蛋位之后统计出来,大致是如下结果:父方6V小火龙,母方60梦特,梦特1596只,普特932只;6V百变怪,60梦特海星星,梦特307只,普特发光94只,普特自然恢复99只。结合众多流水发孵闪的吧友的数据来看,可以看出,本作的特性遗传系统是62.5%(10/16)遗传母方(和平时吧友认为的60%差不多),剩下的37.5%(6/16)里,一半的概率是普特1,另一半概率是普特2。如果一只PM只有一个普特,那么母方梦特的情况下,自然就是梦特62.5%,普特37.5%;如果母方是你想要的普特,那么子代也是该普特的概率高达81.25%(13/16)!(顺便一提,网站资料上的普特顺序就是按照1、2排序的,如果母方梦特生出来一只PM鉴定为普特1,那么换另外一只PM,你就可以根据雪拉比网站上的资料预先判断出其特性了。所以,决定特性的是一位随机数,0~2普特1、3~5普特2、6~F遗传母方特性(当然也有可能反过来:0~9遗传母方特性、A~C普特1、D~F普特2,不过这些并不影响,我们关心的只是概率的大小)。而且通过百变和海星的例子可以看出,对无性别也是适用的。如果遇到公和百变的情况,则百变怪的作用相当于:化身为和公PM相同特性、红白球的PM,作为母方。这也就解释了为何无性别遗传不了球。百变怪除了和母PM结合中充当父亲的角色,其余情况都是扮演母亲的角色!总结:62.5%(10/16)遗传母方特性,18.75(3/16)普特1,18.75(3/16)普特2。消耗一位随机数。
4.3个体及个体遗传项红线和不变石等道具本节不涉及,将在道具影响里说明。判定个体的随机数是两位随机数,但不同于之前的两位组成一个数,而是两个数的和。有关个体的信息是这样判定的:首先,一串随机数组决定6项个体,共12位。然后进行遗传3项父母的判定。先判定遗传HABCDS中的哪3项,然后再分别判定一项是遗传父方还是母方的。判定遗传哪三项(共20种可能,但是这20究竟是怎样分配256的区间的,楼主根据数据实在是分析不出来)需要两位随机数,而判定遗传父母共需要消耗3个随机数。然后遗传父母的这三项个体以指针的方式覆盖掉之前由随机数对应产生的个体。所以共消耗了17个随机数。鉴于文字看起来比较麻烦,这里楼主举个例子:某次生蛋,父亲个体6V,母亲个体60,一串17位的随机数组:327A8BF660D0E52,来决定个体,它是怎样进行的呢?前12位,说明了个体为32、7A、8B、、F6、60,对每个求和,即HP、物攻、物防、特攻、特防、速度6围分别为:5、17、19、21、21、6(注:有可能速度是排在物防之后的,这点没法细究,但影响不大)。然后进行父母遗传判定,D0即208(这里我们不知道究竟判定区间是怎样的,就假设是确定要遗传父母的HP、物攻、速度3项吧),然后再判定遗传父亲还是母亲的,E、5、2即14、5、2,如果0~7遗传父方,8~F遗传母方,则表示HP遗传母亲的,物攻速度是遗传父亲的,覆盖掉原个体。则最终子代的个体值为0、31、19、21、21、31。为什么说是先产生6个个体值再进行父母遗传覆盖呢?这是因为楼主做过实验:不带红线,生出子代去鉴定得到一套个体值“父母abc母”,然后带红线得到“父母父母x母”,发现这里x和c值相同,然后再用特防狗圈,强制改变遗传规律,得到了“父母y母母母”,结果发现这里的y值和a值也相同!所以是先产生6个个体值,再进行遗传判定,而不是直接判定,那样遗传父母的个体就不额外消耗随机数了。这一点在对闪光判定时有重要意义。总结:12位随机数按顺序两两求和生成6围,2位随机数判定遗传父母的哪些项,3个随机数判定遗传父亲还是母亲的,共消耗17个随机数。
4.4闪光判定通过早期的闪值风波,我们可以得知,隐藏的里ID即闪值一共有从共4096个数值,每个人固定拥有一个闪值,所以出闪率为1/4096。所以单次的闪光判定是由3位随机数决定的,000~FFF孵化时,若产生蛋位时的闪光判定的随机数和你的闪值相同时,则该子代为闪,否则不闪。注意是孵化时,和当时的玩家闪值相同即可,这也就说明了当时闪值出现时,大家去找某个特定闪值的玩家帮忙孵化的原因。异国孵蛋,则闪光判定提高到6次,也就是一共18位的随机数每三个一组来进行判定,只要其中至少有一组和闪值对应,则子代为闪。比如某人闪值为3012,化为16进制为BC4,异国判定的随机数组为A0BC4721,我们把它化为3个一组即为:A09、235、CC0、F82、BC4、721,其中第五次判定恰好和闪值相同,则子代为闪;但是如果随机数组为0BC4721B,和刚才比只不过少了开头的A多了末尾的B,但是化为3个一组则变为:092、35C、C0F、82B、C47、21B,可见BC4被拆开了,这6次判定中不再存在BC4,所以子代不闪。这一点相当重要,后面4.6节还会提及总结:闪光率和闪值存在的总数对应,为1/4096;异国6次判定,每次消耗3位随机数,共消耗18个随机数。
4.5性别有性别PM的性别是由一位随机数决定的,即16进制下的0~F(ABCDEF)。我们常见的几种性别比例1:1、3:1、7:1,都是16进制下的比例。1:1表示0~7是公,8~F是母(注:也可能是反过来的,但这并不影响);3:1表示0~B是公,C~F是母(或者反过来);7:1表示0~D是公,EF是母(或者0~1是母,其余公,这些都不影响)也就是说,当一个蛋位决定后,它的判定性别的随机数就固定了,比如固定为C(十进制12),则利用蛋位法的鲤鱼王出来的是母的,换成民工依旧是母的,不过要是换成御三家之类的就变成公的了。无性别和单性别则要特殊一些,他们不进行性别的判定!也就是说,他们不消耗这个随机数,于是上面举例中的C数值就参与到了下一项蛋位信息的判定了!而判定性格之后要进行的判定是性格,所以当原本判定性别的随机数没有被消耗,而是进入到对性格的判定中,那么相当于整个随机数列向后移动,则后面的所有参数都要发生改变!甚至影响出闪光!这就是为什么同一个蛋位,有性别和无性别生出来的PM在性格个体等方面是不一样的。下一小节中将详细说明。总结:有性别PM性别判定需要消耗一位随机数,单性别和无性别的不消耗随机数。
太长**我只是进来混经验的
4.6为什么会丢闪?上一节中,我们已经看到,随机数列的判定消耗与否,会影响到整个随机数组队蛋位进行判定。当判定的随机数变化了,那么决定的信息也就随之变化。我们这里举个例子来说明。(前提是,楼主只能想到我已经列出来的这些蛋位信息,当然,中复杂的判定过程很可能掺杂着其他消耗随机数的东西,我不是制作游戏的,没法面面俱到,所以这里暂时忽略其他因素的影响,原理是这个原理,只是细节上可能会有所变动。希望大家理解。)假设我们的闪值为3012(BC4),父母分别为6V百变和60梦特海星星,异国均无携带道具,存入结合。有一串随机数组如下:E2A327A8BF660D0E52A0BC4721B…那么我们根据第四章所讲解的来进行相关判定。1、海星星无性别,性别不消耗随机数;2、性格消耗两位随机数:E2;3、特性消耗一位随机数:A;4、个体及个体遗传消耗12+5共17个随机数:32、7A、8B、、F6、60+D0E52;5、异国闪光判定消耗18个随机数:A09、235、CC0、F82、BC4、721。所以上面那一串随机数组被分解为【E2】、【A】、【32、7A、8B、、F6、60、D0E52】、【A09、235、CC0、F82、BC4、721】、B那么本次孵出来的子代海星星的信息就是:性格:E2(假设设定E2(226)指针到性格开朗,我是根据性格表排序猜的),开朗;特性:A=10,为遗传亲本的范围,故梦特分析;个体:0、31、19、21、21、31(详情见4.3的例子);闪光:6次判定有BC4,为闪光即开朗性格,物攻速度V,HP为0的闪光分析海星星,我们如是说。
由于是蛋位法,我们想换一下亲本会不会还是闪呢?生出来的子代会变成什么样子呢OK,首先我们把海星星换成和百变怪同国籍,则其余不变,但是闪光判定只判定一次,即A09≠BC4,说明子代其余不变,但是不是闪光了(异国对闪光的影响)同一个蛋位,我们把海星星换成60梦特,同样不携带道具,和百变异国。此时相关判定变更如下。1、有性别,消耗一位随机数:E;2、性格消耗两位随机数:2A;3、特性消耗一位随机数:3;4、个体及个体遗传消耗12+5共17个随机数:27、A8、BC、9F、66、0D+0E52A;5、异国闪光判定消耗18个随机数:092、35C、C0F、82B、C47、21B所以上面那一串随机数组被分解为【E】、【2A】、【3】、【27、A8、BC、9F、66、0D、0E52A】、【092、35C、C0F、82B、C47、21B】…那么本次孵出来的子代大凶残的信息就是:性别:E,十进制的14,为母的;性格:2A(假设游戏设定2A(42)指针到性格勇敢,我是根据性格表排序猜的),勇敢;特性:3,为普特2,由于只有一个普特,故为威吓;个体:遗传方式也改了,变为遗传xx父父x母,即个体为9、18、31、31、12、0;闪光:6次判定无BC4,不闪光。即勇敢性格,防御特攻V,速度为0的非闪光威吓,我们如是说。
这下大家应该明白为什么有性别和无性别在利用蛋位法得到的子代会有如此大的差别了吧,而且有性别的蛋位闪,在换成无性别父母时,很大概率不会再闪。注意“很大概率”,但并不是绝对的,因为如果判定闪光的随机数组为BC409E4BC413D02988C,那么有性别无性别的两次判定分别为BC4、09E、4BC、413、D02、988,和C40、9E4、BC4、13D、029、88C,我们可以看到,两次判定里都有BC4,所以是都会闪的,不过这种几率比较小罢了这就是为什么有的吧友通过有性别鉴定出来的闪蛋位,换做无性别依旧会闪的原因。RP不错。
4.7遗传技能有关这一点楼主其实自己一直没搞清楚,曾经还以为父母同时掌握多个可遗传的技能时会消耗乱数来判定子代遗传哪些项,但是后来看到班大发了一个贴子专门讲遗传技能的,我才恍然大悟,我还是太年轻了,所以大家可以参考班大的帖子
技术贴帮顶
五、道具种类及影响说到孵蛋,怎能不提红线和不变石呢?没错,本节恰恰就要通过这两个孵蛋利器,来打开不同道具对子代各项信息的影响的探索大门。5.1指针类道具游戏里,我们已经知道,不变石可以强制子代遗传携带方的性格,但是和个体一样,这并不意味着不消耗对性格进行判定的随机数,消耗,只不过被不变石强制改变了。我们可以看到,这种强制的改变,相当于一种指针作用,把某个位置的随机数得到的结果,强制指定为另一个结果,并不产生多余的随机数消耗,楼主把这种作用的道具称为指针类道具。指针类道具,不会影响其他的判定,因为他不产生多余的随机数消耗!也就是说,不会改变闪蛋位!这也是楼主3000+蛋位记录中2个闪蛋位实验得到的结果:楼主的蛋位法是只有一方带红线的,另一方不带道具,这样得到子代鉴定后,再给不带道具的一方带上不变石,则子代的所有遗传信息均不发生变化。(但是对闪蛋位的影响,数据明显不够,如有例外,请吧友带证据指出)类似的指针类道具还有电珠和各种香炉,电珠的作用相当于强制母亲方存在第五个技能高压电击,除此之外,楼主暂时还没有发现或想到。香炉的作用是在判明子代种族种类时,强制指向另外一个种类,与不变石类似。结论:不变石和香炉等不会改变子代遗传信息,不会改变闪!
码一下必须。
贴吧热议榜
使用签名档&&
保存至快速回贴}

我要回帖

更多关于 伪随机数生成计算理论 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信