C使用随机函数时,产生0~1的数,d=(double) rand()/(double)RAND_MAX.能不能使其等于1
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 15:53:50
C使用随机函数时,产生0~1的数,d=(double) rand()/(double)RAND_MAX.能不能使其等于1?
//下面这个代码可以测试这个值d = (double)f/(double)RAND_MAX;的范围是[0,1]
#include <stdio.h>
#include <stdlib.h>
int main()
{
int f= rand();
double d = (double)f/(double)RAND_MAX;//你的表达式值
while(d != 1)//测试值是否为1,如果可以输出Test End表示值可以为1
{
f= rand();
printf("%d\n",f);
d = (double)f/(double)RAND_MAX;
}
printf("Test End!\n");
}
测试结果:
从结果看,值RAND_MAX为32767,而rand()函数生成的最大值正好是这个值,所以d可以为1,取值范围为[0,1]
再问: 在有的机器上.由于d是浮点数.是不是有可能大于1
再答: 应该是不会的,f的值是32767,RAND_MAX为32767,所以d的值是其实肯定的,但是通常的float与1比较时确实会用一个精度范围做为限制,这样比较会更有意义
#include <stdio.h>
#include <stdlib.h>
int main()
{
int f= rand();
double d = (double)f/(double)RAND_MAX;//你的表达式值
while(d != 1)//测试值是否为1,如果可以输出Test End表示值可以为1
{
f= rand();
printf("%d\n",f);
d = (double)f/(double)RAND_MAX;
}
printf("Test End!\n");
}
测试结果:
从结果看,值RAND_MAX为32767,而rand()函数生成的最大值正好是这个值,所以d可以为1,取值范围为[0,1]
再问: 在有的机器上.由于d是浮点数.是不是有可能大于1
再答: 应该是不会的,f的值是32767,RAND_MAX为32767,所以d的值是其实肯定的,但是通常的float与1比较时确实会用一个精度范围做为限制,这样比较会更有意义
C使用随机函数时,产生0~1的数,d=(double) rand()/(double)RAND_MAX.能不能使其等于1
c语言 随机数 求pi 求解释为什么rand()/(float)RAND_MAX可以产生0到1的随机小数
C语言中怎么使用随机函数rand产生的两个能整除的数?
【c++】现有三个函数(1)double Add(double a) (2)double Add(double a,do
c语言中 a[i][j]=rand()/1000+1;是什么意思;随机发生函数rand()是怎么随机发生的,有什么范围吗
=1+ROUND((186+64*ROW()+RAND()*64)/1000,2)这个例子为什么产生随机的函数在1.25
c语言,使用随机函数rand()编写一个猜数字的游戏程序
C语言中如何用rand()函数产生20-90的随机整数
编写函数double rect-area(double length,double width=0),
算法设计:int rand()是一个能产生(0,65565)的随机数函数,怎么随机产生十个(1,300000)的不相等的
excel2003中怎样控制随机函数rand出0~100的数,2/3大于等于60?
double s=pow(2,double(1/3))结果是s=1,问题在于double(1/3)=0,