首先生成两个0-5的随机数a和b。
由a和b组成两位六进制数ab,(00-55 由于a和b都是随机的,则00-55范围内的数也是随机的)。
将ab化成十进制c=a*6+b。
将出现整行的模9,未出现整行的过滤掉即可。
/**
* 00-55 六进制
* 0-35
* 0 1 2 3 4 5 6 7 8
* 9 10 11 12 13 14 15 16 17
* 18 19 20 21 22 23 24 25 26
* 27 28 29 30 31 32 33 34 35
* 36 37
*/
public class randnum {
//获得0-5随机数
public static int get0_5(){
Random random = new Random();
random.setSeed(System.currentTimeMillis());
try{
Thread.sleep(100);
}catch(Exception e){
e.printStackTrace();
}
return random.nextInt(6);
}
//获得0-8随机数
public static void get0_8(){
for(int i = 0; i < 10; i++){
int a = get0_5();//六进制 高位
int b = get0_5();//六进制 低位
int c = a * 6 + b ;//六进制化成 十进制
if(c > 35){//0-35均匀出现 4组0-8的数
get0_8();
}else {
System.out.println(c % 9);
}
}
}
public static void main(String[] args) throws InterruptedException {
get0_8();
}
}