Matlab 版 (精华区)
发信人: ramjet (史努比狗), 信区: Matlab
标 题: [合集]请问如何产生概率为p的随机数?
发信站: 哈工大紫丁香 (2002年10月29日12:17:58 星期二), 站内信件
────────────────────────────────────────
slash (病猫) 于 2002年03月06日21:09:43 星期三 说道:
rt
3x
────────────────────────────────────────
ramjet (史努比狗) 于 2002年03月07日08:23:20 星期四 说道:
想问问随机数的概率是怎么定义的?
如果是要得到一个伪随机序列,使其满足一定概率密度分布,
以前的问题有部分解答。
────────────────────────────────────────
slash (病猫) 于 2002年03月07日11:44:12 星期四 说道:
不好意思
我的话说的有问题
就是想产生一个满足一定概率的伪随机序列
另外
如果想要在给定的一组数中按照一定的概率来读取
该如何实现?
比如说在1,2,3,4,5,6中作一百次读取
读出1的概率为0.5
该如何实现?
────────────────────────────────────────
zjliu (fly) 于 2002年03月07日12:19:31 星期四 说道:
你说的这个‘伪随机序列’,满足的概率是指序列服从某个分布吧?
如均匀分布,正态分布
你说的读取1的概率为0.5可这样实现:
先产生一个0-1间的均匀分布的随机数;
令随机数在0-0.5时结果为1,在0.5-1时结果为2,3,4,5,6
这样就ok了!
────────────────────────────────────────
slash (病猫) 于 2002年03月07日13:08:36 星期四 说道:
ft
我怎么没想到啊!
太谢谢了!
────────────────────────────────────────
ramjet (史努比狗) 于 2002年03月07日13:19:24 星期四 说道:
%first generate a colume of pseudo-random integer numbers
%on interval of [1,10] (uniform distribution)
a=floor(rand(10000,1)*10)+1
%Now,the probability distribution is as follows:
% Num.: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
% Prob.: 0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1
% now u can substitute 7,8,9,10 with 1, so that the
% probability of 1 in a is 0.5.
location=find(a>6);
a(location)=1;
%now use hist() to have a view of the prob. ditribution.
hist(a)
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.919毫秒