Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以使为on-topic

6年前关闭。



Improve this question





我们应该创建一个程序,用户将输入x,y和z值以及他们要查找的点数,然后该程序将获取x,y和z值并创建一个范围(从-xlength到+ xlength,-ylength到+ ylength,-zlength到+ zlength)。在该范围内,程序将返回存储在3D数组中的随机3D数据点(无论用户想要多少)。

我对如何从3D数组中获取范围并随机化其中的一个数字然后输出数据点感到困惑。
(对不起,如果没有什么意义,我真的很困惑自己)

有人可以向我解释需要做些什么,或者即时消息应该如何正确使用3D阵列来完成此工作?

PS。我正在使用java

最佳答案

我首先要简单地开始:解决一维情况,然后将您的解决方案扩展到涵盖所有3维。

您知道用户会为您提供尺寸范围,我们称其为xlength。您知道数组中必须有2 * xlength个数字。您还知道数组索引必须从0开始。因此您必须有一个映射,[0..2 * xlength]中的元素应映射到[-xlength..xlength]

因此,考虑到这一点,让我们解决这个问题:

int xlength = 5;/* input by user */
int[] items = new int[xlength * 2];
Random r = new Random();

for (int i = 0, i < numberOfElementsToChoose; i++)
{
    int index = r.nextInt(items.length); // choose a random index

    // print the element, index will be index - xlength (to map from 0 to 2 * xlength to -xlength to xlength)
}

08-28 22:04