gpt4 book ai didi

java - 为什么二维数组的元素会重复?

转载 作者:行者123 更新时间:2023-11-30 05:22:39 26 4
gpt4 key购买 nike

int[] speed = {25, 30, 35, 40, 45};//MPH
double[] deg = {25, 30, 35, 40, 45, 50};//deg

int rows = speed.length;
int columns = deg.length;

for(int i = 0; i < rows; i++)
{
for(int j = 0; j < columns; j++)
{
trajectory[i][j] = ((Math.pow((speed[i] / 2.237), 2) * Math.sin(2 * Math.toRadians(deg[j]))) / gravity);
}
}

for(int i = 0; i < rows; i++)
{
System.out.printf("%5d ", speed[i]);
for(int j = 0; j < columns; j++)
{
System.out.printf("%9.2f", trajectory[i][j]);
}
System.out.println();
}
/* 25 9.76 11.04 11.98 12.55 12.74 12.55
30 14.06 15.89 17.25 18.07 18.35 18.07
35 19.14 21.63 23.47 24.60 24.98 24.60
40 24.99 28.25 30.66 32.13 32.63 32.13
45 31.63 35.76 38.80 40.66 41.29 40.66
*/

为什么输出在第 6 列中重复第 4 列,我可以获得修复该问题的帮助吗?

代码是用不同的起始角度和初始速度值计算R(θ) = Vo^2 sin(2θ)/g。

最佳答案

第 4 列和第 6 列的值可以不同,只是 Math.sin(2 * Math.toRadians(deg[j])) 会为 Math.sin 产生不同的值(2 * Math.toRadians(40))Math.sin(2 * Math.toRadians(50))

但是,

sin(2*θ) == sin(180-2*θ) == sin(2*(90-θ))

因此,对于 θ == 40 列和 θ == 50 列,您会得到相同的结果。

你的计算没有任何问题。正如您可以阅读的那样 here ,如果 θ 为 45 度,则获得最大距离,因此对于 40 度和 50 度,您获得相同的距离(略小于最大距离)也就不足为奇了。

关于java - 为什么二维数组的元素会重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59285157/

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