Есть ответ 👍

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

235
335
Посмотреть ответы 2

Ответы на вопрос:


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

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

для числа из одной цифры это тривиально: число из одной цифры совпадает со своей суммой цифр. переход: пусть число из k цифр дает такой же остаток при делении на 5, что и сумма цифр + x + y + z. покажем, что число из (k + 1) цифры дает такой же остаток, что и сумма цифр + x + y + z + t: = 16 * + t = 15 * + + 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)

delacourr
4,7(58 оценок)

Впрограмме вывод в цикле сделан для наглядности. можно его, разумеется, убрать. var i,s: integer;   begin s: =0; for i: =1 to 11 do   begin writeln((3*i-2),' ',(3*i-1),' ',(3*i)); s: =s+(3*i-2)*(3*i-1)*(3*i); end; writeln('s=',s); end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS