添加到100的随机数:matlab

添加到100的随机数:matlab

快速提问,谢谢你提前帮忙-

如果我用;

 100*rand(9,1)

将这9个数字加到100的最佳方法是什么?

我想要在0到100之间的9个随机数,加起来等于100。

是否有一个内置的命令可以这样做,因为我似乎找不到它。


江户川乱折腾
浏览 865回答 3
3回答

哆啦的时光机

一种简单的方法是在0到100之间选择8个随机数。将0和100添加到列表中,给出10个数字。把它们分类。然后输出每一对连续数字之间的差异。例如,下面是0到100之间的8个随机数:96, 38, 95, 5, 13, 57, 13, 20因此,添加0和100并排序。0, 5, 13, 13, 20, 38, 57, 95, 96, 100现在减去:5-0 = 513-5 = 813-13 = 020-13 = 738-20 = 1857-38 = 1995-57 = 3896-95 = 1100-96 = 4这里有九个数字,等于100:0,1,4,5,7,8,18,19,38。我得到一个零和一个只是一个奇怪的运气。

慕雪6442864

现在给出正确的答案还为时不晚。让我们讨论在[0.1]范围内取样X1.XN,使和(X1,.,XN)等于1。这叫做Dirichlet分布下面是从中获取的代码。最简单的情况是,当所有参数等于1时,X1,…,XN的所有边际分布都是U(0,1)。一般情况下,当参数与1s不同时,边际分布可能会出现峰值。这里 ---------------------Dirichlet是单位尺度γ随机变量的向量,由它们的和归一化.因此,如果没有错误检查,这将使您了解:a = [1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0]; // 9 numbers to samplen = 10000;r = drchrnd(a,n)function r = drchrnd(a,n)   p = length(a);   r = gamrnd(repmat(a,n,1),1,n,p);   r = r ./ repmat(sum(r,2),1,p);
打开App,查看更多内容
随时随地看视频慕课网APP