总括
扫雷游戏,需要随机生成雷,并且最好能让生成的雷随机分布,下面将对使雷随机分布算法进行评估–下面部分内容来自对liubobo老师的总结
#方法一
即设MineNumber是雷的数量,对每个雷随机生成其该有的位置
此方法是for循环里面套了一个while循环,如果while循环一直不退出的话算法的时间复杂度将会是非常高的
#方法二
先将雷按照有序的方法排序,再将其打乱
打乱的策略可以是这样的:即对于整个棋盘每个位置,再随机生成一个位置并将这两个位置交换
验证其是否够乱
判断是否够乱的标准:模拟N次,判断N次后,每个位置上出现雷的概率是否相等,经过验证方法二的方法的误差是较大的,即结果不够随机
更随机化的方法–Fisher Yates 洗牌算法
图片侵删–步骤一每次从区间里随机选择一个数
图片侵删-步骤二把他和第一个数交换位置