作业帮 > 综合 > 作业

C++中如何产生[0,1)随机数,注意0是闭区间.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 11:40:01
C++中如何产生[0,1)随机数,注意0是闭区间.
要取得[a,b)之间的随机整数,使用(rand() % (b-a))+ a (结果值将含a不含b).
用rand() / double(RAND_MAX)可以取得0~1之间的浮点数(注意,不同于整型时候的公式,是除以,不是求模)
((rand() % (b-a))+ a )/double(RAND_MAX)应该就可以了
再问: 我试过了,还没没办法....显示的结果都是0...还有其它的方法吗?O(∩_∩)O谢谢!
再答: (rand() % (b-a))+ a 可以取[a,b)之间的整数,那么(rand() % (RAND_MAX-0))+ 0就可以取 [0,RAND_MAX)之间的整数,包括0,((rand() % ( RAND_MAX-0))+0) / double(RAND_MAX)不就可以取[0,1)了嘛? 你可以试试用(rand() % (b-a))+ a看能不能取a,比如试试[1,10)