注册 登录
编程论坛 Matlab

已知离散数组概率为p(xi=ai)=b,用matlab实现产生一系列的随机数~~

guogang009 发布于 2013-07-15 09:35, 815 次点击
各位大神,小弟一直在追一女孩,女孩是学计算机的,前天求我一问题,如下:
 已知一离散数组,数组中数的出现概率为p(xi=ai)=b,用matlab实现,产生一系列的随机数。
 本人没学过matlab ,看了两天,没啥效果,故求各位大神解答,望成全小弟~~~~感激不尽~~~~~~~
4 回复
#2
wp2319572013-07-15 09:47
关注
#3
guogang0092013-07-15 19:43
我去~~~一个人都没啊~~~~~~
#4
source1232013-07-16 19:45
可尝试根据已知数据确定随机数的分布类型,然后确定相应的算法。
#5
cuirun2013-07-18 15:36
% This function is used for random number generation

X = [1 2 3 4 5];   %Number to use
P = [0.1 0.3 0.3 0.1 0.2 ]; % possibility to use

M = 10000; %how many numbers we want to generate

Temp = rand(1,M);

%Assign the possibility with length of intervals
% X1 - [0,0.1)
% X2 - [0.1,0.4)
% X3 - [0.4,0.7)
% X4 - [0.7,0.8)
% X5 - [0.8,1]

Index1 = find(Temp>=0   & Temp <0.1);
Index2 = find(Temp>=0.1 & Temp <0.4);
Index3 = find(Temp>=0.4 & Temp <0.7);
Index4 = find(Temp>=0.7 & Temp <0.8);
Index5 = find(Temp>=0.8 & Temp <=1);

Temp(Index1) = X(1);
Temp(Index2) = X(2);
Temp(Index3) = X(3);
Temp(Index4) = X(4);
Temp(Index5) = X(5);

Result = Temp
1