---------- Обновлено ------------Математически найти максимальное значение без условного сравнения
codymanix и moonshadow оказали большую помощь до сих пор. Я смог решить свою проблему, используя уравнения, вместо того, чтобы использовать правый сдвиг, разделенный на 29. Потому что с 32 битами, подписанными 2^31 = переполнение до 29. Это работает!
Прототип в PHP
$r = $x - (($x - $y) & (($x - $y)/(29)));
Фактический код для ВЫВОДАМИ (вы можете сделать только одну математическую функцию PER ЛИНИИ !!! Аааа !!!)
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;
Теперь, если А всегда больше, чем B, было бы легко найти максимальное значение
MAX = (A - B) + B;
ex.
10 = (60 - 50)
10 + 50 = 60 = MAX
Проблема A не всегда больше B. Я cann от выполнения ABS, MAX, MIN или условных проверок с помощью скриптового приложения, которое я использую.
Можно ли использовать ограниченную операцию выше, чтобы найти значение ОЧЕНЬ близко к максимальному?
Какой язык вы используете? –
Можете ли вы использовать побитовые операции? – Amok
«Теперь, если A всегда больше B, было бы просто найти максимальное значение« Ummm ... A? – bmb