Как решить задачу? Пусть задано шестнадцатеричное число. Рассмотрим все шестнадцатеричные числа, которые можно получить из заданного перестановками цифр (при этом перестановки, в которых на первом месте оказывается 0, из рассмотрения исключаются, а исходное число, наоборот, включается). Для каждого такого числа считаем остаток от его деления на 5.
Требуется найти среднее арифметическое таких остатков всех рассматриваемых чисел.
Формат ввода
Входные данные содержат одно шестнадцатеричное число, состоящее из не более чем 20 знаков. Цифры, большие 9, обозначаются строчными латинскими буквами от ‘a’ до ‘z’. Гарантируется, что первой цифрой числа не является 0.
Формат вывода
Выведите среднее арифметическое остатков от деления всех корректных (то есть не имеющих ведущих нулей) чисел, образованных перестановками цифр в данном числе, от деления на 5, с точностью не хуже
10^-9

11 Дек 2019 в 19:53
158 +1
1
Ответы
1

Для решения данной задачи можно использовать следующий алгоритм:

Считать входное шестнадцатеричное число.Построить все возможные перестановки цифр этого числа, исключая случаи, когда на первом месте полученного числа стоит 0.Для каждой перестановки вычислить число в десятичной системе счисления.Найти остаток от деления полученного числа на 5.Найти среднее арифметическое всех найденных остатков.Вывести результат с точностью не хуже 10^-9.

Пример на Python:

from itertools import permutations
def hexadecimal_to_decimal(hex_num):
return int(hex_num, 16)
def solve(hex_num):
total_remainder = 0
count = 0
for perm in permutations(hex_num[1:], len(hex_num)-1):
num = int(''.join(perm), 16)
remainder = num % 5
total_remainder += remainder
count += 1
average_remainder = total_remainder / count
return average_remainder
hex_num = input().strip()
result = solve(hex_num)
print('%.9f' % result)

Этот код считывает входное шестнадцатеричное число, находит среднее арифметическое остатков от деления всех корректных чисел, образованных перестановками цифр в данном числе, и выводит результат с точностью 10^-9.

18 Апр в 23:39
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 047 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир