C语言随机数生成器代码解析
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/06/17 18:56:09
C语言随机数生成器代码解析
我想产生1到100用随机数生成器产生,代码为 int i; srand((unsigned)time(NULL));for(i=0;i<1000;i++) { L.r[i].zongfen=rand()%301; L.r[i].shuxue=rand()%101; L.r[i].yingyu=rand()%101; L.r[i].yuwen=rand()%101; L.length++; }是不是想要那个范围的随机数就对那个数加一求余呢?请详细解析下随机数生成器的操作,
我想产生1到100用随机数生成器产生,代码为 int i; srand((unsigned)time(NULL));for(i=0;i<1000;i++) { L.r[i].zongfen=rand()%301; L.r[i].shuxue=rand()%101; L.r[i].yingyu=rand()%101; L.r[i].yuwen=rand()%101; L.length++; }是不是想要那个范围的随机数就对那个数加一求余呢?请详细解析下随机数生成器的操作,
![C语言随机数生成器代码解析](/uploads/image/z/19941844-4-4.jpg?t=C%E8%AF%AD%E8%A8%80%E9%9A%8F%E6%9C%BA%E6%95%B0%E7%94%9F%E6%88%90%E5%99%A8%E4%BB%A3%E7%A0%81%E8%A7%A3%E6%9E%90)
在C语言中,欲求正整数a到b(a < b)间的数的语句是:
rand()%(b - a) + a;
假如a = 50,b = 100,则
rand()%50 + 50;
因为 0 ≤ rand()%50 ≤ 49,所以rand()%50 + 50 的范围是:50 99
rand()%(b - a) + a;
假如a = 50,b = 100,则
rand()%50 + 50;
因为 0 ≤ rand()%50 ≤ 49,所以rand()%50 + 50 的范围是:50 99