Mari kita buat pemetaan surjektif yang sederhana dari bilangan bulat positif ke bilangan bulat Gaussian , yang merupakan bilangan kompleks di mana bagian nyata dan imajiner adalah bilangan bulat.
Diberikan bilangan bulat positif, misalnya 4538
, ungkapkan dalam biner tanpa pemimpin 0
:
4538 base 10 = 1000110111010 base 2
Hapus jejak apa pun 0
:
100011011101
Ganti setiap menjalankan satu atau lebih 0
dengan satu +
:
1+11+111+1
Ganti semua 1
dengan i
:
i+ii+iii+i
Mengevaluasi ekspresi kompleks yang dihasilkan dan menampilkan bilangan bulat Gaussian yang disederhanakan:
i+ii+iii+i = i+i*i+i*i*i+i = 2i+i^2+i^3 = 2i+(-1)+(-i) = -1+i
Keluaran dapat diekspresikan dalam cara matematika tradisional, atau diberikan sebagai dua bilangan bulat terpisah untuk bagian nyata dan kompleks. Sebagai 4538
contoh, semua ini akan baik-baik saja:
-1+i
i-1
-1+1i
(-1, 1)
-1 1
-1\n1
Untuk input seperti 29
, mathy diformat output seperti 0
, 0i
atau 0+0i
semua baik-baik saja.
Menggunakan j
(atau sesuatu yang lain) alih-alih i
baik-baik saja jika itu lebih alami untuk bahasa Anda.
Kode terpendek dalam byte menang.
4+2j
->100+10j
...