由买买提看人间百态

topics

全部话题 - 话题: idum
(共0页)
o********g
发帖数: 162
1
numerical recipes 上就有呀,我给你COPY 一个在这里, page 289.
#include
float gasdev(idum)
return a normally distributed deviate with zero mean and unit variance,
using ran1(idum) as the source of uniform deviates
int *idum;
{
static int iset=0;
static float gset;
float fac,r,v1,v2;
float ran1();
if (iset == 0) {
do {
v1=2.0*ran1(idum)-1.0;
v2=2.0*ran1(idum)-1.0;
r=v1*v1+v2*
s***e
发帖数: 911
2
来自主题: Science版 - Re: 请教一个问题

我把程序直接给你? 很短. 这个程序很好用. 其中有些注释句很多余,是以前我调程序
干的,没删掉. 是单精度实行.反正是random number, 没必要双精度. 主程序掉用强行
转一下就成.
FUNCTION ran2(idum)
c REAL FUNCTION ran2(idum)
INTEGER idum,IM1,IM2,IMM1,IA1,IA2,IQ1,IQ2,IR1,IR2,NTAB,NDIV
REAL ran2,AM,EPS,RNMX
* REAL*8 FUNCTION ran2(idum)
c REAL FUNCTION ran2(idum)
PARAMETER (IM1=2147483563,IM2=2147483399,AM=1./IM1,IMM1=IM1-1,
*IA1=40014,IA2=40692,IQ1=53668,IQ2=52774,IR1=12211,IR2=3791,
*NTAB=32,NDIV=1+IMM1/NTAB,EPS=1.2e-7,RNMX
c***d
发帖数: 996
3
☆─────────────────────────────────────☆
SaturdayNite (Show) 于 (Thu Dec 7 23:13:18 2006) 提到:
用的Numerical Recipes 里c语言的codes
用gasdev()产生高斯分布的随即数,调用的是ran1()。
为什么我把所有随即数加起来的和不是零?
分布到是看上去象高斯分布。
☆─────────────────────────────────────☆
kukutf (五脚蟹★酷酷豆腐) 于 (Thu Dec 7 23:20:07 2006) 提到:
接近于0,

☆─────────────────────────────────────☆
SaturdayNite (Show) 于 (Thu Dec 7 23:24:02 2006) 提到:
不太接近啊,譬如,种子idum = -13;不变,
取10000个,总和是-45.4703;
100000个, -103.702;
1000000, -405.668;
☆─────────────
p*****g
发帖数: 7
4
Numerical Recipes in Fortran or C
in Fortran, it's call gasdev(idum) meaning Gaussian distribution
y**t
发帖数: 50
5
来自主题: Computation版 - 随机数???
Try ran(idum) of numerical recipe(f90). It is good.
(共0页)