给定一个随机数生成器(0,1),构造一个随机数生成器(0,4)
生活随笔
收集整理的這篇文章主要介紹了
给定一个随机数生成器(0,1),构造一个随机数生成器(0,4)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ?現給定一個隨機數生成器range2(),可等概率的生成0和1,現如何構造一個隨機數生成器range5(),可等概率的生成0,1,2,3,4。
? ? ?目前有個有點low的想法:
? ? ?因為現在已有可生成0,1的隨機數生成器,任何數均可用二進制表示,用range2()等概率的生成000,001,010,011,100,101,110,111,然后將101,110,111拋棄即可,在生成5,6,7的時候繼續調用range5()。
? ? ?代碼如下:
int range5() {if(range2())//1,代表首位{if(range2())//1,代表中間一位{return range5();}else //0,中間一位{if(range2()) //1return range5();else //0,最后一位,100return 4;}}else{//首位0if(range2())//中間一位1{if(range2())//最后1,011return 3;else //010return 2;}else{ //中間一位0if(range2()) //001return 1;else //000return 0;}} } ? ? ? 如有問題,歡迎指出。
總結
以上是生活随笔為你收集整理的给定一个随机数生成器(0,1),构造一个随机数生成器(0,4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mamp 配置php,mamp如何修改p
- 下一篇: 4G DTU MQTT连接腾讯物联网云平