主题:求救求救,一个关于随机数的问题
lydia1981
[专家分:0] 发布于 2007-09-21 01:09:00
问题是这样的,
我现在要生成在(0,8)区间内正态分布的整数,均值为4,偏差为1,该如何写代码呢?
我只会用randn移动均值,
mean=4;
Std=1;
Normal=rand(1,50)*Std+mean;
但是如此生成的有负数,而且不是整数,再取绝对值,取整的话,那么均值其实已经变了.感觉思路歪了,但是又没有其他办法.
还求高手们给指点一下
最后更新于:2007-09-23 06:09:00
回复列表 (共7个回复)
沙发
lydia1981 [专家分:0] 发布于 2007-09-23 06:08:00
为什么没有人理偶啊, 难道偶的问题太小儿科,大侠们都不懈一看吗..呼救呼救
板凳
gslyd [专家分:1300] 发布于 2007-09-23 16:01:00
应该没有比之更合适的方法。另,在0-8范围内生成完全正态分布的整数随机数的说法也不太确切。
3 楼
zhoubinwx [专家分:0] 发布于 2007-09-23 16:47:00
你好,我也正在为这个事发愁,我们可以交流一下,我的msn:zhoubinwx@hotmail.com
4 楼
lydia1981 [专家分:0] 发布于 2007-09-26 22:53:00
[quote]应该没有比之更合适的方法。另,在0-8范围内生成完全正态分布的整数随机数的说法也不太确切。[/quote]
可是这样生成的数有可能大于8啊,这是最郁闷的了
5 楼
gslyd [专家分:1300] 发布于 2007-09-27 08:45:00
可将不符合要求的数值截去,带来的问题是不完全符合正态。但在一个较小的数值段的整数本身是不可能完全符合正态的。
6 楼
windfoxe [专家分:70] 发布于 2007-09-29 09:24:00
mu=0.6; sigma=0.1;
x=mu+sqrt(sigma)*randn(4)
x =
0.8311 0.7799 0.1335 1.0565
0.7827 0.5192 0.5260 0.4890
0.6127 0.4806 0.6375 0.7971
0.8141 0.5064 0.6996 0.8527
产生均值为0.6,方差为0.1的4阶矩阵
而Y = rand(n) %生成n×n随机矩阵,其元素在(0,1)内
正态分布的函数用randn这个
7 楼
jaguar_zhang [专家分:0] 发布于 2007-09-29 12:28:00
y=fix(4+randn(1,10))
基本可以满足你的要求。
出现小于0或大于8的可能性极小。
我来回复