Перестановка из множества является биективен функция . Например, если то функция перестановка:
Мы также можем иметь перестановки на бесконечных множествах, давайте возьмем в качестве примера: функция является перестановкой, меняющей четные и нечетные целые на блоки по два. Первые элементы следующие:
Вызов
Ваша задача для этой задачи - написать функцию / программу, реализующую любую 1 перестановку натуральных чисел. Оценка вашего решения - это сумма кодовых точек после сопоставления их с реализованной перестановкой.
пример
Предположим, мы берем вышеупомянутую перестановку, реализованную с помощью Python:
def pi(x):
return x - 1 + 2*(x % 2)
Символ d
имеет кодовую точку , . Если мы сделаем это для каждого персонажа, мы получим:
Сумма всех этих сопоставленных символов составляет , это будет оценка для этой функции.
правила
Вы будете реализовывать перестановку как функцию или программу
- учитывая натуральное число , возврат / вывод
- для целей этой задачи вовсе не содержит
- перестановка должна нетривиально переставлять бесконечное подмножество
- вашей функции / программе не разрешено читать собственный источник
счет
Оценка дается суммой всех кодовых точек (нулевые байты могут не быть частью исходного кода) при этой перестановке (кодовые точки зависят от вашего языка 2 , вы можете свободно использовать SBCS, UTF-8 и т. Д., Пока ваш язык поддерживает это).
Представление с наименьшим счетом выигрывает, связи нарушаются при более раннем представлении.
За исключением перестановок, которые переставляют только конечное подмножество , что означает, что множество должно быть бесконечным.
Если это улучшает ваш счет, вы можете, например, использовать кодировку Jelly в кодировке UTF-8 вместо обычной SBCS.