簡體   English   中英

迭代所有長度為“L”的向量

[英]Iterate over all vectors of length `L`

如何迭代具有指定長度(例如單位長度)的d維的所有可能向量,其中delta是步長。


注意, delta可以非常小,例如單位向量的1e-3 d通常在[0,5]的范圍內,但這不是一個嚴格的限制!


愚蠢的方法是i in [0,N)使用delta*i for i in [0,N)的列表並生成所有可能的組合,例如在n中選擇n並選擇總和為1 但這似乎效率很低,我相信有更好的方法,我不知道。


鎬應至少接近均勻分布在表面上。

好吧,我想我找到了你需要的東西。 基本上,如果你選擇

X=(X1, X2, ..., Xn)/norm(X)

其中X1, X2,..., Xn是正態分布N(0,1)平均為0,標准偏差為1)和norm(X)是的L2(歐幾里德)范數X ,則保證了向量X均勻分布在n維單位球的表面上。

現在,既然你想要離散化,只需從二項式分布中繪制每個Xi (在極限我們知道它成為泊松分布,通過中心極限定理,收斂到高斯分布,見http:// www。 roe.ac.uk/japwww/teaching/astrostats/astrostats2012_part2.pdf ),你就完成了。 當然,您將在維度n獲得指數縮放,但我認為沒有任何其他方式,因為此類向量的數量隨維度呈指數級增長。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM