为了账号安全,请及时绑定邮箱和手机立即绑定

添加到100的随机数:matlab

添加到100的随机数:matlab

添加到100的随机数:matlab快速提问,谢谢你提前帮忙-如果我用; 100*rand(9,1)将这9个数字加到100的最佳方法是什么?我想要在0到100之间的9个随机数,加起来等于100。是否有一个内置的命令可以这样做,因为我似乎找不到它。
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

一种简单的方法是在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 = 5
13-5 = 8
13-13 = 0
20-13 = 7
38-20 = 18
57-38 = 19
95-57 = 38
96-95 = 1
100-96 = 4

这里有九个数字,等于100:0,1,4,5,7,8,18,19,38。我得到一个零和一个只是一个奇怪的运气。


查看完整回答
反对 回复 2019-07-01
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

现在给出正确的答案还为时不晚。

让我们讨论在[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);


查看完整回答
反对 回复 2019-07-01
  • 3 回答
  • 0 关注
  • 864 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信