gpt4 book ai didi

c - 使用 rand() 时输出范围内的随机数

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:44 24 4
gpt4 key购买 nike

我的具体问题是,当我输入 90 作为较低值和 100 作为较高值时,我得到的输出随机数有时小于 90。In my code below , x<y.
我的代码是:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define Null 0

void main(){
int x,y,a,b;
printf("Insert two numbers to create a range\n in which you want a random number to be generated:\n");
scanf("%d%d",&x,&y);
srand(time(Null));
a =( rand() + x)%y ;
printf("The Randomly Generated Number is %d.\n",a);


}

最佳答案

假设您想要一个唯一的上限,正确的方法是:

(rand() % (high - low)) + low

假设 high=100 和 low=90,了解其工作原理:

  • 你生成一个随机整数
  • (高 - 低)为您提供范围,100 - 90 = 10。
  • 当您将 % 乘以 10 时,您将得到 [0, 10) 范围内的结果,因此它将是 0、1、2、3、4、5、6、7、8 或9
  • 因为您真正想要的是 90, 91, 92, ..., 99 中的一个,所以您必须将 low 添加回它

这里要注意的是,你只会得到 [90, 99]。如果你想要一个包含的上限,所以 [90, 100] 然后你想在你修改的数量上加 1

(rand() % (high + 1 - low)) + low

关于c - 使用 rand() 时输出范围内的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com