Sepele mungkin untuk membuat fungsi bijective dari (himpunan semua bilangan bulat) ke Z (misalnya fungsi identitas).
Dimungkinkan juga untuk membuat fungsi bijective dari ke Z 2 (himpunan semua pasangan 2 bilangan bulat; produk cartesian dari Z dan ). Sebagai contoh, kita bisa mengambil kisi yang mewakili titik integer pada bidang 2D, menggambar spiral dari 0 ke luar, dan kemudian menyandikan pasangan bilangan bulat sebagai jarak sepanjang spiral ketika memotong titik itu.
(Fungsi yang melakukan ini dengan bilangan alami dikenal sebagai fungsi berpasangan .)
Bahkan, ada keluarga fungsi bijective ini:
Tantangan
Tentukan sekumpulan fungsi (di mana k adalah bilangan bulat positif) dengan properti yang f k ( x ) bijectively peta bilangan bulat untuk -tuples bilangan bulat.
Kiriman Anda harus, diberikan masukan dan x , return f k ( x .
Ini adalah kode-golf , sehingga jawaban terpendek yang valid (diukur dalam byte) menang.
Spesifikasi
- Setiap keluarga dapat digunakan asalkan memenuhi kriteria di atas.
- Anda disarankan untuk menambahkan deskripsi tentang cara kerja keluarga fungsi Anda, serta cuplikan untuk menghitung kebalikan dari fungsi tersebut (ini tidak termasuk dalam jumlah byte Anda).
- Tidak apa-apa jika fungsi invers tidak dapat dihitung, selama Anda dapat membuktikannya, fungsi tersebut bersifat objektif.
- Anda dapat menggunakan representasi yang sesuai untuk bilangan bulat yang ditandatangani dan daftar bilangan bulat yang ditandatangani untuk bahasa Anda, tetapi Anda harus mengizinkan masukan ke fungsi Anda untuk tidak dibatasi.
- Anda hanya perlu mendukung nilai hingga 127.
k
danx
bukannya bilangan bulat?