gpt4 book ai didi

java - 具有随机整数的距离公式。未产生输出

转载 作者:行者123 更新时间:2023-12-01 12:13:19 25 4
gpt4 key购买 nike

所以,我想做的是计算两点之间的距离。我得到了种子和要运行的模拟次数。我的代码可以运行,但不起作用?随机生成器不会生成数字并将其添加到数组中。我使用 r 为随机生成器播种,并使用 n 运行模拟。

编辑:在我通过控制台输入输入后,程序陷入循环它卡在行 X1[i] = rand.nextInt(1000); 处。

输入示例

2 --- t(待测试的巴黎数)

12087 400 --- r, n(r = 种子变量的数量,n = 运行 rand 的次数)

7418 978 --- r, n(第二个 r 和 n)

示例输入的示例输出 --- (这来自书中)

553.994525.789

通过这些数字,我们使用随机生成器来生成 X1、X2、Y1、Y2。这些数字将用于距离计算。

import java.io.*;
import java.util.*;

public class Distance {

public static void main(String[] args) {
double distance = 0; // initiates all numbers needed and sets to 0)
int r[] = new int[10];
int n[] = new int[10];
int X1[] = new int[10]; // Array initiations
int X2[] = new int[10];
int Y1[] = new int[10];
int Y2[] = new int[10];

Scanner q = new Scanner(System.in);

int t = q.nextInt(); // Scans in t (Number of lines to follow)

for (int i = 0; i < t; i++) {
r[i] = q.nextInt(); // Scans in r (Number of Random Objects)
n[i] = q.nextInt(); // Scans in n (Number of Simulations)
}

for (int i = 0; i < n[i]; i++) {
Random rand = new Random(r[i]);
X1[i] = rand.nextInt(n[i]); // fills index(s) i with Random number
// in X1 values
X2[i] = rand.nextInt(n[i]); // fills index(s) i with Random number
// in X2 values
Y1[i] = rand.nextInt(n[i]); // fills index(s) i with Random number
// in Y1 values
Y2[i] = rand.nextInt(n[i]); // fills index(s) i with Random number
// in Y2 values

distance = Math.sqrt(Math.pow((X2[i] - X1[i]), 2)
+ Math.pow((Y2[i] - Y1[i]), 2));
}
System.out.println(distance);
}
}

最佳答案

在第二个循环中,0 小于 t,因此循环控制变量没有执行任何操作。您需要将其更改为 i 小于 t,以便当 i 到达 t 时循环将结束。

这解决了您的无限循环问题,但我不确定您的程序是否正常工作。在第二个循环中,您每次都会替换 r 和 n,因此循环没有任何目的,因为 r 和 n 只会存储最后的输入。

使用以下代码修复此方法

        for(int i = 0; i<t; i++) {
r = q.nextInt(); //Scans in r (Number of Random Objects)
n = q.nextInt(); //Scans in n (Number of Simulations)
}

如果我正确理解你的问题,我认为你正在尝试为每一对使用不同的 r 和 n 。为了实现这一点,我将使用一个数组来存储所有不同的 r 和 n 值。您的 print 语句也在最后一个 for 循环之外,因此您只能看到最后一对的结果。

import java.util.*;

公开课帮助{

public static void main(String[] args)
{

double distance = 0; //initiates all numbers needed and sets to 0)
int r[];
int n[];
int X1[];
int X2[];
int Y1[];
int Y2[];

Scanner q = new Scanner (System.in);

int t = q.nextInt(); //Scans in t (Number of lines to follow)

r = new int[t];
n = new int[t];
X1 = new int[t];
X2 = new int[t];
Y1 = new int[t];
Y2 = new int[t];

for(int i = 0; i<t; i++) {
r[i] = q.nextInt(); //Scans in r (Number of Random Objects)
n[i] = q.nextInt(); //Scans in n (Number of Simulations)
}

for(int i = 0; i < t; i++)
{
Random rand = new Random (r[i]);
X1[i] = rand.nextInt(n[i]); // fills index(s) i with Random number in X1 values
X2[i] = rand.nextInt(n[i]); // fills index(s) i with Random number in X2 values
Y1[i] = rand.nextInt(n[i]); // fills index(s) i with Random number in Y1 values
Y2[i] = rand.nextInt(n[i]); // fills index(s) i with Random number in Y2 values

distance = Math.sqrt( Math.pow((X2 [i] - X1 [i] ), 2) + Math.pow((Y2 [i] - Y1 [i] ), 2) );
System.out.println(distance);
}

}

}

关于java - 具有随机整数的距离公式。未产生输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27156202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com