-2

如果用户输入一个值 x yz坐标,需要采取哪些步骤来创建一个范围 from -x/y/zto+x/y/z?是否有一个函数可以给出该范围内的数字,即使输入了一个 double?

这是我的代码到目前为止我还没有完成,我不确定它是否正确。在获得 x,y,z 点和用户想要的数据点数后,它将打印 n 个点,其中随机点 (x, y, z) x, y, z 位于从 -x 到x等

    import java.io.*;

public class MultiDimArray
{

public static void main (String [] args) throws IOException
{
BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in));// Buffered Reader reads the number inputed
double range;

System.out.println("How many points do you want returned? ");
String numPointsA = myInput.readLine();
int numPoints = Integer.parseInt(numPointsA);

System.out.println("Enter X length: ");
String xlengthA = myInput.readLine();
double xlength = Double.parseDouble(xlengthA);

System.out.println("Enter Y length: ");
String ylengthA = myInput.readLine();
double ylength = Double.parseDouble(ylengthA);


System.out.println("Enter Z length: ");
String zlengthA = myInput.readLine();
double zlength = Double.parseDouble(zlengthA);


int[][][][]  dataPoint  =  new int[3][xlength][ylength][zlength];

for (int i = 0; i < (xlength * 2); i++){
 range = (0 -( xlength - i) + 1);
 System.out.println(range);
 }
for (int i = 0; i < (ylength * 2); i++){
 range = (0 -( ylength - i) + 1);
 }
for (int i = 0; i < (zlength * 2); i++){
 range = (0 -( zlength - i) + 1);
 }


}
}
4

2 回答 2

1

如果您想包含所有小数,则范围是无限的,否则您可以手动执行此操作。

for (int i=-x; i<=x; i++) 操作(i, y, z);

您的问题的另一个解决方案是您不生成范围。

您只需存储这些值 xy 和 z。

然后,当您需要测试一个数字是否在范围内时,您可以使用 if 语句轻松完成。

我的意思是这是设计解决方案的错误方法。尝试以另一种方式获得您想要的值。逆向工程之类的东西。然后您测试这些值是否在范围内。

发布您的问题。那么我们可以帮助你。


在 -x 和 x 之间生成 numPointsA 随机数的代码:

Random random = new Random();
double start = -x;
double end = x;
for (int i=0;i<numPointsA;i++)
{
    double ran = random.nextDouble();
    double result = start + (ran * (end - start));
    System.out.println(result);
}
于 2013-09-16T21:37:21.417 回答
0

要获得 0 到 n-1 之间的随机数,请使用

Random rand = new Random();
int r = rand.nextInt(n);
于 2013-09-16T21:29:10.207 回答