- A+
6up是不是有透视
难题一:尺寸差一(Off-By-One)不正确
聪明的程序猿便会发觉,该优化算法包括一个尺寸差一(off-by-one)不正确。该优化算法遍历原始的那扑克,将其每一张牌与其他随意牌互换。殊不知和大部分Pascal涵数不一样,Random(n)涵数事实上回到一个0到n-1的大数字,而不是1到n。优化算法运用接下去的一小段编码来挑选与当今牌互换的牌:这一公式计算设定一个值在1到51中间的自然数。总而言之,该优化算法从来不挑选最后一张牌与当今牌互换。当ctr最后偏向最后一张牌,也就是第52张牌时,这张牌能够与一切其他牌互换,除开它本身。换句话说,这一洗牌算法从来不容许第52扑克牌在大转变完毕后仍然在第52个部位。这很显著违背了平等原则,但是非常容易修补。
难题二:设计方案欠佳的大转变遍布
进一步调查该洗牌算法后,人们发觉,即便不考虑到尺寸差一(off-by-one)难题,该优化算法回到的大转变結果也不是分布均匀的。该大转变的关键基础优化算法如图2图示。
大转变
进一步调查优化算法后发觉,即便不考虑到尺寸差一(off-by-one)不正确,该优化算法回到的大转变結果也不是分布均匀的。换句话说,一些大转变結果出現的几率比其他大转变結果出現的几率大。假如一个游戏玩家了解这一系统漏洞,就可以在一个牌桌子坐好长时间,进而运用这类不分布均匀的优点。
人们用一个小事例来表明这类难题,这儿人们选用所述洗牌算法来大转变,这扑克只能三张(n=3)。
图2:不要这样洗牌
1 2 |
|
如果你看不懂上面的内容,那最后这个提醒你一定要看懂,那就是:不要再找什么6up是不是有透视,凡是向你兜售6up是不是有透视这样的软件的人都是骗子,请睁大眼睛,谨防上当!