您好, 這個問題是來自 http://blog.seattleinterviewcoach.com/2009/02/140-google-interview-questions.html
採取鑑於其產生在一個 隨機整數的函數範圍1至5, 寫其產生 隨機整數範圍爲1〜7
我無法通過使用1至5個隨機發生器得到一個方式來產生所有的隨機數1到7幾乎相等的概率的函數。
任何人都可以解決它嗎?
您好, 這個問題是來自 http://blog.seattleinterviewcoach.com/2009/02/140-google-interview-questions.html
採取鑑於其產生在一個 隨機整數的函數範圍1至5, 寫其產生 隨機整數範圍爲1〜7
我無法通過使用1至5個隨機發生器得到一個方式來產生所有的隨機數1到7幾乎相等的概率的函數。
任何人都可以解決它嗎?
我假設你給的函數提供了均勻分佈的數字,並且它是一個嚴格的要求,你需要寫的函數也返回均勻分佈的數字。
下面的僞代碼示出了標準的技術(稱爲rejection sampling):
do {
rand25 = (rand5() - 1) * 5 + rand5; // 1-25
} while (rand25 > 21);
return (rand25 - 1)/3 + 1;
分佈是否必須一致?你是否從提供的功能獲得統一的分配?你可以忽略提供的功能嗎? :) – 2010-12-04 12:06:34