繁体   English   中英

N维立方体表面上的点

[英]Points on surface of N-dimensional cube

如何在边缘E的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维吗? 谢谢!

在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);
}  

没有很好地优化,但工作;-)

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM