隨機數問題--已知有個Random7()的函數,返回1到7隨機自然數,讓利用這個Random7()構造Random10()隨機1~10.


Math.random()隨機生成(0,1)之間的float數,Random7隨機生成[1,7]之間的整數,利用Random7構造Random10的步驟:

1、生成數a:a是兩次Random7的結果,即a=(Random7()-1)*7+Random7()-1;

2、判斷a是否小於40,如果小於40,則返回a/4+1,即為最后的結果;否則,繼續執行Random10;

public class B
{
public static int Random7(){
return (int)(Math.random()*7+1);
}
public static int Random10(){
int a=49;
while(a>=40){
a=(Random7()-1)*7+Random7()-1;
}
return a/4+1;
}
public static void main(String[] args)
{
for(int i=0;i<50;i++){
System.out.println(Random10());
}
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM