请描述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