
介绍原理之前先给大家讲一下概率这个概念。
首先应该明确在数学上概率是用公理化的形式定义的。像‘概率统计定义’,‘古典概率定义’,‘几何概率定义’都是一些描述性的说法,大家应理解其实质——概率的统计定义通常可以这样叙述::在相同的条件下做大量的重复试验,一个事件出现的次数k和总的试验次数n之比,称为这个事件在这n次试验中出现的频率。当试验次数n很大时,频率将‘稳定’在一个常数附近。n越大,频率偏离这个常数大的可能性越小。这个常数称为该事件的概率。也就是我们常说的合成强化几率。
我们要清楚上述定义只是描述性的。事实上它有循环定义之嫌。因为定义中出现了‘可能性’。这指的就是概率。(类似地在古典概率定义中通常出现‘等可能性’)。对这个定义应该从整体上把握,重要的是掌握以下几点:
(1) 我们所讨论的现象是可以做‘重复试验’的。。并非所有不确定现象都是概率论研究的对象。例如,本。拉登是否还活着,某某人今天脸色不好是否不高兴,等等。这类问题没有重复试验的意义,属于人们的主观猜测与愿望,。尽管人们有时也说:“十有八九他不高兴‘,’我认为拉登活着的可能性只有百分之十‘。这被称为主观概率。对主观概率的研究并非没有意义,但并非我们概率论研究的对象。概率论描述的是可以重复试验的模型。另外,结果的随机性不同于结果未知。比如,至今人们还不知道哥德巴赫猜想是否成立,但这没有任何随机性。’重复试验‘是指条件相同下的试验,严格说在现实中两次试验条件完全相同是不可能的,这里给出的是数学模型,至于现实中哪些问题能用这个数学模型来近似描述,这是另一个问题。
(2)频率和概率的关系。频率是随机的,是这n次试验中的频率。换另外n次试验一般说频率将不同,而概率是一个客观存在的常数。
(3)概率反映的是‘多次试验’中频率的稳定性,人们往往错误地把‘概率等于二分之一’理解为‘两次试验中出现一次’。应给予纠正。 例如:合成1的几率是50%,绝对没有2次成功一次的说法。
(4)出现频率偏离概率较大的情形是可能的,这是随机现象的特性。例如,在讨论抽签与抽取顺序无关时,就可以用试验模拟。但必须注意到频率偏离概率大的情形。例如,扔一百个均匀硬币,一面出现41个,另一面出现59个,是不奇怪的。对此大家应有充分的认识。
因此我可以很负责任地说,以往那些垫刀,换线,选时间……等方法都是没有科学根据的,尤其是垫刀,大家可以参考(2)的介绍,概率是客观的,什么失败几次后概率可以提高……笑话 !说狂犬病的生存率是1%,那么如果你得了该病,而且在你之前患此病而死亡的人数有99个,你敢说你肯定能活下来么。
另外,我们还要了解概率在游戏的程序设计中是如何实现的。首先需要声明的是,计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。
伪随机数并不是假随机数,这里的“伪”是有规律的意思,就是计算机产生的伪随机数既是随机的又是有规律的。怎样理解呢?产生的伪随机数有时遵守一定的规律,有时不遵守任何规律;伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正是点到了事物的特性,即随机性,但是每种树的叶子都有近似的形状,这正是事物的共性,即规律性。从这个角度讲,你大概就会接受这样的事实了:计算机只能产生伪随机数而不能产生绝对随机的随机数。
那么计算机中随机数是怎样产生的呢?有人可能会说,随机数是由“随机种子”产生的。没错,随机种子是用来产生随机数的一个数,在计算机中,这样的一个“随机种子”是一个无符号整形数。那么随机种子是从哪里获得的呢?
随机种子的获得有很多种方法,其中最简单的是来自系统时钟,确切地说,是来自计算机主板上的定时/计数器在内存中的记数值。随机数是由随机种子根据一定的计算方法计算出来的数值。因为由计算机时钟记数器精确控制时间间隔的控件,时间间隔相同,记数器前后的值之差相同,这样时钟取值就是呈线性规律的,所以随机种子是呈线性规律的,生成的随机数也是有规律的。而大家按键事件(鼠标点击)产生随机数确实更呈现随机性,因为事件是由人按键引起的,而人不能保证严格的按键时间间隔,即使严格地去做,也不可能完全精确做到,只要时间间隔相差一微秒,记数器前后的值之差就不相同了,随机种子的变化就失去了线性规律,那么生成的随机数就更没有规律了,所以这样生成的一组随机数更随机。这让我想到了各种晚会的抽奖程序,如果用人来按键产生幸运观众的话,那就会很好的实现随机性原则,结果就会更公正。
最后我要说: 1.计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就是固定的。2.只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。
通过以上概念我们可以开始进入我们的主题了——合成。合成的原理是计算机产生一组随机数,举例如合1,几率50%.其中有50%的数字代码表示成功,一般地,随机种子是按照系统的时钟选取的,那么随机数的产生是呈线性规律的,也就是说,系统发送成功代码的时间间隔是一定的(为了一个合成系统没必要设定一个复杂的算法)。因此,合成的最佳方法是要掌握其规律性。系统时钟的频率相当高,一般是几毫秒甚至几微秒发送一次代码,因此你合成的时候不会受到别人的影响。但是在那么短的时间内捕捉到成功代码几乎是不可能的。我们可以尝试找到随机数组产生的周期,比如其周期是0.01秒,那么我们可以1秒点一下,3秒点一下,10秒点一下……
理论上这样应该没问题,但实际操作起来相当困难,因为我们不可能把时间估计得那么准;就算你把时间估准了,可是你手指点鼠标的时间间隔也会产生误差。最好的办法是找个参照物,最好是游戏中发生的事件(NPC说话的频率、眨眼睛的频率等),然后准备一些垃圾石头和垃圾装备,利用垃圾装备来找规律,比如(眨一下眼睛)点一下合成,每次点击力度要均匀,如果成功就可以拿笔记下时间间隔了。当然,由于合1发送成功代码的频率较高,采用上述方法时产生的误差相对较小,所以不用计算得十分精确;而合成第4手的时候,该方法就相当好用。还需要注意的一点是,合成时,网络状况一定要好,也就是人少、系统正常运行的时候,不然网络会发生数据包堵塞、网络延迟什么的,会对合成造成不良影响。这样还可以解释为什么有些人连续点20个石头都失败的原因了,他的频率可能正赶上失败代码的发送频率
知识有限,只能写这么多,还望大家谅解,我的忠告就是,合成千万不能急于求成,方法再正确偶然性还是很大的,毕竟这个方法的可操作性太高,运气还是相当重要的。
最后要说一句,这个方法可能还不完善(毕竟过于理想化了),理论性太强,还需要大量实践去检验。单凭借我个人之力是不够的,希望大家能提出宝贵意见,发挥各位的聪明才智——集体的力量是无穷的。
网通2区苍穹:婉约0然然(QQ:309660632有兴趣或有不同意见请加QQ共同探讨)由于大号已经没了,目前小号48级,缓慢爬升中有兴趣的朋友可以在2线或7线密我)