【发布时间】:2013-04-30 19:23:43
【问题描述】:
如何在 N 维立方体的表面生成随机均匀的点 边 E?
对于 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 random geometry uniform
如何在 N 维立方体的表面生成随机均匀的点 边 E?
对于 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 random geometry uniform
在 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);
}
没有得到很好的优化,但可以工作;-)
干杯!
【讨论】: