您的位置:首页 > 编程语言 > C语言/C++

C语言中生成随机数的另类实现

2015-04-18 11:26 197 查看
请描述random(a, b) 过程的一种实现,它只调用random(0,1)。

意思就是说,你用一个只返回0和1这两个随机数的函数来实现一个能返回a,b间任意数的一个随机函数。实现如下:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>//时间相关

int Random(int a, int b)
{
int i;
int ram = a;

for (i = 0; i < b-a; i++)
{
ram += rand()%2;//从起点做累加就可以了,其中rand()%2返回0或1
}

return ram;
}

int main(int argc, char* argv[])
{
int i;
srand((unsigned)time(NULL));

for (i = 0; i <100; i++)
{
printf("%d\t",Random(0,5));
}

getch();
return 0;
}
打印结果如下:

1 2 4 4 4 2 2 0 3 2

3 4 2 2 2 3 5 1 2 3

0 3 2 3 3 1 4 3 2 5

1 3 3 5 3 1 3 2 2 2

2 2 4 4 3 2 1 2 4 4

3 4 2 3 1 2 0 2 3 2

4 4 3 2 3 4 2 3 1 3

4 3 5 2 3 3 2 1 3 3

1 4 4 4 0 4 4 3 2 3

2 1 3 3 4 2 3 2 1 3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: