Re: Ускорение поиска максимума...
- From
- Sergey Andrianov (2:5020/1507.400)
- To
- Alexandr A. Redchuck
- Date
- 2002-12-30T22:59:32Z
- Area
- RU.ALGORITHMS
Здравствуй, Alexandr!
Однажды 29-Dec-02 в 00:40 Alexandr A. Redchuck (via gate)
написал Sergey Andrianov по поводу
-=- Re: Ускорение поиска максимума... -=-
AAR> From: "Alexandr A. Redchuck" <real@real.kiev.ua>
AAR> 26-Dec-02 23:13 Sergey Andrianov wrote to Alexander Chelmodeev:
AC>>> max:= (max+ar[n] + Abs(max-ar[n])) div 2 ;
AC>>> min:= (min+ar[n] - Abs(min-ar[n])) div 2 ;
AC>>> end;
SA>> А как ты собираешься реализовать Abs() без сравнений? На поразрядной
SA>> логике что ли? :)
AAR> Именно на ней.
AAR> Для представления целых знаковых чисел с дополнением до 2:
; выяснение условия val<0
AAR> <вспомогательный регистр> := <расширение знака рабочего регистра>
; "услованая инверсия"
AAR> <рабочий регистр> := <рабочий регистр> XOR <вспомогательный регистр>
; "условный инкремент"
AAR> <рабочий регистр> := <рабочий регистр> - <вспомогательный регистр>
Это все очевидно. На самом деле вопрос даже не в этом, а в том, что ни арифметических, ни логических операций над исследуемыми данными может попросту не существовать. Дан массив данных, дана процедура, которая, получая два элемента на входе, может принимать одно из трех значений: больше, меньше и равно. И никаким другим способом определить, что больше, а что меньше, нельзя. Требуется разработать алгоритм, который бы обеспечивал минимальное количество вызовов этой процедуры.
До свидания, в 22:54 MSK
Sergey
---
* Origin: Sergiev Posad (2:5020/1507.400)