分页: 1 / 1

请教:如何用$RANDOM产生正态分布随机数(已解决)

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

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)
:em04

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;"