在 table 中插值
Interpolating in a table
以下是 table 我想从中插入值
+---+----+----+----+----+ . . . .
| | 20 | 30 | 40 | 50 | . . . .
+---+----+----+----+----+ . . . .
|100| 78 | 89 | 92 | 95 | . . . .
+---+----+----+----+----+ . . . .
|200| 62 | 76 | 88 | 91 | . . . .
+---+----+----+----+----+ . . . .
|300| 59 | 68 | 74 | 83 | . . . .
+---+----+----+----+----+ . . . .
|400| 48 | 50 | 65 | 72 | . . . .
+---+----+----+----+----+ . . . .
用户输入速度和温度值。
我知道如何在数学上做这个,但是把它带到 java 只是难倒了我。
所以如果用户输入速度200(没有250,要么200要么300)和温度34(只能输入整数)
数学上我会做;
+---+----+----+----+----+ . . . .
| | | 30 | 34 | 40 | . . . .
+---+----+----+----+----+ . . . .
|200| | 76 | x | 88 | . . . .
+---+----+----+----+----+ . . . .
(76 - 88) /10 = 1.2
1.2 * (34-30) = 4.8
4.8 + 76 = 80.8 = x
我们应该得到 80.8 的答案
编辑 我不是一个懒惰的混蛋,不会像某些人认为的那样期望你们为我完成所有工作。我不只是在这里发布我的问题并期待一个完整的工作代码!关于如何处理这个问题的任何 IDEAS 都是我要问的,就像我上面提到的那样。谢谢!
使用二维数组存储您的 table。使用 Scanner
读取用户输入。根据输入计算行索引和列索引。从 2D-Array 中获取相应的数字然后进行计算。
int[][] table = {
{78,89,92,95},
{62,76,88,91},
{59,68,74,83},
{48,50,65,72}
};
Scanner scanner = new Scanner(System.in);
System.out.println("Enter speed:");
int speed = scanner.nextInt();
System.out.println("Enter temperature:");
int temp = scanner.nextInt();
int row = (speed / 100) - 1;
int col = (temp / 10) - 2;
float a = table[row][col];
float b = table[row][col + 1];
float result = a + (temp % 10) * (b - a) / 10;
System.out.println(result);
以下是 table 我想从中插入值
+---+----+----+----+----+ . . . .
| | 20 | 30 | 40 | 50 | . . . .
+---+----+----+----+----+ . . . .
|100| 78 | 89 | 92 | 95 | . . . .
+---+----+----+----+----+ . . . .
|200| 62 | 76 | 88 | 91 | . . . .
+---+----+----+----+----+ . . . .
|300| 59 | 68 | 74 | 83 | . . . .
+---+----+----+----+----+ . . . .
|400| 48 | 50 | 65 | 72 | . . . .
+---+----+----+----+----+ . . . .
用户输入速度和温度值。
我知道如何在数学上做这个,但是把它带到 java 只是难倒了我。
所以如果用户输入速度200(没有250,要么200要么300)和温度34(只能输入整数) 数学上我会做;
+---+----+----+----+----+ . . . .
| | | 30 | 34 | 40 | . . . .
+---+----+----+----+----+ . . . .
|200| | 76 | x | 88 | . . . .
+---+----+----+----+----+ . . . .
(76 - 88) /10 = 1.2
1.2 * (34-30) = 4.8
4.8 + 76 = 80.8 = x
我们应该得到 80.8 的答案
编辑 我不是一个懒惰的混蛋,不会像某些人认为的那样期望你们为我完成所有工作。我不只是在这里发布我的问题并期待一个完整的工作代码!关于如何处理这个问题的任何 IDEAS 都是我要问的,就像我上面提到的那样。谢谢!
使用二维数组存储您的 table。使用 Scanner
读取用户输入。根据输入计算行索引和列索引。从 2D-Array 中获取相应的数字然后进行计算。
int[][] table = {
{78,89,92,95},
{62,76,88,91},
{59,68,74,83},
{48,50,65,72}
};
Scanner scanner = new Scanner(System.in);
System.out.println("Enter speed:");
int speed = scanner.nextInt();
System.out.println("Enter temperature:");
int temp = scanner.nextInt();
int row = (speed / 100) - 1;
int col = (temp / 10) - 2;
float a = table[row][col];
float b = table[row][col + 1];
float result = a + (temp % 10) * (b - a) / 10;
System.out.println(result);