У цьому питанні я визначив функцію "ланцюга" як функцію, яка:
є перестановкою, тобто кожне значення відображається в і точно відображається на одне значення.
і дозволяє будь-яке значення може бути отримане з будь-якого іншого значення шляхом повторних застосувань функції або її зворотного.
Є багато функцій, які виконують це, і деякі з них досить прості (див. Відповіді на це питання). Тепер ми будемо визначати окремий клас функцій, які я буду називати "переплетеними" функціями. Переплетені функція є функцією на множині А , який має два нескінченних розділів 0 і 1 таким чином, що функція є функцією ланцюга на обох в 0 і в 1 .
Це означає , що ні одне значення в вигляді 0 не може відображати до значення в вигляді 1 по функції або навпаки.
Завдання
Ваше завдання - написати код, який виконує або визначає переплетену функцію на додатні цілі числа. Ваша функція може бути будь-якою, доки вона відповідає критеріям переплетення. Ви повинні включити пояснення, чому ваша функція переплетена у відповідь.
Це код-гольф питання, тому відповіді будуть набрані в байтах, при цьому менше байтів буде краще.