|
максимум без if
|
|||
---|---|---|---|
#18+
напомните, есть ли алгоритм вычисления максимума из двух чисел без if ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 20:07 |
|
максимум без if
|
|||
---|---|---|---|
#18+
+ - * / and or xor ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 20:11 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Придумать-то можно, но зачем? Псевдокод: Код: sql 1. 2. 3. 4. 5. 6.
sign можно реализовать без if, например, сдвигами и бинарными операциями. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 20:39 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Поправка: Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 20:40 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
Код: plaintext 1.
Код: plaintext 1. 2. 3. 4. 5. 6.
Ну а если Си не любишь, то можно и на SQL сделать. Код: sql 1.
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 20:41 |
|
максимум без if
|
|||
---|---|---|---|
#18+
White Owl Код: sql 1.
Да, это не if, там и буковок-то таких нету! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 20:43 |
|
максимум без if
|
|||
---|---|---|---|
#18+
andreymxнапомните, есть ли алгоритм вычисления максимума из двух чисел без if А на брейнфаке генератор случайных чисел слабо? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 21:59 |
|
максимум без if
|
|||
---|---|---|---|
#18+
MaytonsFuckenMaximumFunction.lisp Код: python 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 22:26 |
|
максимум без if
|
|||
---|---|---|---|
#18+
(a + b + abs(a-b)) / 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 00:46 |
|
максимум без if
|
|||
---|---|---|---|
#18+
На самом деле все предложенные алгоритмы содержат неявный if. Если вы видите знак больше или меньше, то мы уже говорим о каком-либо условии. Казалось бы вариант предложенный Яростным мечом подходит, но и это не так. Ибо вычисление модуля подразумевает условие, кроме того, модуль не был в числе допустимых операций andreymx + - * / and or xor потому, ответа на поставленный вопрос никто пока не дал. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 02:51 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Можно было сделать так: Код: plaintext 1.
если а больше b то t>=1, в противном случае 0. Нужно установить t в 1, в том случае, если t>1. Это можно сделать следующим образом Код: plaintext 1.
если t было равно 0, то получим 2, если больше нуля, то получим число вида , это число не является целым, потому следующей операцией будет следующая Код: plaintext 1.
Если t было равно 2, то мы получим 0, в противном случае, мы получим остаток 1. Таким образом, если a>b, то t=1, в противном случае, 0. Выражение вида Код: plaintext 1.
даст вам то, что требуется. PS скорее всего, в реализации операции % тем или иным образом присутствует условие, но в данном случае, оно менее явное чем в остальных случаях. И тут я так-же не использовал только те операции что вы предлагали. Код не тестировал, проверьте сами ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 03:14 |
|
максимум без if
|
|||
---|---|---|---|
#18+
miksoftПридумать-то можно, но зачем? Псевдокод: Код: sql 1. 2. 3. 4. 5. 6.
sign можно реализовать без if, например, сдвигами и бинарными операциями. тогда уже Код: plaintext 1.
так читабельней. Может и можно реализовать, не помню. Надеюсь автор доведёт дело до конца, и напомнит как это сделать. Хотя тут и думать не нужно, это элементарно, вот так: Код: plaintext 1. 2. 3. 4.
данная функция вернёт 1 если число отрицательно и 0 в противном случае, таким образом, получим следующий результирующий код Код: plaintext 1. 2.
В общем мысль и идея понятны, тестируйте, не проверял этот код. PS но опять таки, в данном коде присутствуют лишние операции ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 03:26 |
|
максимум без if
|
|||
---|---|---|---|
#18+
SashaMercuryНа самом деле все предложенные алгоритмы содержат неявный if. Если вы видите знак больше или меньше, то мы уже говорим о каком-либо условии. Казалось бы вариант предложенный Яростным мечом подходит, но и это не так. Ибо вычисление модуля подразумевает условие, кроме того, модуль не был в числе допустимых операций abs() можно реализовать так sqrt(x*x) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:11 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Dima T, покажите как вы реализуете корень :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:13 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Второй вариант получить множитель 1 для положительного, -1 для отрицательного, т.е. sign() в двоичном представлении 00000001 и 11111111 соответственно, старший бит это знак для типов со знаком. далее Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:39 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
явный if ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:48 |
|
максимум без if
|
|||
---|---|---|---|
#18+
SashaMercuryDima T, покажите как вы реализуете корень :) Корень можно вычислить как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:49 |
|
максимум без if
|
|||
---|---|---|---|
#18+
SashaMercury Код: plaintext 1.
явный if а так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:50 |
|
максимум без if
|
|||
---|---|---|---|
#18+
andreymxнапомните, есть ли алгоритм вычисления максимума из двух чисел без if А вообще, по идее на scheme просто Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:54 |
|
максимум без if
|
|||
---|---|---|---|
#18+
XDiaBLoSashaMercuryDima T, покажите как вы реализуете корень :) Корень можно вычислить как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
вы используете тернарный оператор, значит используете if ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:55 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Dima T Код: plaintext 1. 2. 3.
Кстати можно обойтись 8-ю строчками ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:55 |
|
максимум без if
|
|||
---|---|---|---|
#18+
SashaMercuryвы используете тернарный оператор, значит используете if Да там и if есть самый настоящий. Но по сабжу я уже ответил Программа:(max 5 3) Результат: 5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:56 |
|
максимум без if
|
|||
---|---|---|---|
#18+
Dima TDima T Код: plaintext 1. 2. 3.
Кстати можно обойтись 8-ю строчками а чем это лучше предложенного кода ранее SS Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 07:58 |
|
максимум без if
|
|||
---|---|---|---|
#18+
XDiaBLoSashaMercuryвы используете тернарный оператор, значит используете if Да там и if есть самый настоящий. Но по сабжу я уже ответил Программа:(max 5 3) Результат: 5 а вы посмотрите как в Scheme реализована эта функция :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 08:02 |
|
максимум без if
|
|||
---|---|---|---|
#18+
SashaMercuryа чем это лучше предложенного кода ранее SS Код: plaintext 1. 2. 3. 4.
Тем что я его не заметил выше :) Только правильно так Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2014, 08:05 |
|
|
start [/forum/topic.php?fid=16&fpage=12&tid=1340042]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
106ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 220ms |
0 / 0 |