分页: 1 / 1
请教:如何用$RANDOM产生正态分布随机数(已解决)
发表于 : 2012-01-31 21:35
由 halfwolf
本人做了一定的测试,发现shell自带的$RANDOM为平均分布,而项目中需要的随机数为正态分布。请问有没有合适的办法对该变量进行处理,使其满足正态分布?或者有没有其替代方法?

Re: 请教:如何用$RANDOM产生正态分布随机数
发表于 : 2012-01-31 21:42
由 cuihao
Re: 请教:如何用$RANDOM产生正态分布随机数
发表于 : 2012-02-01 6:45
由 halfwolf
谢楼上!试过了完全可行!
U、V~U(0,1),则X=((-2*ln(U))^0.5)*cos(2*pi*V)~N(0,1)

Re: 请教:如何用$RANDOM产生正态分布随机数(已解决)
发表于 : 2012-02-03 20:41
由 halfwolf
还有一个办法就是调用高级工具来处理,譬如调用matlab
cat test.sh
--------------------------------------------------------
#!bin/bash
FileName=mat_prog.m
cat > $FileName <<EOF
%This is a matlab script
rn=round(random('normal',256,512,1000000,1));
rn(find(rn<64))=[];
rn(find(rn>1024))=[];
x=unique(rn);
hist(rn,x);
fid=fopen(`myfile.txt`,'w');
fprintf(fid,'%d\n',rn);
fclose(fid);
EOF
chmod +x $FileName
matlab -nodesktop -nosplash -nojvm -r "run ./$FileName;quit;"