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毫秒