A) У тебя есть charset
из 100
в котором первый characters
являются A, B, C
и последнее characters
являются -, _
,
B) encode
функция возвращает строку длины 10
,
C) encode
преобразует number
в корреляции number
в charset
Пример: A
== 0
|| B
== 1
|| C
== 2
|| -
== 98
|| _
== 99
Количество возможностей: 100 ^ 10
знак равно 1e+20
|| 100,000 Quadrillion
|| 100,000,000,000 Billion
,
999
является iii
, _i
или же i_
? выглядит как домашнее задание …
Давайте посмотрим на нашу проблему:
999 не может быть представлен как один символ в нашей кодировке
мы можем закодировать его тремя различными способами
9 9 9 => Я Я Я
99 9 => _I
9 99 => I_
теперь … одна только кодировка не создает кодировку … в этот момент вы, вероятно, должны прочитать о том, что такое «код» … http://en.wikipedia.org/wiki/Code
пожалуйста, обратите внимание, что это не имеет ничего общего с шифрованием …
так что … нам нужен набор правил для кодирования / декодирования нашего кода
так как мы должны создать этот набор правил, это наш свободный выбор, как мы будем обращаться с вещами, если мы будем помнить, каким другим ключевым правилам мы должны следовать …
код должен быть длиной 10 символов … максимум из того, что я вижу, иначе III, возможно, не будет правильным примером нашего кода … AAAAAAAAIII будет … так что давайте предположим, что мы можем отбросить ведущие нули, или Как в этом случае, и далее предположим, что III и AAAAAAAIII идентичны
Теперь у нас есть тот факт, что наш код имеет 100 ^ 10 возможных кодовых слов, которые могут быть достигнуты только в том случае, если каждая комбинация нашей кодировки с длиной 10 является допустимым кодовым словом.
так что все три … III и I_ и _I … должны быть действительными кодовыми словами …
Означает ли это, что все три имеют значение 999?
короткий: нет
долго:
как упоминалось ранее, существует набор правил, необходимый для придания коду смысла …
поскольку нет заданного набора правил кодирования, мы, кажется, можем создать его …
давайте посмотрим на набор правил для кодирования наших обычных 10 базовых чисел …
у нас есть кодировка от 0 до 9 -> 10 цифр
позиция цифры в номере содержит информацию …
123 например можно записать как 1 * 10 ^ 10 + 2 * 10 ^ 1 + 3 * 10 ^ 0
если мы передадим это в нашу новую кодировку … давайте назовем это base 100 … это будет выглядеть так:
123 -> 1 * 100 ^ 1 + 23 * 100 ^ 0
=> 1 = B … 23 = X => 123 -> BX
999 -> 9 * 100 ^ 1 + 99 * 100 ^ 0 -> I_
но кто сказал, что мы должны объявить самую левую цифру в нашем коде самой значимой цифрой?
что если бы мы интерпретировали это иначе?
не 99 * 100 ^ 0 + 9 * 100 ^ 1 = 999 тоже?
да … поэтому мы могли бы написать это как _I тоже …
какой из них правильный сейчас? … это зависит ТОЛЬКО от набора правил нашего кода … если он говорит, что крайняя левая цифра является самой значимой, то ответ I_ … если самая правая цифра является самой значимой, то ответ _I
пока набор правил для кодировки не указан, ответ на этот вопрос не может быть решен … вы можете только попытаться сделать обоснованное предположение и использовать то же соглашение, что и в нашей «нормальной» кодировке base 10 … крайняя левая цифра = наиболее значимая цифра -> I_
но, пожалуйста, имейте в виду … это предположение … если я получу такой вопрос в тесте, я объясню, почему нет ответа, если не указаны правила кодирования.
tldr:
с предоставленной информацией, это свободный выбор, если это i_ или _i
Других решений пока нет …