matlab 怎么表示随机数,MATLAB怎么生成一组和为定值的随机数

本帖最后由 kastin 于 2015-7-24 15:25 编辑

由于楼主生成的是3个随机数满足和为1,可以采用动态生成法:即先生成1个随机数x,然后生成一个1个0到1-x范围内的随机数y,最后生成一个0到1-x-y范围内的随机数即可。

当n比较大的时候,可以用拒绝法:即生成很多组n-1个随机数,然后分别用1减去他们的和,得到的数如果小于等于零,就舍去(拒绝);保留剩余大于0的那些n元组随机数。

补充资料:

接受-拒绝抽样(Acceptance-Rejection sampling)

原文链接:http://blog.csdn.net/xianlingmao/article/details/7768833

又简称拒绝抽样,直观地理解,为了得到一个分布的样本,我们通过某种机制得到了很多的初步样本,然后其中一部分初步样本会被作为有效的样本(即要抽取的分布的样本),一部分初步样本会被认为是无效样本舍弃掉。这个算法的基本思想是:我们需要对一个分布f(x)进行采样,但是却很难直接进行采样,所以我们想通过另外一个容易采样的分布g(x)的样本,用某种机制去除掉一些样本,从而使得剩下的样本就是来自与所求分布f(x)的样本。

它有几个条件:1)对于任何一个x,有f(x)<=M*g(x); 2) g(x)容易采样;3) g(x)最好在形状上比较接近f(x)。具体的采样过程如下:

1. 对于g(x)进行采样得到一个样本xi, xi ~ g(x);

2. 对于均匀分布采样 ui ~ U(a,b);

3. 如果ui<= f(x)/[M*g(x)], 那么认为x


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部