c语言生成0和1随机函数 c语言随机产生0到1之间的数
c语言中如何产生1或0随机数
float b=rand()/(RAND_MAX+1.0);
创新互联公司主营大庆网站建设的网络公司,主营网站建设方案,app软件开发公司,大庆h5小程序制作搭建,大庆网站营销推广欢迎大庆等地区企业咨询
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之间随机数的式子了.
C语言产生多个0到1的随机数,要求完全分散
c语言函数名rand()
简介
功
能::伪随机数发生器
所属库:stdlib.h
用
法:
需要先调用srand初始化,一般用当前日历时间初始化随机数种子,这样每次执行代码都可以产生不同的随机数。
函数原型:int
rand(void);
相关函数:srand、time、gettickcount
程序例
1:
#include
"stdio.h"
#include
"stdlib.h"
int
main(void)
{
int
i;
printf("ten
random
numbers
from
to
99\n\n");
for(i=0;
i10;
i++)
printf("%d\n",
rand()
%
100);
return
0;
}
例1程序在每次运行时都会生成相同的十个伪随机数,如要每次生成的随机数不同应结合srand函数和time函数。
///////////////////
int
i,a;
for(i=0;i3;i++)
{
a=rand()%9;
printf("%d",a);
}
怎么用c语言产生0~1的随机数,水平较差,需要详细一点的程序,急谢谢!
首先你要设置种子:srand()((int)time(NULL))
然后获取随机数 你可以通过变量来保存也可以打印出来:
如:
#include stdlib.h
#include stdio.h
#include time.h
int main ()
{
srand((int)time(NULL));
for(int loop=0;loop10;++loop)
{
printf("%d\n",rand()%10);
}
return 0;
}
time() 和srand() 的头文件分别是stdlib.h time.h
rand()%10表示产生的随机数你0-9之间
如果你要得到0-1之间的随机数应该就是rand()%2
如何用C语言产生0到1之间的随机数?
方法一:
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("\n");
for (i=0; i=9; i++)
printf("%10.7lf\n",rnd1(r));
printf("\n");
getch();
}
方法二:
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之间随机数的式子了.
网站栏目:c语言生成0和1随机函数 c语言随机产生0到1之间的数
URL地址:http://ybzwz.com/article/doedioj.html