| 查看: 1928 | 回复: 13 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
elevenleo铁杆木虫 (正式写手)
|
[求助]
循环多次产生不同的随机数 已有2人参与
|
||
| 哪位大神帮忙用C语言写一小段程序,用于循环多次产生不同的随机数。如果有适当讲解更为感谢!!! |
» 猜你喜欢
售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急
已经有3人回复
国社科系统bug了,是不是要放榜了?
已经有9人回复
申博发邮件
已经有9人回复
各位大神,目前国内有哪些比较好用的逆合成软件?
已经有9人回复
上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告
已经有8人回复
上海工程技术大学激光智能制造课题组招收博士研究生
已经有8人回复

枪下游魂
木虫 (著名写手)
- 应助: 718 (博后)
- 金币: 8336.9
- 散金: 175
- 红花: 80
- 帖子: 1498
- 在线: 542.6小时
- 虫号: 2620258
- 注册: 2013-08-28
- 专业: 理论和计算化学
【答案】应助回帖
|
#define M1 259200 #define IA1 7141 #define IC1 54773 #define RM1 (1.0/M1) #define M2 134456 #define IA2 8121 #define IC2 28411 #define RM2 (1.0/M2) #define M3 243000 #define IA3 4561 #define IC3 51349 double ran1(idum) int *idum; { static long ix1,ix2,ix3; static double r[98]; double temp; static int iff=0; int j; void nrerror(); if (*idum < 0 || iff == 0) { iff=1; ix1=(IC1-(*idum)) % M1; ix1=(IA1*ix1+IC1) % M1; ix2=ix1 % M2; ix1=(IA1*ix1+IC1) % M1; ix3=ix1 % M3; for (j=1;j<=97;j++) { ix1=(IA1*ix1+IC1) % M1; ix2=(IA2*ix2+IC2) % M2; r[j]=(ix1+ix2*RM2)*RM1; } *idum=1; } ix1=(IA1*ix1+IC1) % M1; ix2=(IA2*ix2+IC2) % M2; ix3=(IA3*ix3+IC3) % M3; j=1 + ((97*ix3)/M3); if (j > 97 || j < 1) nrerror("RAN1: This cannot happen." ;temp=r[j]; r[j]=(ix1+ix2*RM2)*RM1; return temp; } #undef M1 #undef IA1 #undef IC1 #undef RM1 #undef M2 #undef IA2 #undef IC2 #undef RM2 #undef M3 #undef IA3 #undef IC3 以上 程序段名为“ran1.c”,产生0到1之间的随机数,出自 《numerical receipt in c》一书 相对于以时间来生成随机数,这个的连续性和随机性我觉得更好。 缺点为如果你给定一个初始种子,那每次产生的随机数相同。 |
14楼2014-07-28 09:11:04
2楼2013-12-09 21:53:17
3楼2013-12-09 22:32:53
5楼2013-12-10 10:35:18










回复此楼
;