http://neonohoret.livejournal.com/ (
neonohoret.livejournal.com) wrote in
useless_faq2011-07-15 05:55 pm
![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Математическое
После ВУЗа матиматика успела залечь в спячку где-то далеко на подкорке, но пару месяцев назад в комментариях всплыла тема про системы счисления.
Мне не понятно было тогда и не совсем понятно сейчас, почему при обучении переводу из одной системы в другую используют различные алгоритмы и методы, когда, хотя в случае с десятичной системой всё можно привести к общему виду.
То есть формулу для перевода из любой системы в десятичную из десятичной в любую я на первом курсе вывел на коленке чисто эмперически:

(p и q - основания систем счисления, [ ] - взятие целой части)
P.S. Алгоритмы, понятное дело, экономят машинное время, но как же красота и завершенность?
Мне не понятно было тогда и не совсем понятно сейчас, почему при обучении переводу из одной системы в другую используют различные алгоритмы и методы, когда, хотя в случае с десятичной системой всё можно привести к общему виду.
То есть формулу для перевода из любой системы в десятичную из десятичной в любую я на первом курсе вывел на коленке чисто эмперически:
(p и q - основания систем счисления, [ ] - взятие целой части)
P.S. Алгоритмы, понятное дело, экономят машинное время, но как же красота и завершенность?
Ну, наверно, оттого, что Ваша формула неверна.
Re: Ну, наверно, оттого, что Ваша формула неверна.
Это Вам повезло. Или не повезло.
Re: Это Вам повезло. Или не повезло.
no subject
no subject
(no subject)
(no subject)
no subject
(no subject)
no subject
(no subject)
no subject
(no subject)
no subject
no subject
(no subject)
no subject
Перевод систем счисления бывает двух видов: "любая - родная" и "любая - любая". Под "родной" понимается система, в которой компьютер складывает и умножает - будь она двоичной, фибоначчиевой или ещё какой-то. Первое употребляется чаще: всегда, когда надо вывести десятичное число на экран, вызывается именно процедура перевода чисел из внутреннего формата компьютера в десятичный. Итак, ОДИН: во внутреннем формате нет цифр. И нет команды "вытащить из числа третью цифру". Можно сложить, вычесть, умножить и поделить. Целиком.
ДВА. Теперь поговорим о переводе из любой в любую. Обычно такое, без перевода в родную, делают для очень длинных чисел, которых никакой регистр не вместит. При вычислении по вашей формуле сложность кубическая: для каждой цифры нужно делить на длинное число, операция квадратичная, к тому же программирующаяся очень тяжело. Длина числа вдвое - объём работы в восемь раз. Если сделать наскоком - просто в лоб выполнять операции в одной из систем счисления - нам потребуются совмещённая операция "умножение-сложение" с коротким множителем (long + long*short) и деление с остатком, снова-таки на короткое число. Операции элементарные, а сложность всего лишь квадратичная.
(no subject)
no subject
P.S. Я уж не буду придираться про "не понятно".
(no subject)
no subject
(no subject)