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

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

Moderator: haqreu

User avatar
Shaos
Admin
Posts: 24094
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mac Buster wrote:
Shaos wrote:Ну ноль вроде всегда четным считался ;)
Даже в зарубежной литературе его выделяют. Открываем книжку "Функциональное программирование", первую же главу первой части. И что же мы там видим ? :D
Дык там вроде речь про определение знака числа идет, а не про четность ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

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

Post by Mac Buster »

Shaos wrote: 10 февраля 2005 года в форуме NedoPC.org Shaos предложил следующий алгоритим определения четности числа, записанного в уравновешенной троичной системе:
1. обнулить переменную четности
2. если младший трит ноль, то идти на 5
3. если переменная 0, то записать в нее +1 и идти на 5
4. если переменная +1, то записать в нее 0 и идти на 5
5. сдвинуть аккумулятор вправо с обнулением старшего трита
6. если аккумулятор не ноль, то идти на 1
После не более чем N итераций (где N - разрядность аккумулятора) в переменной четности будет хранится 0 - если число в аккумуляторе было четное и +1 - если нечетное.
Mac Buster в форуме NedoPC.org предложил считать ноль особым числом, которое не явлется ни четным, ни нечетным.
И раньше Shaos-а (9 февраля 2005 года) предложил свой собственный алгоритм определения чётности чисел с выделением нуля, заключающийся в циклическом подсчёте количества ненулевых разрядов исходного числа до тех пор, пока число выражающее количество не достигнет несократимого значения состоящего из двух троичных разрядов (+/-5). После чего, можно будет судить о том, было ли исходное число чётным (оба разряда ненулевые), нулём (оба разряда нулевые), или нечётным (только один разряд ненулевой).
Alexandr
Novelist
Posts: 34
Joined: 20 Oct 2005 18:46

Re: Определение четности числа

Post by Alexandr »

Mac Buster в форуме NedoPC.org предложил считать ноль особым числом, которое не явлется ни четным, ни нечетным, с чем Shaos не согласен, так как 0 выполняет требования четного числа - деление на 2 без остатка.
Алгоритм Shaos для определения четности числа полностью верен, просто перед его выполнением проверять число на равность нулю и выставлять результат равный 0, так как все таки 0 - это "уникальное" число, а то что оно делится на 2 ничего в этом удивительного! Ноль также делится и на 3 без остатка - получается что и нечетное!
Небольшая заметка по поводу нуля.
User avatar
Shaos
Admin
Posts: 24094
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Определение четности числа

Post by Shaos »

Alexandr wrote: Алгоритм Shaos для определения четности числа полностью верен, просто перед его выполнением проверять число на равность нулю и выставлять результат равный 0, так как все таки 0 - это "уникальное" число, а то что оно делится на 2 ничего в этом удивительного! Ноль также делится и на 3 без остатка - получается что и нечетное!
Из того что 0 делится на 3 без остатка вовсе не следует что он нечетен! К примеру 6 тоже делится на 3 без остатка, однако это четное число потому что еще и на 2 делится.
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Re: Определение четности числа

Post by Mac Buster »

То, что нуль делится на два без остатка ещё не повод относить его к чётным, т.к. он делится без остатка вообще на любое натуральное число ;) Предлагаю оставить пока эту тему, хотя бы потому, что мой алгоритм легко позволяет обойти этот вопрос (проверкой условия только для нечётных чисел).

Пусть программист самостоятельно решает, какой ответ ему необходимо получить: чётный-нечётный или чётный-нуль-нечётный.
User avatar
Shaos
Admin
Posts: 24094
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Определение четности числа

Post by Shaos »

Mac Buster wrote: То, что нуль делится на два без остатка ещё не повод относить его к чётным, т.к. он делится без остатка вообще на любое натуральное число ;)
Ну у четности один единственный признак - и для нуля оно имеется - деление на 2 без остатка
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Re: Определение четности числа

Post by Mac Buster »

Shaos wrote: Ну у четности один единственный признак - и для нуля оно имеется - деление на 2 без остатка
Дело-то не в признаках чётности, а в самом нуле, который не является числом и не обладает свойствами чисел, среди которых чётность ;) Я не припомню ни одного чётного или нечётного числа, которое делилось бы нацело на что угодно, да ещё было-бы, например, беззнаковым :)

С наступающим Новым Годом! :)
User avatar
Shaos
Admin
Posts: 24094
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Определение четности числа

Post by Shaos »

