Навигация по массиву котировок вне мета трейдера. Вопрос к программистам. - страница 3

 
alsu:

Какая разница? Можно ведь сказать, что и в двоичном не 0 и 1, а яблоки и арбузы. Как захотели, так и обозначили.

Как назвать - всё равно. А вот если надо организовать арифметические операции, то тому, кто попытается сделать это с помощью яблок и арбузов, я не позавидую.
Пример?
Попробуй перемножить многозначные римские числа. Попробуй вычесть из мЕньшего (римского) бОльшее. Попробуй поделить некратные римские числа. 
Яблоки и арбузы в арифметике отдыхают.
 
MikeM:

Как назвать - всё равно. А вот если надо организовать арифметические операции, то тому, кто попытается сделать это с помощью яблок и арбузов, я не позавидую.
Пример?
Попробуй перемножить многозначные римские числа. Попробуй вычесть из мЕньшего (римского) бОльшее. Попробуй поделить некратные римские числа. 
Яблоки и арбузы в арифметике отдыхают.

Попробуй записать, например, число 42 в троичной системе с помощью 0 +1 и -1, плюсы и минусы не мешаются?

Что сложнее сложить (и то, и другое троичная запись, варианты идентичны) +10-1-1+100-1 и 0-1+1+1-1 или 21002110 и 10221?

 

В варианте с плюсами и минусами придется запоминать заново таблицу сложения, например, что "0"+"0" получается "+1", а "0"+"+1" вообще "0-1"

ЗЫ на яблоках и арбузах я сложу быстрее, нда))

 
Предложи удобную систему кодирования отрицательных чисел с помощью 0-1-2 и я признаю свою неправоту
 
MikeM:
Предложи удобную систему кодирования отрицательных чисел с помощью 0-1-2 и я признаю свою неправоту

Наверное, удобнее всего будет как и в двоичном случае, т.е. в дополнительном коде. Каждая цифра n заменяется на 2-n, к полученному результату добавляем 1. Например (4-значное число) -0102 -> 2121 (т.е., дополнение до 3^N, в сумме имеем 2121 + 0102 = 10000), старший разряд будет знаковый. Как и в двоичном случае можно тогда операцию вычитания заменить на сложение с отрицатеьлным числом, а операции со знаковыми и беззнаковыми числами проводить одними и теми же устройствами.

 

Старший разряд - знаковый?

Допустим. Но как его интерпретировать? Знаков два, а значений разряда три. Куда девать третье значение? 

 
MikeM:
Предложи удобную систему кодирования отрицательных чисел с помощью 0-1-2 и я признаю свою неправоту


Так уже предложено, 0,1,2
 
MikeM:
Яблоки и арбузы в арифметике отдыхают.  

Без разницы чем изображать цифры. 
 

Ну если неэкономно, можно целый бит выделять на знак, если экономно -- диапазоны просто использовать. Вообще не проблема.

Вы мне лучше троичный поиск покажите.

 
TheXpert:

Ну если неэкономно, можно целый бит выделять на знак, если экономно -- диапазоны просто использовать. Вообще не проблема.

Вы мне лучше троичный поиск покажите.


А какие проблемы? В двоичном поиске массив на две части делим. В троичном на три, смотрим в какую треть значение попадает. Тут треть в которую попадает еще на три части делим и т.д.

Причина обращения: