北京石油化工学院2026年研究生招生接收调剂公告
查看: 1807  |  回复: 14
当前主题已经存档。

tc1788

铁虫 (小有名气)

[交流] 【求助】产生0~1之间随机数的函数

产生0~1之间随机数的函数 大家帮帮忙好吗
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ms98


sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来 7-15 06:50
srand( time( NULL ) );  //种子函数
rand();  //产生随机数的函数
其实google一下啥都有了
2楼2009-07-14 22:09:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

羽寒月

银虫 (小有名气)

★ ★
wangen994(金币+1,VIP+0):感谢参与讨论 7-16 09:05
tc1788(金币+1,VIP+0):谢谢 7-29 10:05
要0和1之间的还要除一下
a = rand()/(RAND_MAX+1.0);
3楼2009-07-15 15:49:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

一般的随机函数都是0-1之间的吧
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
4楼2009-07-15 17:48:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ms98

★ ★ ★
wangen994(金币+2,VIP+0):感谢参与讨论 7-16 09:05
tc1788(金币+1,VIP+0):谢谢 很详细 7-29 10:04
c/c++中返回的是0~RAND_MAX之间的一个数。
一般我们的做法都是把0~1映射到0~n的范围,在c++中只要反过来就可以了。2楼的除法是一种,还可以用求余的办法:
(rand() % 100) / 100.0,这样就得到精度为0.01,0~100间分布的随机数了。
ls说得也很对哦,一般随机函数返回都在0-1间,可惜random不是c标准,所以他们自己做了一个rand,看起来和大环境不是很一致。
5楼2009-07-15 21:11:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

prestoner

木虫 (小有名气)

★ ★
sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来 7-26 05:41
tc1788(金币+1,VIP+0):谢谢 7-29 10:04
这样得到的才是均匀分布的 [0.0, 1.0]随机数:
rand() / (float)RAND_MAX
╰╭︿︿☆╮ {/ . .\} ( (oo) ) ︶︶︶︶
6楼2009-07-26 01:01:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tc1788

铁虫 (小有名气)

a = rand()/(RAND_MAX+1.0);
和rand() / (float)RAND_MAX 是一样的吗
7楼2009-07-29 10:05:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ms98

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wangen994(金币+2,VIP+0):感谢你参与交流,常来啊 7-30 21:46
c/c++中返回的是0~RAND_MAX之间的一个数。所以两个差不离,你自己琢磨一下就能发现其中的差别了,半开半闭和全封闭的关系而已。
我发现一个问题讨论到后面总会跑到细枝末节上去...
8楼2009-07-30 12:59:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

black1316

★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
gwdavid(金币+5,VIP+0):谢谢 8-24 15:45
我参考 java 随机数生成函数写的一个简单的 C++ 版本

typedef unsigned long long uLL;

uLL seed = 1;

void setSeed( uLL s )
{
        seed = s;
}

       
double nextDouble()  // 返回下一个 double 型随机数,范围是 0 到 1
{
        return ( ( ( uLL )next( 26 ) << 27 ) + next( 27 ) ) / 9007199254740992.0;  
}
       
int next( int bits )  // 生成下一个伪随机数
{
      
        seed = ( seed * 25214903917L + 11L ) & 0xFFFFFFFFFFFF;
        return ( int ) ( seed >> ( 48 - bits ) );
}

使用 nextDouble() 函数就可以返回 0 到 1 之间的伪随机数了。
一般用系统时间来设置随机数种子,即 seed = ( unsigned ) time( NULL );
9楼2009-08-24 12:24:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
gwdavid(金币+1,VIP+0):谢谢 8-24 15:44
建议先google下,那里可是啥都有
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&amp;amp;amp;say=各位版主辛苦了![/img][/url][/center]
10楼2009-08-24 15:35:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tc1788 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 求调剂 有机化学考研356分 +4 Nadiums 2026-03-25 5/250 2026-03-29 21:00 by 唐沐儿
[考研] 材料科学与工程求调剂 +6 深V宿舍吧 2026-03-29 6/300 2026-03-29 20:51 by 唐沐儿
[考研] 289求调剂 +5 BrightLL 2026-03-29 5/250 2026-03-29 17:24 by zhyzzh
[考研] 070305高分子化学与物理 304分求调剂 +12 c297914 2026-03-28 12/600 2026-03-29 16:21 by Serene1974
[考研] 070300化学354求调剂 +6 101次希望 2026-03-28 6/300 2026-03-29 12:57 by 无际的草原
[考研] 356求调剂 +4 gysy?s?a 2026-03-28 4/200 2026-03-29 10:32 by 唐沐儿
[考研] 0856材料化工调剂 总分330 +14 zhubinhao 2026-03-27 14/700 2026-03-29 10:01 by Sjndkwm
[考研] 329求调剂 +7 星野? 2026-03-26 7/350 2026-03-29 06:43 by 544594351
[考研] 308求调剂 +7 墨墨漠 2026-03-27 7/350 2026-03-28 07:43 by 热情沙漠
[考研] 352分 化工与材料 +5 海纳百川Ly 2026-03-27 5/250 2026-03-28 03:39 by fmesaito
[考研] 266求调剂 +11 阳阳哇塞 2026-03-27 12/600 2026-03-27 17:56 by yu221
[考研] 322求调剂 +4 我真的很想学习 2026-03-23 4/200 2026-03-27 13:51 by 杨杨杨紫
[考研] 材料求调剂 +5 .m.. 2026-03-25 5/250 2026-03-27 11:08 by 不吃魚的貓
[考研] 347求调剂 +4 L when 2026-03-25 4/200 2026-03-25 13:37 by cocolv
[考研] 求调剂 +3 李李不服输 2026-03-25 3/150 2026-03-25 13:03 by cmz0325
[考研] 生物学学硕求调剂 +7 小羊睡着了? 2026-03-23 10/500 2026-03-25 02:24 by 清风拂扬。 m
[考研] 调剂 +4 13853210211 2026-03-24 4/200 2026-03-24 19:44 by ms629
[考研] 277分求调剂,跨调材料 +3 考研调剂lxh 2026-03-24 3/150 2026-03-24 13:52 by JourneyLucky
[考研] 284求调剂 +3 yanzhixue111 2026-03-23 6/300 2026-03-23 22:58 by pswait
[论文投稿] 急发核心期刊论文 +3 贤达问津 2026-03-23 5/250 2026-03-23 17:13 by 妹子不好惹
信息提示
请填处理意见