9.1 從5隨機到7隨機及其擴展
阿新 • • 發佈:2018-11-05
pre public 函數 double 參數 及其 return clas and
【題目】:
1~5的隨機函數rand1To5如下:
1 pu7blic int rand1To5(){ 2 return (int) (Math.random() * 5) + 1; 3 }
除此之外,不能使用任何額外的隨機機制,請用rand1To5實現等概率隨機產生1~7的隨機函數rand1To7
【補充題目】:
給定一個以p概率產生0, 以1-p概率產生1的隨機函數rand01p如下:
1 public int rand01p(){ 2 // 可隨意改變p 3 double p = 0.83; 4 return Math.random() < p ? 0 : 1;5 }
除此之外,不能使用任何額外的隨機機制,請用rand01p實現等概率隨機產生1~6的隨機函數rand1To6
【進階題目】:
給定一個等概率隨機產生1~M的隨機函數rand1ToM如下:
1 public int rand1ToM(int m){ 2 return (int) (Math.random() * m) + 1; 3 }
除此之外,不能使用任何額外的隨機機制。有兩個輸入參數,分別為m和n,請用rand1ToM(m)實現等概率隨機產生1~n的隨機函數rand1ToN
9.1 從5隨機到7隨機及其擴展