怎么控制 C++生成随机数的范围

我用#include<time.h>
srand((unsing)time(0))
a=rand()%33
这样可以控制随机数是在0-33范围内,可是我想让它在1-33范围内范围内,怎么办?
还有 a=rand()%33
b=rand()%33
怎么能让a和b产生的随机数不重复

第1个回答  2019-03-10
这是之前经常去的 k a ɲ 3 p ● c ɲ还算可以 不少都是蛮漂亮的女主角
;
;
;
;
;
;
;

长大后蓦然回首,你才会知道
相爱就不会永远不曾有伤痕,幸福就是很简单的生活
好像只能如此了,不敢去奢求,如木棉一般
歌声绕耳。只是为何入耳却如此的让人心殇
你是首长我是兵,你说冲锋我不敢犹豫
那曾经以为的花好月圆,爱情只是宿命摆下的一个局。
第2个回答  推荐于2018-05-07
C++的随机数函数为rand(), 可以获得一个非负整数的随机数。
要让随机数限定在一个范围,可以采用模除加加法的方式。
要产生随机数r, 其范围为 m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理为,对于任意数,
0<=rand()%(n-m+1)<=n-m
于是
0+m<=rand()%(n-m+1)+m<=n-m+m

m<=rand()%(n-m+1)+m<=n本回答被网友采纳

怎么控制 C++生成随机数的范围
int a{ srand((unsigned\/*此处填随机种子,我选用时间*\/)time(NULL)); rand()%x\/*x处填范围*\/; }代码运用:(注意还保存到文件里了)include<stdio.h>#include<stdlib.h>#include<conio.h>#include<windows.h>#include<iostream>#define _CRT_SECURE_NO_WARNINGS#include<math.h>#in...

用c++生成随机数 为什么每次结果都一样 如何控制结果在0~1000之内_百度...
1 C++的随机数函数rand是一个伪随机数,从固定的初始种子计算得出。所以每次运行获取到的随机数序列是相同的。要解决这一问题,需要设置一个随机数种子,一般用当前时间作为种子。代码为 srand(time(NULL));2 要控制随机数的范围,可以使用模除操作,即%运算。要控制结果在0~1000之间,可以使用代码 ra...

c++如何产生随机数,并规定取值范围?
用rand()函数产生随机数,想规定范围就用取余,比如限定一个随机数为【3 ,102】的数,那么(rand()%(102-3+1))+3,这样得到数就会在这个范围里,102-3+1==100,那么rand()%100的范围为 0-99,这个范围再加3为3 - 102

请问怎么使用C\/C++语言生成10个在区间[9,99]之间的随机数字呢。。。
(1)设随机种子:include \/\/ 包含头文件 srand((unsigned)time(null));\/\/用当前时间产生一个种子,这样,随机数的序列会随机 (2)产生随机数:用 rand()函数,产生随机数。include \/\/头文件 include \/\/头文件 例如:产生 0到m 范围的 double 型随机数:double x,r,m = 30.0;r = ((double...

怎么用C语言或者C++在自己规定的范围内,比如在(1,5,9,3,7)这五个数...
int x = 0;int a[5] = {1,3,5,7,9};for(int i = 0 ; i < 20 ; i++){ x = rand()*(m-n)\/RAND_MAX+n;cout << a[x] << endl;} } 如果需要产生n到m范围内的随机整数,可以:int ans=rand()*(m-n)\/RAND_MAX+n; \/\/算法 在vs平台下运行通过的,你也可以用枚举...

c++ 如何用rand()生成1到100的随机数
include <iostream.h> include<stdlib.h> void main(){ double x;x=rand()%101;cout<<x<<endl;}

c++生成随机数,要求在1-10之间,并且每次生成的值都不一样,该如何解决...
楼上中间部分改一下应该就ok了 比较懒,直接借用楼上的了,别介意哈(纯手打,写错了自行调整一下 int j; \/\/ 用来检查重复 static int a[0]={0,};cout<<"这是一个随机生成10个数字的程序,生成的数在1到10之间..."<<endl;for(i = 0; i < 10; ) \/\/ 下标递增放后面处理 { a[i]...

c++问题 rand() 默认产生的随机数范围
rand()函数可以用来产生随机数;rand()会返回一随机数值,范围在0至RAND_MAX 间。返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,(其值至少为32767),运算的结果是一个不定的数,要看你定义的变量类型,int整形的话就是32767。在调用此函数产生随机数前,必须先利用srand()设好随机数...

c++如何产生(0,1000000000)之间(开区间)的随机数?
如果是均匀的,随机数就没有意义了 取随机数范围(0-n), 只要将随机数 x(小数)* n % (n+1) 即可 均匀的话,除非固定长度

c++如何产生0到1之间的随机数?
转换思路为,生成一个0-N的随机数,然后对其除以N+1,则可以得到0-1直接的浮点型随机数。N的确定,可以与要求的精度有关,比如需要三位小数,可以采用N=999,如需要四位,则采用N=9999,以此类推。具体操作如下:include <cstdlib>#include <ctime>void get_rand(float *p, int n)\/\/函数功能为...

相似回答