gpt4 book ai didi

java - 在Java中,在指定域之间镜像数字

转载 作者:行者123 更新时间:2023-12-01 17:22:24 24 4
gpt4 key购买 nike

我需要用 Java 语言对已知域(边界是代数数)进行镜像。

域位于这两个数字之间,其中 50 是镜像(必须排除 50,50 = 50)!镜像需要是双向的(参见示例)。

0 ________ 50 ________ 100

我想要实现的是这个

例如:

double x = 20; //x is my input number
double mirrorX = newnumber_mirrored; //mirrorX is the number mirrored in the specified domain, so if the x is 20, the output must be 80.

//other examples:
//input x = 45, output = 55
//input x = 48, output = 52
//input x = 50, output = 50
//input x = 50.1, output = 49.9
//input x = 67.4, output 32.6

如何在 Java 中实现此目的?可以是 1 位或 2 位小数的精度,也可以是全精度。

最佳答案

double x = 20; //x is my input number
double mirrorX = 100 - x;

或者,一般来说,对于域a ... b:

double x = 45;
double a = 30;
double b = 100;
double mirrorX = (a + b) - x; // => 85

如何到达那里:

我们的号码排列如下:

a             mirror      x      b

mirror 位于 ab 之间,因此:mirror = (a + b)/2

我们希望镜像的xmirror具有相同的距离,但方向相反。到mirror的距离是(x -mirror),我们可以将x表示为mirror + (x -mirror) >。改变方向会得到mirror - (x -mirror),这是我们想要的结果,现在可以对其进行转换:

x_mirrored = mirror - (x - mirror)
x_mirrored = mirror - x + mirror
x_mirrored = 2 * mirror - x
x_mirrored = 2 * ((a + b) / 2) - x
x_mirrored = (a + b) - x

关于java - 在Java中,在指定域之间镜像数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17628620/

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