首页 > 其他 > 详细

用01随机函数构造[a,b]整数范围随机数

时间:2014-02-27 20:19:11      阅读:505      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #define RAND_0_1 (rand()&0x1)
 4 
 5 int random(int a, int b);
 6 
 7 int main(){
 8     int s[100];
 9     
10     for (int i=0; i<100; i++) {
11         s[i] = 0;
12     }
13     
14     for (int i=0; i<1000000; i++) {
15         s[random(0, 99)]++;
16     }
17     
18     for (int i=0; i<100; i++) printf("%d\n", s[i]);
19     
20     system("pause");
21     return 0;
22 }
23 
24 int random(int a, int b) {
25     int d, D = b - a;
26     int ret = 0;
27     do {
28         ret = 0;
29         d = b - a;
30         while (d) {
31             ret = ret<<1;
32             ret |= RAND_0_1;
33             d = d>>1;
34         }
35     } while(ret > D);
36     return ret + a;
37 }
bubuko.com,布布扣

算法导论(第二版)里第五章有关于用1/0随机函数产生[a, b]内的随机数,不知这样实现是否正确,运行结果不理想

用01随机函数构造[a,b]整数范围随机数,布布扣,bubuko.com

用01随机函数构造[a,b]整数范围随机数

原文:http://www.cnblogs.com/lailailai/p/3570307.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!