【发布时间】:2016-10-01 08:40:03
【问题描述】:
更具体地说,给定一个自然数 d,我如何在 R^d 中生成随机向量,使得每个向量 x 都具有欧几里得范数
通过 numpy.random.rand(1,d) 生成随机向量是没有问题的,但是对于不小的 d,这种具有 norm
编辑:回复:沃尔特的评论,是的,我正在寻找 R^d 中单位球中向量的均匀分布。
【问题讨论】:
-
您还应该定义您期望的概率分布。我猜是欧几里得空间中的均匀。
-
您可以根据约束减少后续数字的空间。对于最基本的情况,如果 d=2,并且第一个数字是 0.4,则在区间 [0, sqrt(1-0.4**2)] 中生成第二个?
-
@ayhan:这会不会使得最后几个维度不太可能是高数字(因为这需要所有以前的维度都很小),从而损害随机性?
-
"几乎所有的高维空间都离中心“很远”。换句话说,高维单位超立方体可以说几乎完全由“角”组成超立方体的,几乎没有“中间”——en.wikipedia.org/wiki/Curse_of_dimensionality
-
@lamb_da_calculus 你是对的,第一个数字不应该来自均匀分布。