你不能用均匀分布的随机数来操制。
你可以这样。
假设说你想要这五个数的概率分别为:0.4,0.25,0.2,0.1,0.05
它们的累积概率为0.4,0.65,0.85,0.95,1
你可以这样。先产生一个随机数,
找上面累积概率的区间,再先数。
%%%%%%%%%%
P=[0.4,0.25,0.2,0.1,0.05];
SumP=cumsum(P);
A=1:5;
data=[];
N=1000; %随机数个数
for i=1:N
x=rand(1);
if x
elseif x
elseif x
elseif x
else
data(i)=A(5);
end
end
%这个数出现的次数:
cnt=hist(data,A)/N %这些随机数出现的次数