你这个程序有错误,rand()这个函数只能输出1-RAND_MAX的数据,我的机器上是30000多一点。不可能输出大于10万的数。
追答把 tab[i]=rand()%100000000;
改成tab[i]=(int)(((double)rand()/RAND_MAX)*100000000);
就行了。
这样的话,有些永远取不到,还是那RAND_MAX个数,只是数变大了,但是肯定会重复的
追答不明白你说的什么意思。永远取不到什么意思啊?
追问rand()只产生1-32767。也就是说rand()/RAND_MAX) 产生的是1/32767 到 1 的32767个分数,我要10万个不重复的随机数,你这方法明显会重复的。
追答如果想得到100000个不重复的数,最好先定义一个数组每产生一个先和数组中的其他数比较不相等的话再放到数组中否则舍弃,一直到数组中有100000个数为止。随机数本来就可能会重复的。
可以把100000000这个数分段分别得到再合成一个数。
随机数用来测试的,额,这个方法我也想过虽然分布很均匀。随机性被破坏了
追答看看跳蚤算法吧,应该对你有帮助。
追问那个我也看过,只是不知道怎么生成大的随机数,c语言比较麻烦
本回答被提问者采纳c语言生成10万个不同的随机数(一到一亿的范围)
include include<stdlib.h> int tab[100000];void print(void){ int i=0,j=0;for(i=0;i<100000;i++){ printf("%5d ",tab[i]);j++;if(j%10==0)putchar('\\n');} putchar('\\n');} void main(void){ int i=0,j=0;srand((unsigned)time(NULL));for(i=0;i<100000;i++...
怎样产生1到1000000的随机数
return rand()+random(n\/(RAND_MAX+1))*(RAND_MAX+1);} } void main( void ){ srand( (unsigned)time( NULL ) );printf( "%d\\n", random(1000000));}
用C语言怎样产生10个不同的随机数
1、第一步,打开C语言编译器并创建一个新的初始.cpp文件,例如“test.cpp”,见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,输入C语言代码,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,编译器运行test.cpp文件,执行结果见下图。这样,就解决了这个问题了。
如何用C语言创建一个可以储存100000个数的数组
j=j\/10;} printf("%c",a[i]);}
C语言怎样产生一定范围的随机数?
C语言中的rand函数可以生成一个伪随机数。这个数通常是一个较大的整数,每次调用rand都会生成一个新的随机数。为了在一个特定范围内生成随机数,可以将rand的结果与所需的范围进行某种运算,比如取模操作。这样,生成的值就会被限制在一定的范围内。使用srand函数设置种子 为了产生不同的随机数序列,需要...
C语言产生随机数
C语言中,可以通过特定的库和函数来生成随机数。首先,需要包含头文件`stdio.h`、`stdlib.h`和`time.h`,其中`stdlib.h`用于生成随机数,`time.h`则用来设置随机数生成的种子,确保每次程序运行得到不同的随机序列。同时,`math.h`库中的`pow`函数可以帮助计算2的幂次,这里用于确定需要生成的随机...
C语言怎样产生一定范围的随机数?
在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,可以称它为种子。为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数。C语言产生一定范围的随机数的源代码如下:include<stdio.h> include...
随机数表C语言编程产生随机数表
在C语言中,生成随机数通常依赖于`rand()`函数,但这实际上是伪随机数,依赖于一个称为种子的初始值,通过递推公式计算。`srand()`函数用于设置这个种子,原型为`void srand(int a)`,通过传入不同的值,如`srand((unsigned)time(NULL))`,可以利用当前时间作为随机种子,从而产生看似随机但可预测...
怎么在C语言中产生一个1000-9999的10个随机数,要求有公式和详细程序。谢...
srand(time(0));\/\/让产生的随机数会变动而不固定,这个不用多讲 for(i=0;i<10;)\/\/开始产生10随机数 { a=rand(); if(a>1000&&a<9999)\/\/进行判断,若产生的随机数符合条件,将其输出,成功次数增加一次 { printf("%d\\n",a); i++; } } system("pause"); } 首先结果: 本回答由网友推荐 ...
C语言如何产生一定范围内一定数量的不同随机数
static long int seed = 1;\/\/return rand long in [1,m]long int pm_rand(void){ long hi = seed \/ q;long lo = seed % q;long tmp = a * lo - r * hi;if(tmp > 0)seed = tmp;else seed = tmp + m;return seed;} int main(void){ for(int i = 0;i < 100;++i)...