matlab 中怎样按概率产生随机数?

现在有三种波色A/B/C,出现的概率为40%、25%、35%,我现在想根据他们出现的概率,用RAND设计出一个随机数A/B/C,这个随机数是根据他们的概率的。谢谢大侠~... 现在有三种波色A/B/C,出现的概率为40%、25%、35%,我现在想根据他们出现的概率,用RAND设计出一个随机数A/B/C,这个随机数是根据他们的概率的。
谢谢大侠~
展开
 我来答
775089697
2012-05-14
知道答主
回答量:10
采纳率:0%
帮助的人:9.1万
展开全部
a=randsrc(1,3,1:100)
这个函数的意思是产生一个1*3的随机数组,取值是从1到100等概率的。
设s为a的某个元素,你可以假定:
如果 s<=40 则 s'=A
如果 41<=s<=65 则s'=B
如果 66<=s<=100 则 s'=C
这样做可能比较麻烦,应该有直接实现以上功能的函数。
你可以查一下。
我也是初学者,共同学习,望采纳
钺小夏侯pf
推荐于2017-09-10 · TA获得超过2460个赞
知道小有建树答主
回答量:578
采纳率:69%
帮助的人:383万
展开全部
function y=GenRanNum1(n)
%本函数产生n个指定概率分布的随机数,本例中的
%概率密度函数为f(x)=(1-x*x)/(1+x*x)/(pi-2) |x|<1
min=-1;% 概率密度区间的左边界
max=1; %概率密度区间的右边界
uper=1/(pi-2);%概率密度函数的上确界
%rand('state',0);sum(100*clock)
for k=1:n
x1= min + (max-min).*rand(1);
x2=uper*rand(1);
x3=(1-x1*x1)/(1+x1*x1)/(pi-2); %此处为指定的概率密度函数f(x)的位置
while x2>x3
x1= min + (max-min).*rand(1);
x2=uper*rand(1);
x3=(1-x1*x1)/(1+x1*x1)/(pi-2);
end
y(k)=x1;
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fisher_man1990
2012-05-12 · TA获得超过1231个赞
知道小有建树答主
回答量:217
采纳率:100%
帮助的人:188万
展开全部
采用轮盘赌法,把100看做一个轮盘,则产生1-40之间的数概率为40%,41到65之间的数概率为25,66到100之间的概率为35%。
追问
请问代码怎样写呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式