機能は持っていると言われている長さの周期をN個存在する場合、Xをそのドメイン、その結果、F N(X)= XとF M(X)≠X用0 <M <N 、上付き文字nは意味N - fのアプリケーションを折りたたみます。長さ1のサイクルは固定小数点f(x)= xであることに注意してください。
あなたの仕事は、整数から自身への全単射関数を実装することです。これは、すべての正の長さnの正確に1サイクルを持ちます。全単射関数は1対1の対応です。つまり、すべての整数が1回だけマッピングされます。長さの正確に一つの周期を有するN正確に存在することを意味し、Nの異なる番号がxはれるF N(X)= XとF M(X)≠X用0 <M <N 。
このような関数がx = 0の周りにどのように見えるかの例を次に示します。
x ... -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 ...
f(x) ... 2 4 6 -3 -1 1 -4 0 -2 5 7 -7 -6 3 -5 ...
この抜粋は、長さのサイクルが含ま1に5:
n cycle
1 0
2 -2 1
3 -4 -3 -1
4 -5 6 3 7
5 -7 2 5 -6 4
...
上記の「関数」は数学的な意味でのみ使用していることに注意してください。入力として単一の(符号付き)整数を受け取り、単一の(符号付き)整数を返す限り、選択した言語で関数または完全なプログラムを記述できます。いつものように、STDIN、コマンドライン引数、関数引数などを介して入力を受け取り、STDOUT、関数戻り値または関数(out)引数などを介して出力を受け取ることができます。
もちろん、多くの言語は任意精度の整数を(簡単に)サポートしていません。少なくとも[-127、127]の範囲をカバーし、言語の整数型が任意に置き換えられた場合に任意の整数で機能する限り、実装が言語のネイティブ整数型の範囲でのみ機能する場合は問題ありません精度の整数。
標準のコードゴルフ規則が適用されます。