【问题标题】:How to generate a random vector in octave that sums up to a constant?如何在八度音阶中生成一个总和为常数的随机向量?
【发布时间】:2014-03-20 00:16:42
【问题描述】:

我想生成一个随机向量,使元素加起来为 1。在 Octave 中可以吗?

我有一堆相互排斥的事件(比如 100 个),我想为它们分配随机概率(非零并且希望具有正态分布),使它们的概率总和为 1。有没有办法做那个是八度的?

我知道rand(1,100),但我不知道是否可以确保这些值总和为一个常数。

【问题讨论】:

    标签: octave probability


    【解决方案1】:

    生成一个随机向量。总和为S。将所有元素除以S - 现在总和为1

    x = rand(1, 100)
    x /= sum(x)
    sum(x)
    # ==> 1
    

    编辑:添加代码,重命名混淆变量。

    【讨论】:

    • 不,不会。唯一的保证是总和小于N
    • @Ankit:你是说N / N < 1
    • 用八度音阶试试这个,看看它是否达到 1 sum(rand(1,12)/12)。 N 个元素的随机向量之和不会等于 N。
    • 我没有说除以12。我说除以向量的总和,不管它是什么。
    • 是的,我可以看到我对变量名称的选择并不十分出色。 :)
    猜你喜欢
    • 2013-05-28
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多