C语言中生成0~1之间的随机数有什么函数

作者&投稿:卷儿 (若有异议请与网页底部的电邮联系)
~

C语言中生成1个0到1的随机数可以执行语句:float b=rand()/(RAND_MAX+1.0);

解析:

标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。rand()函数没有输入参数,直接通过表达式rand()来引用;

用函数rand取得的随机数除以(RAND_MAX+1.0),即可确保得到的结果在0到1之间。ISO IEC 9899 2011 (C11)标准中未规定 RAND_MAX 的具体数值。但该标准规定了RAND_MAX 的值应至少为32767。编程的时候,不应该对 RAND_MAX 的具体数值做任何假设。

扩展资料:

相关说明:

1、因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机。

2、为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。

3、随机种子(Random Seed)是计算机专业术语,一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。

参考资料来源:百度百科-随机函数

参考资料来源:百度百科-RAND_MAX



C语言产生多个0到1的随机数,要求完全分散
答:include <stdio.h>#include<stdlib.h>int main(){ int i = 10; while (i--) { printf("%d",rand()%2); } return 0;}

在C语言中,怎么用随机数函数产生的数的范围为1~100?
答:include<stdio.h> include<stdlib.h> include int main(){int a[20],i;srand(time(NULL)); //初始化随机数发生器 for(i=0;i<20;i++){ a[i]=rand()%100+1; //要产生[a,b]之间的随机整数,可用rand%(b-a+1)+a //因为的值位于区间[0,b-a],这样的数+a后就位于区间[...

你好,怎样用c语言输出一个1到100的随机数
答:srand(time(NULL)); for(i=0;i<10;i++) printf("%d\t",rand()%100); } 你可以自己揣摩其中的区别怎样用C语言生成10个1到100的不重复的随机数? /* 7 29 89 2 63 35 34 82 96 87 69 6 44 12 5 93 4 67 46 83 Press any key to continue */ #include <stdio.h>...

想在c语言中随机产生1或2该怎么做?
答:int i = ++(rand()%2);在文件头加上 include <stdlib.h> 代码解释如下:首先是用随机数函数生成随机数,模2之后生成的随机数是0或者1,++操作之后就是1或者2了,希望对你有用,望采纳~

输入一个正整数n输出一个0到n—1之间的随机数的c语言编程
答:include <stdlib.h>int my_rand() { int res=0, n; printf("input n:"); if(scanf(&n)==1) { res=rand()%n; } return res;}

C语言随机 生成不重复的0,1 矩阵
答:for(j=0; j<r; j++) //随机出一行数据 s[i*r+j] = rand() % 2;for(j=0; j<i; j++) //判断是否和已经生成的行重复 { for(k=0; k<r; k++){ if(s[i*r+k] != s[j*r+k])break;} if(r==k) //如果有重复 { i--;break;} } } return 1;} int main(){...

C语言中如何自动产生一个0到1之间的两位小数?谁知道这一下呗!
答:include<stdio.h>int a;int main(){a=rand()%100;printf("%d",a/100);return 0;}用以上代码就行了

C语言编程中生成随机数的初级教程
答:如果调用srand(seed)产生的随机数种子是一样的.话(即seed的值相同),rand()产生的随机数也相同。所以,如果希望rand()每次调用产生的值都不一样,就需要每次调用srand(seed)一次,而且seed不能相同。这里就是经常采用time(NULL)产生随机数种子的原因。C语言中可以使用rand()函数来生成一个从0到RAND_...

c语言生成1 - 100的不重复随机数
答:include<stdio.h>#include#include<stdlib.h>int Rand(int X,int Y)//生成随机数{int temp;if(X>Y){temp=X;X=Y;Y=temp;}return rand()%(Y-X+1)+X; }void main(){int arr[100];int i;int r;int temp;srand((unsigned)time(NULL));for(i=0;i<100;i++) arr[i]=i+1;//...

如何用C语言在VC中产生1~100的随机数?
答:double Random(double min,double max){ return 0.1*(max-min)*rand()/RAND_MAX/0.1+min;} 该函数产生一个min到max之间的随机数。如果将min换成1,max换成100就可以实现你的要求了!