if转java_java – 将If-Else语句转换为公式

该博客讲述了如何将带有嵌套条件的Java代码转换为线性方程形式,通过signum函数处理逻辑,以解决复杂if结构中的问题。作者以实例演示如何通过建立和求解方程组找到常数A、B、C和D,以适应不同边界条件。
摘要由CSDN通过智能技术生成

我的代码如下:

`if (a <= 10){

z = 5;

} else {

z = -1;

}`

我发现当s(10 – a)= | 10 – a |时/(10-a)输出1或-1.如果a 10.

然后,我只求解线性方程z = s(10-a)* m b,找到常数m和b.

5 = 1 * m b且-1 = -1 * m b

哪个输出b = 2,m = 3.

然后,这可以建模为z = 3 * s(10-a)2.

现在这个问题变得更加棘手.如果我在嵌套的if语句中有两个变量怎么办?如:

`if (a <= 10){

if(b <= 3){

z = 3;

} else {

z = 1;

}

} else {

if(b <= -5){

z = -11;

} else {

z = 4;

}

}`

我试图用另一系列线性方程来解决这个问题.

> 3 = A * s(10-a)B * s(3-b)C

> 1 = A * s(10-a)B * s(3-b)C

> -11 = A * s(10-a)D * s(-5-b)C

> 4 = A * s(10-a)D * s(-5-b)C

以A,B,C,D为常数.但是,这并没有给我正确的答案.我究竟做错了什么?

解决方法:

可以使用以下技巧将if语句转换为公式:如果if语句为true,则需要查找公式为1,否则为0.我们可以使用signum函数:

f(x, y) = (sign(y - x) + 1) / 2

如果x f(a, 10) * (f(b, 3) * 3 + g(b, 3) * 1) + g(a, 10) * (f(b, -5) * -11 + g(b, -5) * 4)

标签:java,algorithm,math

来源: https://codeday.me/bug/20190527/1165656.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值