2013-04-30 41 views
0

如何在具有邊緣E的N維立方體 的表面上生成隨機均勻點?N維立方體表面上的點

對於3D情況下,很容易:

1-pick 2 dimensions from x, y, z 
2-generate 2 random points 
3-generate 0 or 1 for the third-dimension 

我可以概括爲這樣n維? 謝謝!

回答

2

在Java中,這可能是這樣的:

int dimension = 5; 
int number = 10; 

Vector<Double> v = new Vector<Double> (dimension); 

for (int n = 0; n < number; n++) { 
    v.clear(); 

    for (int m = 0; m < dimension; m++) v.add(Math.random()); // [0..1] 

    v.set((int) Math.ceil(Math.random() * dimension) - 1, // random position 
       Math.ceil(Math.random() * 2) - 1);  // 0 or 1 

    System.out.println("Vector: " + v); 
} 

不是很好的優化,但工作;-)

乾杯!

+0

這就等於我的僞代碼想法?謝謝 – Fernando 2013-04-30 20:00:27

+0

是的,我希望如此;)請感覺建議做一些進一步的實驗。 – Trinimon 2013-04-30 20:03:48