Matlab如何实现以一定的概率选择
来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/06 13:37:15
Matlab如何实现以一定的概率选择
比如我有4个数,选择第一个的几率是10%,选择第二个的几率是20%,选择第三个的概率是30%,选择第四个的是40%,那么我进行依次按概率选择,如何确定我选择了哪一个数?
楼上的对我举例的问题是可以解决,但是问题是我的概率不是刚好以整数形式出现,比如是12.87%之类的,这就没办法解决了!
比如我有4个数,选择第一个的几率是10%,选择第二个的几率是20%,选择第三个的概率是30%,选择第四个的是40%,那么我进行依次按概率选择,如何确定我选择了哪一个数?
楼上的对我举例的问题是可以解决,但是问题是我的概率不是刚好以整数形式出现,比如是12.87%之类的,这就没办法解决了!
这个其实很简单,我给你举个例子,因为不清楚你实际上要具体干什么:
a=round(10*rand(1,1)+1)
switch a
case 1
disp('x1')
case 2,3
disp('x2')
case 4,5,6
disp('x3')
otherwise
disp('x4')
end
原理,随机生成1到10之间的数,每一个数字生成的概率都是10%
OK,如果有2个呢?20%
实际运行就可以看出,第四个X4出现概率最高,他概率高嘛.
PS :暂时我也没有好办法,但是临时方案还是有的,12.87%=1287/10000,明白我的意思么?这个时候使用for循环,不使用switch case结构;轻松拿下.
a=round(10*rand(1,1)+1)
switch a
case 1
disp('x1')
case 2,3
disp('x2')
case 4,5,6
disp('x3')
otherwise
disp('x4')
end
原理,随机生成1到10之间的数,每一个数字生成的概率都是10%
OK,如果有2个呢?20%
实际运行就可以看出,第四个X4出现概率最高,他概率高嘛.
PS :暂时我也没有好办法,但是临时方案还是有的,12.87%=1287/10000,明白我的意思么?这个时候使用for循环,不使用switch case结构;轻松拿下.