Dalam pertanyaan ini saya mendefinisikan fungsi "rantai" sebagai fungsi yang:
adalah permutasi, yang berarti bahwa setiap nilai memetakan dan dipetakan dengan tepat satu nilai.
dan memungkinkan nilai apa pun dapat diperoleh dari nilai lain dengan aplikasi berulang fungsi atau kebalikannya.
Ada banyak fungsi yang melakukan ini dan beberapa di antaranya cukup sederhana (lihat jawaban atas pertanyaan itu). Sekarang kita akan mendefinisikan kelas fungsi terpisah yang akan saya panggil fungsi "terjalin". Fungsi terjalin adalah fungsi pada satu set A , yang memiliki dua partisi yang tak terbatas sebuah 0 dan satu 1 sehingga fungsi adalah rantai fungsi pada kedua sebuah 0 dan a 1 .
Ini berarti bahwa tidak ada nilai dalam sebuah 0 dapat memetakan ke nilai dalam suatu 1 di bawah fungsi atau sebaliknya.
Tugas
Tugas Anda adalah menulis kode yang melakukan atau mendefinisikan fungsi jalinan pada bilangan bulat positif. Fungsi Anda bisa apa saja asalkan memenuhi kriteria untuk terjalin. Anda harus menyertakan penjelasan mengapa fungsi Anda terjalin dalam jawabannya.
Ini adalah pertanyaan kode-golf sehingga jawaban akan dinilai dalam byte, dengan lebih sedikit byte yang lebih baik.
Jawaban:
Python,
464237 byte5 byte disimpan berkat @ notjagan
Cobalah online!
Iterasi angka genap dan ganjil dengan langkah 4 dan tautan 2 dan 3:
sumber
JavaScript,
3024 byteUrutan:
... 19 15 11 7 3 1 5 9 13 17 21 ...
... 18 14 10 6 2 4 8 12 16 20 24 ...
Cuplikan kode
sumber
Dyalog APL,
2422 byteCobalah online!
Rantai yang sama dengan jawaban python saya .
sumber