rand4和rand6
rand4需要自己定义,大致就是从[0,1,2,3,4]里面随机抽取一个数
rand6也就是[0,1,2,3,4,5,6]中随机抽取
怎么实现呢
可以转换成
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
0 | 00 | 01 | 02 | 03 | 04 |
1 | 10 | 11 | 12 | 13 | 14 |
2 | 20 | 21 | 22 | 23 | 24 |
3 | 30 | 31 | 32 | 33 | 34 |
4 | 40 | 41 | 42 | 43 | 44 |
其实可以发现这些数字是5进制的数,比如44表示的是4*5+4=24,总共有0-24有25个数字
rand6里面有0-6七个数字,所以我们可以
**rand6 = rand4*5+4 <=20?x/3:loop **
当然你也可以rand6 = rand4 * 5+4 <=13?x/2:loop,但是这样的话会经常搜索到大于13的数,从而进入再次搜索