定义rand7生成1-7
(rand7()-1)*7={0,7,14,21,28,35,42}
rand7={1,2,3,4,5,6,7}
两者相加生成1-49的随机数,每个概率为1/49
现在要生成1-10,只需生成等概率的1-10*N,然后%10即可
如下程序表示只取1-40之间的数
- int rand10()
- {
- int a71, a72, a10;
-
- do
- {
- a71 = rand7() - 1;
- a72 = rand7();
- a10 = a71 *7 + a72;
- } while (a10 >= 40);
-
- return (a10) %4 + 1;
- }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。