关于随机数表的一点问题

  1. 去年

    分子外星人

    1楼 2017年9月23日 物理版主

    游戏中经常会有一些随机性质的内容(例如命中率),这些往往就需要随机数来完成。有一些比较古老的游戏是采用这样的方式判定随机事件是否发生的(例如是否命中):
    程序内部有一张预先设定好的随机数表,然后每次需要判定随机事件的时候就按顺序调用这个随机数表中的数字。例如某游戏中有一个由00-99组成的随机数表,假设命中率是75%,那么当随机数表中抽取的数小于75时则命中,反之miss。
    为了游戏公平性,这个随机数表需要满足00-99出现的频率大致相同、不能有太明显的容易被发现的规律(例如一个命中率75%的人攻击三次之后必然会miss一次就明显不行)等性质。

  2. 分子外星人

    2楼 2017年9月23日 物理版主

    我们可以将一个整数按照这种方式拆分:
    3141592653,拆成31 41 59 26 53
    问题:2^100000在十进制情况下,将其按照上面这种方式拆分得到的一组数表,可以被认为是一组随机数表吗?

  3. lh1962

    3楼 2017年9月24日 优秀回答者

    我记得有说这种序列的分布会按0-9的幂律分布?

  4. 如果没搞错的话。。。这个数表是附件这个样子的。。。
    我看了一下,分布好像还挺均匀?

  5. 3月前

    分子外星人

    5楼 10月12日 物理版主

    @lh1962 我记得有说这种序列的分布会按0-9的幂律分布?

    有相关的文献吗……

  6. 如果是多人游戏,那么全部人共用一张随机数表。玩家射击一次,系统读取一个随机数,指针移下一位,所有用户共用同一个指针。由于玩家的射击意志带有部分随机性,那么单个玩家的命中事件就可以做得比较随机了。特别是,就算随机数并不优良,如果玩家特别多,那么单个玩家得到的随机数也会很优良。
    当然,如果是玩家数量很少或者干脆是单机游戏,那么就要好好设计一个随机数表了。
    另外,我觉得取圆周率小数位做随机数就不错……

 

后才能发言