В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
ts250484p0bsmh
ts250484p0bsmh
14.08.2020 09:42 •  Информатика

Пусть задано шестнадцатеричное число. рассмотрим все шестнадцатеричные числа, которые можно получить из заданного перестановками цифр (при этом перестановки, в которых на первом месте оказывается 0, из рассмотрения исключаются, а исходное число, наоборот, включается). для каждого такого числа считаем остаток от его деления на 5. требуется найти среднее арифметическое таких остатков всех рассматриваемых чисел. формат ввода входные данные содержат одно шестнадцатеричное число, состоящее из не более чем 20 знаков. цифры, большие 9, обозначаются строчными латинскими буквами от ‘a’ до ‘z’. гарантируется, что первой цифрой числа не является 0. формат вывода выведите среднее арифметическое остатков от деления всех корректных (то есть не имеющих ведущих нулей) чисел, образованных перестановками цифр в данном числе, от деления на 5, с точностью не хуже 10−9. пример 1вводвывод222 1пример 2вводвыводaaa 0

Показать ответ
Ответ:
Askemba
Askemba
09.10.2020 19:57

Решение задачи будет гораздо проще, если заметить, что остаток от деления шестнадцатеричного числа на 5 совпадает с остатком от деления на 5 его суммы цифр.

Действительно, доказываем по индукции:

Для числа из одной цифры это тривиально: число из одной цифры совпадает со своей суммой цифр. Переход: пусть число из k цифр ...xyz дает такой же остаток при делении на 5, что и сумма цифр ... + x + y + z. Покажем, что число из (k + 1) цифры ...xyzt дает такой же остаток, что и сумма цифр ... + x + y + z + t: ...xyzt = 16 * ...xyz + t = 15 * ...xyz + (...xyz + t). Первое слагаемое делится на 5, второе по предположению дает такой же остаток, что и (... + x + y + z) + t, что и требовалось.

У любой перестановки сумма цифр такая же, так что и остатки от деления на 5 совпадают. Так что осталось найти сумму цифр исходного числа и найти остаток от деления её на 5, это и будет ответом.

Python 3:

digits = "0123456789abcdef"

n = input()

s = sum(digits.index(digit) for digit in n)

print(s % 5)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота