c语言中如何生成1个0到1的随机数

作者&投稿:訾俗 (若有异议请与网页底部的电邮联系)
c语言中如何生成1个0到1的随机数~

float
b=rand()/(RAND_MAX+1.0);
printf("%f
",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之间随机数的式子了.

方法一:
1、功能:
产生0到1之间均匀分布的一个随机数
2、方法说明:
设m=216,产生产生0到1之间均匀分布的一个随机数的计算公式如下:
ri=mod(2053ri-1 +13849,m),i=1,2,3……
pi =ri/m
例:连续产生10个0到1之间均匀分布的一个随机数 。r的初值取5.0
#include "stdio.h" double rnd1(double *r) { int m; double s,u,v,p; s=65536.0; u=2053.0; v=13849.0; m=(int)(*r/s); *r=*r-m*s; *r=u*(*r)+v; m=(int)(*r/s); *r=*r-m*s; p=*r/s; return(p); } main() { int i; double r; r=5.0; printf("
"); for (i=0; i<=9; i++) printf("%10.7lf
",rnd1(&r)); printf("
"); getch(); }方法二:
float b=rand()/(RAND_MAX+1.0);
printf("%f
",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之间随机数的式子了.

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



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之间随机数的式子了.

#include
void
main(void)
{
int
i;
srand(
(unsigned)time(
NULL
)
);/*这一句很重要,如果没有的话,每次产生的数据都是不变的。*/
for(i=0;i<10;i++)
{
printf("%d
",rand()%2);/*产生10个0到1的随机数*/
}
}


C语言:随机生成一个包含10个元素的数组a
int i=0;i<10;i++){ a[i] =rand()%100+1; printf("%d ",a[i]); } printf("\\n输入一个数:"); scanf("%d",&x); j= 0; for(int i=0;i<10;i++){ if (a[i] > x) { b[j] = a[i]...

怎么用R语言生成0-1之间的随机数?
2、第二步,再次调用runif()函数,runif(6)又生成6个随机数,如下图所示:3、第三步,使用set.seed(12345)设置种子元素,然后调用runif(6),查看数据情况,如下图所示:4、第四步,再次调用set.seed()函数,这时多加了一个6,如下图所示:5、第五步,再次调用runif(6)函数,查看生成的6个随机...

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

用C语言编写一个可以产生1~99随机数的函数
可以使用C语言标准库中的srand()和rand()来生成随机数,同时要生成1~99之间的随机数,只需要将生成的随机数与99整除,取其余数+1即可保证所有产生的随机数在[1,99]的区间之内。示例代码如下:include<stdio.h>#include<stdlib.h>#includeint main(){int a,i;srand((unsigned)time(NULL));\/\/初...

c语言怎么1个数一换行输入?
在 C 语言中,可以使用 `scanf` 函数来读取输入。如果你希望每输入一个数后换行,可以在 `scanf` 之后使用一个换行符(`\\n`)来实现。以下是一个简单的示例代码,演示了如何实现每输入一个数后换行:```c include <stdio.h> int main() { int num;printf("请输入一个数:");scanf("%d",...

易语言如何2个程序合成1个
你问的问题比较含糊,大致上理解你可能是想使自己的软件能快捷浏览或使用软件附带的某些文件或针对某个功能的子应用程序!说你的问题简单也可以,复杂也可以!但如果我用复杂的方式去解答你的问题,你只能更加迷糊了!下面我用比较基础的方式来解答你的问题吧:首先,你想把所有东西都合并到一个EXE中,这是可以...

...编程:用C语言程序编写。生成随机数序列。范围:1-15要求生成1...
\/\/希望您你有帮助!include <stdio.h> include int main(){ int a[15] = {0};int count = 0;srand(time(NULL));while ( 1 ){ int r = rand()%15 + 1;if (++a[r] > 1)continue;else { printf("%02d ", r);if (count++ > 15)break;} } return 0;} 运行结果:07 ...

C语言中如何定义一个十一位数
如只是使用基础变量存储十一位数。可以使用longlong型(打印格式%I64d) 。或者使用double型(打印格式%lf)。

c语言一个简单随机数问题
C语言的随机数不是这么取出来的 你要实现从1 2 3三个数字中随机抽取一个数,其实就是要实现生成一个取值在1~3的随机数 实现如下:随机输出十个1-2之间的整数 include <stdlib.h> include <stdio.h> include void main( void )int i,k;srand( (unsigned)time( NULL ) );for( i = 0;...

在C语言中如何实现用键盘输入一个字符串,并打印出来?
在C语言中输入字符串后然后打印出来的编程方法如下:1.首先需要先定义一个存放字符串的数组空间,如给字符串100个数组空间。2.接着使用gets()函数来获取键盘输入的字符串。一般格式为gets(定义的字符数组名)。3.然后再使用puts()函数来输出之前输入的字符串内容。一般格式puts(定义的字符数组名)。4....

志丹县17522607840: 在C语言中,怎样产生一个0到1的随机数?? -
闽瞿潘诺: #include void main(void) { int i; srand( (unsigned)time( NULL ) );/*这一句很重要,如果没有的话,每次产生的数据都是不变的.*/ for(i=0;i { printf("%d ",rand()%2);/*产生10个0到1的随机数*/ } }

志丹县17522607840: 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之间随机数的式子了.

志丹县17522607840: 如何用c语言取0 - 1间的随机小数?? -
闽瞿潘诺: 可以写一个函数,利用math.h中的rand来产生随机浮点数.#include #include #include// 精度0.001的随机浮点数 float randf() {return (float)(rand() % 1001) * 0.001f; }main() {int i;for (i=0; i<100; ++i) printf("%.3f\n", randf());system("pause"); }VC里rand()的范围是从0到某个内部指定的极大数,但是以前似乎有些书上说用rand得到的可能是负数.如果有出现负数的话,对rand得到的数取绝对值就可以了.

志丹县17522607840: 怎么用C语言生成随机数? -
闽瞿潘诺: 生成1~13的随机数,随机数序列中没有重复字数 #include <stdio.h> #include <stdlib.h> // 包含rand()函数说明 #include <time.h> #define N 13 void main( void ) { inti, j, num[N], tmp; //用当前时间种子重置随机数生成器,使每次运行生成不同的...

志丹县17522607840: c语言如何产生在一定范围内的随机数 -
闽瞿潘诺: //---------------------------------------------------------------------------#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) {int a;int t=10,d=100;srand(time(NULL)); /*初始化随机数种子*/ a=rand()%(d-t)+t; /*生成一个[t,d)区间内的整数*/...

志丹县17522607840: 怎样用c语言产生一个0到100的随机数 -
闽瞿潘诺: rand()函数,头文件stdlib.hint num; num = rand()%100;

志丹县17522607840: C语言中怎样生成随机数? -
闽瞿潘诺: 在VC中设计到随机数有两个函数srand() and rand()srand() 的作用是是一个种子,提供每次获得随机数的基数而已,rand()根据种子而产生随机数注意1:srand() 里的值必须是动态变化的,否则得到的随机数就是一个固定数2:其实可以不用写srand() ,只用rand()就可以了,省事,简单,例子如下如果我们想得到一个 0-60的随机数那么可以写成int i;i=rand()%60;就可以了.当然最好有个统一的标注如下:int i;srand((unsigned)time( NULL ));i=rand()%60;这样就OK了.

志丹县17522607840: 怎么用c语言产生0~1的随机数,水平较差,需要详细一点的程序,急谢谢! -
闽瞿潘诺: #include #include int main(int argc, char *argv[]) { srand((unsigned)time(NULL)); //以时间为种子,让产生的数完全随机 int a = rand()%2; //rand()函数会产生一个随机数,用这个数对2取模运算, //得到的值只可能是0或者1. printf("%d\n",a); return 0; }

志丹县17522607840: c语言 0和1随机数 -
闽瞿潘诺: 就是产生0,1的随机数? 先用 srand(time(NULL)) 初始化 需要随机数的时候用 (rand()>>3)%2 类似这样就得到0,1的随机了

志丹县17522607840: 输入一个正整数n输出一个0到n—1之间的随机数的c语言编程 -
闽瞿潘诺: 1 2 3 4 5 6 7 8 9 10#include <stdlib.h>intmy_rand() {intres=0, n;printf("input n:");if(scanf(&n)==1) {res=rand()%n;}returnres; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网