使用rand6實現rand10

給定rand6()函數實現

private static int rand6(){
        return (int)(Math.random()*6)+1;
}

rand6()可以得到1,2,3,4,5,6
rand6()-1可以得到0,1,2,3,4,5
(rand6()-1)*6可以得到0,6,12,18,24,30
result=(rand6()-1)*6+rand6()-1可以得到0,1,2,3,4,5,6,7……35
10的整數倍爲10,20,30,因此將result>=30的部分截掉。
result%10可以得到0,1,2……9,再+1,可以得到1,2,3……10

private static int rand10(){
        int result;
        do{
            result=(rand6()-1)*6+rand6()-1;
        }while(result>=30);
        return result%10+1;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章