Определение чётности числа в уравновешенной троичной системе

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

В продолжение топика: viewtopic.php?t=44
Mac Buster wrote:- Выдвинуто и проверено предположение о простом способе определения чётности числа в уравновешенной троичной систем счисления: чётное число содержит чётное количество ненулевых разрядов. На данный момент это предположение экспериментально подтвержено для всех чисел в диапазоне от 1 до 172 миллионов.
Сформулировано математическое доказательство достоверности данного предположения. На человеческом языке оно звучит примерно таким образом:

- Сумма и разность чётного количества нечётных чисел в результате представляет собой чётное число.

- Если при подсчёте количества ненулевых разрядов числа записанного в уравновешенной троичной системе счисления основанной на ряду степеней нечётного числа (1,3,9,27 и т.д.) получается чётное число, то и само исходное число является чётным.
Extreme Entertainment
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

На практике дело обстоит следующим образом:

а) берём произвольное n-разрядное число записанное в троичной уравновешенной системе счисления

б) считаем количество ненулевых разрядов в числе

в) считаем количество ненуневых разрядов в полученном на предыдущем шаге числе, до тех пор, пока получаемое количество не станет 2-х разрядным (при представлении в уравновешенной троичной системе), другими словами: пока оно не станет меньше +5, но больше -5

г) если оба разряда нулевые - исходное число было 0, если только один разряд нулевой - исходное число нечётное, иначе - исходное число чётное
Extreme Entertainment
User avatar
Shaos
Admin
Posts: 24087
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mac Buster wrote:На практике дело обстоит следующим образом:

а) берём произвольное n-разрядное число записанное в троичной уравновешенной системе счисления

б) считаем количество ненулевых разрядов в числе

в) считаем количество ненуневых разрядов в полученном на предыдущем шаге числе, до тех пор, пока получаемое количество не станет 2-х разрядным (при представлении в уравновешенной троичной системе), другими словами: пока оно не станет меньше +5, но больше -5

г) если оба разряда нулевые - исходное число было 0, если только один разряд нулевой - исходное число нечётное, иначе - исходное число чётное
Все таки проще за один проход узнать четное или нечетное кол-во ненулевых разрядов есть в числе и на основе этого сделать выводы о четности - или ты уже нашел исключение из этого правила?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Code: Select all

Все таки проще за один проход узнать четное или нечетное кол-во ненулевых разрядов есть в числе и на основе этого сделать выводы о четности - или ты уже нашел исключение из этого правила?
Нет, исключений не обнаружил. Только подумал что раз вся логика троичная, то надо сократить информацию о количестве ненулевых разрядов. Вот как раз до двух троичных разрядов это дело и можно сократить :D
Extreme Entertainment
User avatar
Shaos
Admin
Posts: 24087
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mac Buster wrote:

Code: Select all

Все таки проще за один проход узнать четное или нечетное кол-во ненулевых разрядов есть в числе и на основе этого сделать выводы о четности - или ты уже нашел исключение из этого правила?
Нет, исключений не обнаружил. Только подумал что раз вся логика троичная, то надо сократить информацию о количестве ненулевых разрядов. Вот как раз до двух троичных разрядов это дело и можно сократить :D
Дык считать надо не так, а вот как (анализируемое число в аккумуляторе):
1. обнулить переменную четности
2. если младший трит ноль, то идти на 5
3. если переменная 0, то записать в нее +1 и идти на 5
4. если переменная +1, то записать в нее 0 и идти на 5
5. сдвинуть аккумулятор вправо с обнулением старшего трита
6. если аккумулятор не ноль, то идти на 1
После не более чем N итераций (где N - разрядность аккумулятора) в переменной четности будет хранится 0 - если число в аккумуляторе было четное и +1 - если нечетное.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Можно и так :D
Extreme Entertainment
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Обнаружил ещё один многопроходный способ определения, который очень похож на предложенный мной ранее. Заключается в последовательном сумммировании ненулевых разрядов исходного числа, а затем ненулевых разрядов полученной суммы до тех пор, пока не останется один разряд. Если в результате получается 0 - исходное число было чётным.

Недостатки по отношению к моему методу - не позволяет определить было ли исходное число равно нулю. Точнее, считается, что нуль - чётное число.
Extreme Entertainment
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Post by CHRV »

Mac Buster wrote:Обнаружил ещё один многопроходный способ определения, который очень похож на предложенный мной ранее. Заключается в последовательном сумммировании ненулевых разрядов исходного числа, а затем ненулевых разрядов полученной суммы до тех пор, пока не останется один разряд. Если в результате получается 0 - исходное число было чётным.

Недостатки по отношению к моему методу - не позволяет определить было ли исходное число равно нулю. Точнее, считается, что нуль - чётное число.
А что мешает суммировать все разряды ?
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Ни что. Это одно и тоже.
Extreme Entertainment
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Post by CHRV »

Mac Buster wrote:Ни что. Это одно и тоже.
Ага и решается проблема нуля :)
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

CHRV wrote:Ага и решается проблема нуля :)
Каким образом ? В результате выполнения получается всего два варианта: 1 (нечетное) и 0 (четное). А у меня три варианта: -1 (нечетное), 0 (нуль) и +1 (четное).
Extreme Entertainment
User avatar
Shaos
Admin
Posts: 24087
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mac Buster wrote:
CHRV wrote:Ага и решается проблема нуля :)
Каким образом ? В результате выполнения получается всего два варианта: 1 (нечетное) и 0 (четное). А у меня три варианта: -1 (нечетное), 0 (нуль) и +1 (четное).
Ну ноль вроде всегда четным считался ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Shaos wrote:Ну ноль вроде всегда четным считался ;)
Не у всех ;) Читал литературу, где нуль не относился ни к четным ни к нечетным числам.
Extreme Entertainment
User avatar
Ronin
Maniac
Posts: 304
Joined: 29 Mar 2005 06:06
Location: Krasnodar

Post by Ronin »

Mac Buster wrote:
Shaos wrote:Ну ноль вроде всегда четным считался ;)
Не у всех ;) Читал литературу, где нуль не относился ни к четным ни к нечетным числам.
это в двоичной системе ноль относится к четным :D потму как третьего не дано :)
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Shaos wrote:Ну ноль вроде всегда четным считался ;)
Даже в зарубежной литературе его выделяют. Открываем книжку "Функциональное программирование", первую же главу первой части. И что же мы там видим ? :D
Extreme Entertainment