c语言中如何随机生成一个 1 到 2千万 的数
#include#include#includevoid main() { int x; srand((unsigned int )time(NULL)); x=rand()%20000000+1; printf("%d
",x);}rand()%20000000会生成[0~19999999]区间的整数
rand()%20000000+1为[1~20000000]区间整数
源程序如下:
#include "pch.h"
#include
#include
using namespace std;
int main()
{
const int n = 10000;
int number[n] = { NULL };
srand((unsigned)time(NULL));
number[0] = rand() % n; //第一个随机数无需比较
cout << number[0] << " ";
for (int i = 1; i < n; i++) //其余随机数循环产生
{
int j = 0;
number[i] = rand() % n;
while (1)
{
if (number[i] == number[j]) //若有相同则继续循环重新安排随机数
{
number[i] = rand() % n;
j = 0; //若遇到相同的就从头遍历
continue;
}
if (j == (i - 1)) //若遍历完就跳出
break;
j++;
}
cout << number[i] << " ";
}
cout << endl;
return 0;
}
程序运行结果:
扩展资料:
其他实现方式:
#include //使用 time 函数必须引入 time.h 头文件
#include
int main()
{
srand((int)time(0));
int rand_num = rand();
printf("rand_num = %d
", rand_num);
return 0;
}
2 产生[m,n]范围内随机数的语句: rand()%(n-m+1)+m
3 要产生不同随机数范围的方法:
将已获取的随机数保存下来,在产生新的随机数后,与已获取到的进行比较,如果存在则抛弃,否则保存。
于是,获取到最小为m,最大为n,总数为k个的不同随机数的函数可以写作:
void get_rand(int *a, int m, int n, int k)//结果存在a中
{
int i,j,t;
for(i = 0; i < k; )
{
t = rand()%(n-m+1)+m;
for(j = 0; j < i; j ++)
if(a[j] == t) break;
if(j == i)//不重复
a[i++] = t;//记录随机数。
}
}
你应该会看字,会模仿吧,把m,n改成你需要的具体数字就可以了
如何用c语言产生一定范围内的随机数?
利用srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:1) 首先给srand()提供一个种子...
C语言编程中生成随机数的初级教程
如果调用srand(seed)产生的随机数种子是一样的.话(即seed的值相同),rand()产生的随机数也相同。所以,如果希望rand()每次调用产生的值都不一样,就需要每次调用srand(seed)一次,而且seed不能相同。这里就是经常采用time(NULL)产生随机数种子的原因。C语言中可以使用rand()函数来生成一个从0到RAND_...
C语言 实现模拟彩票的程序设计:随机产生7个数字(用C语言随机函数产生...
printf("随机产生的7个数字是:\\n");for(i = 0; i < 7; i++) { printf("%d ", *(numbers + i));} printf("\\n相同的数字:\\n");\/\/ 查找 int j;for(i = 0; i < 7; i++) { for(j = 0; j < 7; j++) { if(*(numbers + i) == *(inNumbers + j)) { pri...
c语言如何随机产生运算符
将运算符存储到一个字符数组中,然后,按数组元素个数生成随机数,根据随机数从数组中获得相应的运算符号。实现方法:建立数组 char a[],并初始化,将运算符存储其中 设置随机种子 srand(time(NULL));获得数组中元素个数,n=sizeof(a)\/sizeof(a[0]) ;生成0-n的随机数 i=rand()%n 根据随机...
C语言如何产生不重复的随机数
用一个数组装随机数,一个数组表示已经记录过的随机数;比如说随机0-8,生成一个随机8位数组且数组内各项不重复;例:intarray[8];intarrayIndex[8]={0,0,0,0,0,0,0,0};intk=0;srand(100);while(k<8){ intq=rand()%8+1;if(arrayIndex[q-1]==1){ continue;} array[k]=q;arr...
C语言生成随机数的函数,为什么循环后随机数都一样?
它产生随机数种子,说白了就是初始化随机数。srand((unsigned)time(0));取的是系统时间,也就是距离1970.1.1午夜有多少秒。而for循环每循环一次时间远远小于1秒,这就导致了srand((unsigned)time(0))产生的种子并没有改变。 那么,相同的随机数种子所产生的随机数肯定是一样的了。
C语言编程 在0-10000中随机生成1000个数并输出其中的最小值。
先生成1000个随机数成数组,然后定义一个变量,把数组的每个值拿出来比,比这个小的就重新存到这个定义的变量里面。
C语言怎样产生一定范围的随机数?
编译环境为:vs2013产生1到3的整型随机数的代码如下:#include<stdio.h>#include#include<stdlib.h>#define max 3 \/\/这个函数的意义为:随机生成最大的数为3#define min 1 \/\/这个函数的意义为:随机生成最小的数为1int main(){int num;srand(time(0));num = rand() % (max - min...
c语言:随机生成一个包含N个元素的整数(N>=10),要求找出最大数及序号...
include \/\/头文件 int main(){ int a[111],sum=0,k=0,n,max;float aver=0;scanf("%d",&n);srand((unsigned)time(NULL));\/\/srand()就是给rand()提供种子 for(int i=0;i<n;i++){ a[i]=rand()%10;\/\/1~10;printf("%d ",a[i]);\/\/输出n个随机数;sum+=a[i];\/\/累加 ...
在C语言中怎样产生随机的字符串
直接产生随机的字符串的库函数是没有的,但是可以这么实现:1.产生固定长度的随机的字符串 主要就是产生固定个数的随机字符,那么就简单了,用两组随机数:一组:随机产生0~25的整数num,然后用'a'+num来赋值小写字母,'A'+num来赋值大写字母 一组:随机产生0,1,产生0,用'a'来和num相加,...
漳莘安乐: int i = ++(rand()%2);在文件头加上 include <stdlib.h> 代码解释如下:首先是用随机数函数生成随机数,模2之后生成的随机数是0或者1,++操作之后就是1或者2了,希望对你有用,望采纳~
邢台市13116342922: c语言中如何随机生成一个 1 到 2千万 的数 - ?
漳莘安乐: 1 C语言产生随机数函数.rand(); 头文件为stdlib.h 2 产生[m,n]范围内随机数的语句: rand()%(n-m+1)+m 3 要产生不同随机数范围的方法: 将已获取的随机数保存下来,在产生新的随机数后,与已获取到的进行比较,如果存在则抛弃,否则...
邢台市13116342922: 在C语言中,怎样产生一个0到1的随机数?? - ?
漳莘安乐: #include void main(void) { int i; srand( (unsigned)time( NULL ) );/*这一句很重要,如果没有的话,每次产生的数据都是不变的.*/ for(i=0;i { printf("%d ",rand()%2);/*产生10个0到1的随机数*/ } }
邢台市13116342922: 怎样用c语言产生一个0到100的随机数 - ?
漳莘安乐: rand()函数,头文件stdlib.hint num; num = rand()%100;
邢台市13116342922: 如何用C语言编写出 生成10个1到20不重复的随机数.直接完整程序就好了,谢谢 - ?
漳莘安乐: #include <stdio.h>#include <stdlib.h>#include <time.h>//产生 [a,b] 区间的随机数#define RANDOM(a,b) (rand()%((b+1)-(a)) + (a)) int main() { int i=0, j; int buf[10]; //用当前时间初始化随机数种子srand( (unsigned)time(NULL) ); while( i<10 ) { int r = ...
邢台市13116342922: C语言 如何产生1到52之间的不同的随机数 - ?
漳莘安乐: rand(产生随机数) 相关函数 srand 表头文件 #include<stdlib.h> 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间.在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种...
邢台市13116342922: 怎样 在c语言中随机的输出1 - 53这几个数? - ?
漳莘安乐: 需要对获取过的随机数保存记录,在每获取一个新的随机数时,先判断是否获取过.如果获取过,那么抛弃;否则输出,并保存记录.当全部数据均输出后结束程序.代码如下:int main() { int f[54]={0}; int n; int i; srand(time(NULL)); for(i = 0; i < 53; i ++) { n = rand()%53+1; if(f[n])i--; else { printf("%d,",n); f[n] = 1; }} }
邢台市13116342922: c语言中如何生成1个0到1的随机数 - ?
漳莘安乐: float b=rand()/(RAND_MAX+1.0); printf("%f\n",b); 注释:stdlib.h头文件中有宏#define RAND_MAX 0x7fff rand()产生一个0到0x7ffff即0到32767之间的随机数 rand()/(RAND_MAX+1.0)就等于一个0到1之间的小数了,因为rand()最大是32767最小是0,再除以32768就是一个0到1之间的小数(不能等于1),再乘以10就是一个0到10之间的数了(不等于10).最后再加1,就成了一个求1到10之间随机数的式子了.
邢台市13116342922: C语言产生1 - 13的随机数 - ?
漳莘安乐: 先定义一个种子 srand((unsigned)time(NULL)); int k; k=rand()%13+1;就会产生1~13的值
邢台市13116342922: 用c语言怎样产生随机数啊..产生5个随机数..范围1到11的..如01,04,06,07,11,跪 - ?
漳莘安乐: int a[5],i; for(i=0;i{ a[i]=rand()%12; } a[i]这个数组就存放了你要的那组数