18 lines
526 B
Matlab
18 lines
526 B
Matlab
% This code is supported by the website: https://www.guanjihuan.com
|
|
% The newest version of this code is on the web page: https://www.guanjihuan.com/archives/1247
|
|
|
|
clc;clear all;clf;
|
|
s=100000; % 取的样品数
|
|
f=[1,2,3,3,3,3,6,5,4,3,2,1]; % 期望得到样品的分布函数
|
|
d=zeros(1,s); % 初始状态
|
|
x=1;
|
|
for i=1:s
|
|
y=unidrnd(12); % 1到12随机整数
|
|
alpha=min(1,f(y)/f(x)); % 接收率
|
|
u=rand;
|
|
if u<alpha % 以alpha的概率接收转移
|
|
x=y;
|
|
end
|
|
d(i)=x;
|
|
end
|
|
hist(d,1:1:12); |