gpt4 book ai didi

在没有条件比较的情况下数学地找到最大值

转载 作者:行者123 更新时间:2023-12-03 13:07:28 24 4
gpt4 key购买 nike

- - - - - 更新 - - - - - -

到目前为止,codymanix 和 moonshadow 提供了很大的帮助。我能够使用方程式解决我的问题,而不是使用右移除以 29。因为 32 位有符号 2^31 = 溢出到 29。哪个有效!

PHP 中的原型(prototype)

$r = $x - (($x - $y) & (($x - $y) / (29)));

LEADS 的实际代码(每行只能执行一个数学函数!!!啊啊啊啊!!!)
DERIVDE1 = IMAGE1 - IMAGE2;
DERIVED2 = DERIVED1 / 29;
DERIVED3 = DERIVED1 AND DERIVED2;
MAX = IMAGE1 - DERIVED3;

----------原始问题---------
由于我的应用程序的限制,我认为这不太可能,但我认为值得一试。

我会尽量让这个简单。我需要在无法使用 IF 或任何条件语句的情况下找到两个数字之间的最大值。

为了找到 MAX 值,我只能执行以下功能
Divide, Multiply, Subtract, Add, NOT, AND ,OR

假设我有两个数字
A = 60;
B = 50;

现在,如果 A 总是大于 B,那么找到最大值会很简单
MAX = (A - B) + B;
ex.
10 = (60 - 50)
10 + 50 = 60 = MAX

问题是 A 并不总是大于 B。我无法使用我正在使用的脚本应用程序执行 ABS、MAX、MIN 或条件检查。

有没有办法使用上面的有限操作来找到一个非常接近最大值的值?

最佳答案

finding the maximum of 2 variables:
max = a-((a-b)&((a-b)>>31))
其中 >> 是按位右移(也称为 SHR 或 ASR,取决于符号性)。

您使用数字减一的位数而不是 31。

关于在没有条件比较的情况下数学地找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375882/

24 4 0
文章推荐: javascript - Ember.js 和 QUnit : "TypeError: Object # has no method ' getHandler'"when calling visit