Возврат Base 9 эквивалентной формулы - PullRequest
0 голосов
/ 08 ноября 2011

Я выполнил задание, данное нам нашим инструктором, которое должно вернуть " base 9 " эквивалент введенного числа.

Номер ввода: 231085 и
возвращаемый номер: 382871 .

Я понятия не имею, как он придумал этот так называемый эквивалент "базы 9".
Я пытался найти формулу о том, как получить базовый 9-эквивалент в сети, но мне было трудно это понять, плюс тот факт, что я очень слаб в математике и алгебре.

Я попытался использовать модуль и деление, чтобы решить ее, и ничего не нашел (конечно, моя формула была неверной).

Я действительно ошарашен в этой проблеме, и я был бы признателен, если бы кто-нибудь смог объяснить мне формулу, чтобы решить ее.

Или, может быть, ответ или сама проблема не в порядке?

Ура!

Ответы [ 2 ]

8 голосов
/ 08 ноября 2011

Система нумерации base-9 - это система, которая использует девять цифр для представления чисел.То есть

231,085 = 2 × 10 5
+ 3 × 10 4
+ 1 × 10 3
+ 0 × 10 2
+ 8 × 10 1
+ 5 × 10 0

в основании-10 система, иначе система десятичной нумерации.Но в системе base-9 вы записываете ее в виде целых кратных степеней 9, а не 10, как показано выше:

381,881 = 3 × 9 5
+ 8 × 9 4
+ 1 × 9 3 (кстати, ваш инструктор дал вам неправильный номер. Это 381 881, а не 382 871)
+ 8 × 9 2
+ 8 × 9 1
+ 1 × 9 0

Обратите внимание, что коэффициенты степеней 10 впредставление base-10 (то есть 2, 3, 1, 0, 8 и 5) всегда является одной из десяти десятичных цифр (от нуля до девяти).Аналогично, коэффициенты степеней 9 в представлении base-9 (3, 8, 1, 8, 8, 1) всегда являются одной из девяти десятичных цифр (от нуля до восьми).Что-нибудь еще, и вы должны были бы перенести это, как вы узнали в добавлении многозначных чисел в начальной школе.

Теперь, для алгоритма преобразования представления base-10 в base-9,Сначала взглянем на Преобразование десятичного числа в двоичное , которое преобразуется из base-10 в base-2.Единственное отличие состоит в том, что вы делите на степени 9, а не на 2, как этот вопрос.

Следуя примеру в связанном вопросе,

            [231085]  [53938]   [1450]   [721]   [73]   [1]  
             ÷59049    ÷6561     ÷729     ÷81     ÷9    ÷1
              [3]       [8]       [1]     [8]     [8]   [1] 

Если вы хотитечтобы систематически разбивать целое число-10 на цифры, вы должны следовать следующему шаблону:

  1. Разделите число на 10 (основание).
  2. Остальная часть деления будет следующей наименьшей значащей цифрой.
  3. Повторяйте с новым разделенным числом (т.е. частным от деления шага 1), пока частное не достигнет 0.

Итак, для 231 085 итерации выглядят следующим образом:

 Step:         1          2        3       4      5       6
-------------------------------------------------------------
 Number:    231,085    23,108    2,310    231     23      2
                ÷10       ÷10      ÷10    ÷10    ÷10    ÷10
-------------------------------------------------------------
 Quotient:   23,108     2,310      231     23     2       0  <-- Quotient reached 0, so stop
 Remainder:       5         8        0      1     3       2

Как видно, остаток на каждом шаге - это следующая наименьшая значащая цифра в числе 231 085.Это означает, что 5 является наименее значимой цифрой.Затем идет 8, что на самом деле 8 × 10 = 80 и 10> 1;затем 0 × 100 и 100> 10 и т. д.

Теперь, если бы вы делили на 9 на каждом шаге вместо 10, как указано выше, таблица будет выглядеть примерно так:

 Step:         1          2        3       4       5      6
-------------------------------------------------------------
 Number:    231,085    25,676    2,852    316     35      3
                 ÷9        ÷9       ÷9     ÷9     ÷9     ÷9
-------------------------------------------------------------
 Quotient:   25,676     2,852      316     35      3      0
 Remainder:       1         8        8      1      8      3

И теперь остатки в обратном порядке представления base-9 числа base-10 231,085.

Этот ответ фактически не дает вам код для базового преобразования, но основная логикаописанный выше, и алгоритм существует по всему Интернету (возможно, для разных баз, но все, что вам нужно изменить, - это база в подразделении).

1 голос
/ 08 ноября 2011

Ваш инструктор неверный ответ.

http://www.wolframalpha.com/input/?i=231085+in+base+9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...