2012年3月12日

摘要: 问题:现在有一个函数int r()可以随机获得[0, 6]之间的随机整数,问:如何正确使用此函数来随机获得 [0, 9]之间的整数?答案:int rand_ten(){ x = 7 * r() + r(); if (x > 39) { return rand_ten(); } return x / 4; //或者x%10;}解析7 * r() + r()得到的是[0, 48]直接的随机数,每个数出现的概率是相等的。现在我们直接抛弃>39以上的数,即得到[0, 39]之间的随机数,每个数出现的概率也是一样的。之后的/4或者%10就无所谓了。 阅读全文
posted @ 2012-03-12 15:30 aho 阅读(167) 评论(0) 推荐(0) 编辑

导航