Mac Buster wrote: а в самом нуле, который не является числом и не обладает свойствами чисел, среди которых чётность ;)
Давайте не будем придумывать антинаучные придумки! Нуль такое же число как 1 или 2 - см. Zero
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Re: Определение четности числа

Post by Mac Buster »

Я уже предложил прекратить обсуждение этой темы. Я основываюсь на информации из пятитомной "Энциклопедии элементарной математики" и из "Справочника по элементарной математике" Выгодского.

А ссылаться на википедию совсем не стоит, поскольку именно там-то и содержится множество "ценнейшей" антинаучной информации, т.к. пишется она в основном дворниками-любителями, которые ни за что не отвечают. Даже 12 тысяч таких "специалистов" не смогут написать ни одной достоверной энциклопедической статьи, просто потому, что они дворники.
User avatar
Shaos
Admin
Posts: 24094
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Определение четности числа

Post by Shaos »

Mac Buster wrote: А ссылаться на википедию совсем не стоит, поскольку именно там-то и содержится множество "ценнейшей" антинаучной информации, т.к. пишется она в основном дворниками-любителями, которые ни за что не отвечают. Даже 12 тысяч таких "специалистов" не смогут написать ни одной достоверной энциклопедической статьи, просто потому, что они дворники.
Дворников в википедию не пускают ;)
User avatar
Shaos
Admin
Posts: 24094
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Определение четности числа

Post by Shaos »

На самом деле посылка из той статьи, что "На нуль делить нельзя в любом случае" не совсем верна, т.к. делить на ноль всё-таки можно, но при таком делении мы просто-напросто получим бесконечность - вот и всё. Это если мы будем рассматривать лишь множество неотрицательных целых чисел (пример из статьи про яблоки и их едоков). Если же мы вспомним и про отрицательные целые числа, то тут всплывает неопределенность, т.к. результат деления на ноль в этом случае может быть положительной бесконечностью, если мы стремимся к нулю справа, и в то же время отрицательной бесконечностью, если мы стремимся к нулю слева (естественно если делимое является положительным числом). И вообще - из-за проблем с делением на ноль никак не следует его особенное положение в смысле чётности/нечётности
;-)
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Я что-то тоже неожиданно споткнулся об "чётность" или как определить флаг четности для троичного числа.

Я вводил его в 4-битном процессоре просто как чётность числа.
Сугубо для того, что иногда довольно удобно в алгоритме - все четные - "туда", все нечетные - "сюда".

Как я понял, здесь уже дискутировали по поводу: четность, как поразрядная сумма всех единиц числа,
но к какому непротиворечивому итогу всё же пришли?

И нужен ли в принципе флаг четности в троичности?
iLavr
User avatar
JeNNeR
Fanat
Posts: 52
Joined: 18 Nov 2014 09:17
Location: Отсюда

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

Post by JeNNeR »

Если при подсчёте количества ненулевых разрядов числа записанного в уравновешенной троичной системе счисления основанной на ряду степеней нечётного числа (1,3,9,27 и т.д.) получается чётное число, то и само исходное число является чётным.
С этого начинали. Конечно, тут есть немного рекурсии :) Думается, что далее размышлять можно только над алгоритмом подсчета и интерпретацией результата (например, в случае нуля).

З.Ы. Например: алгоритм Shaos'а
0. Если аккумулятор ноль, то записать -1 в аккумулятор и перейти к 6а.
1. обнулить переменную четности
2. если младший трит ноль, то идти на 5
3. если переменная 0, то записать в нее +1 и идти на 5
4. если переменная +1, то записать в нее 0 и идти на 5
5. сдвинуть аккумулятор вправо с обнулением старшего трита
6. если аккумулятор не ноль, то идти на 1
6а. Выход
После не более чем N итераций (где N - разрядность аккумулятора) в переменной четности будет хранится 0 - если число в аккумуляторе было четное и +1 - если нечетное.
(Или -1, если ноль)
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

JeNNeR wrote:...тут есть немного рекурсии :) Думается, что далее размышлять можно только над алгоритмом подсчета и интерпретацией результата ...
Мне думается, размышлять надо над тем, нужен ли в таком случае флаг четности как флаг.

Флаг должен выставляться мгновенно, безо всяких рекурсий...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

AlexanderZh wrote:Не знаю на сколько нужен. Но так как троичка, то видимо делать нужно 3 состояния:
+1 - чётное
0 - ноль
-1 - нечётное.
А если число многоразрядое?... :lol:
iLavr