pengantar
Mari kita mendefinisikan fungsi terner sebagai fungsi dari set tiga elemen S = {0,1,2}
ke dirinya sendiri: ia menghubungkan ke setiap elemen elemen S
lain dari S
. Salah satu contoh fungsi terner f
adalah
f(0) = 0; f(1) = 2; f(2) = 0
Ada 27 fungsi terner yang berbeda, dan kami mewakilinya dengan bilangan bulat dari 0 hingga 26: fungsi f
dikodekan sebagai f(0) + 3*f(1) + 9*f(2)
. Contoh fungsi di atas disandikan sebagai angka 6.
Kita dapat menerapkan dua fungsi terner f
dan g
secara berurutan, dan jika f(g(k)) == g(f(k))
berlaku untuk semua k
di S
, maka fungsi bolak-balik . Tugas Anda adalah memverifikasi apakah ini masalahnya.
Memasukkan
Input Anda adalah dua bilangan bulat dalam rentang inklusif dari 0 hingga 26. Keduanya mewakili dua fungsi ternary f
dan g
. Input harus diambil dalam 1
format desimal, biner atau unary (string s).
Keluaran
Output Anda adalah nilai kebenaran jika f
dan g
bolak - balik, dan nilai palsu jika tidak. Anda tidak boleh berasumsi bahwa input sudah dipesan.
Contohnya
Pertimbangkan input 5 dan 16. Mereka mengkode fungsi terner
f(0) = 2; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 2; g(2) = 1
Kami punya f(g(1)) == f(2) == 0
dan g(f(1)) == g(1) == 2
, jadi f
dan g
tidak bolak-balik dan output yang benar adalah falsey.
Di sisi lain, input 3 dan 10 mengkodekan fungsi ternary
f(0) = 0; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 0; g(2) = 1
dan dapat diverifikasi bahwa f(g(k)) == g(f(k))
berlaku untuk semua k
di S
. Maka hasil yang benar adalah benar.
Berikut adalah tabel 27 × 27 dari semua input yang mungkin, dengan +
menandai output yang benar dan output -
yang palsu:
+ - - + - - + - - + - - + - - + - - + - - + - - + - -
- + - - - - - - - - - - + - - - - - - - - + - - - - -
- - + - - - - - - - - - - - - - - - - - - + - - + - -
+ - - + - - - - - - + - - + - - - - + - - + - - - - -
- - - - + - - - - - - - - + - - - - - - - + - - - - -
- - - - - + - - - - - - - + - - - - - - - + - - - - -
+ - - - - - + - - - - - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
- - - - - - - - + - - - - - - - - - + - - + - - - - -
+ - - - - - - - - + - - - - - - - - - - - + - - - - -
- - - + - - - - - - + - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
+ + - - - - - - - - - - + + - - - - - - - + + - - - -
- - - + + + - - - - - - + + + - - - - - - + + + - - -
- - - - - - - - - - - - - + + - - - - - - + - - - - -
+ - - - - - - - - - - - - - - + - - - - - + - - - - -
- - - - - - - - - - - - - - - - + - - - - + - + - - -
- - - - - - - - - - - - - - - - - + - - - + + - - - -
+ - - + - - - - + - - - - - - - - - + - - + - - - - +
- - - - - - - - - - - - - - - - - - - + - + - - - - +
- - - - - - - - - - - - - - - - - - - - + + - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - + + - - - + - - - + + - - - +
- - - - - - - - - - - - - + - - + - - - - + - + + - +
+ - + - - - - - - - - - - - - - - - - - - + - + + - +
- - - - - - - - - - - - - - - - - - - - - + - - - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + +
Aturan dan penilaian
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Jawaban:
Jelly,
171413 byteCobalah online! atau verifikasi semua 27 × 27 kasus .
Bagaimana itu bekerja
sumber
MATL ,
1918 byteTruthy adalah array dengan semua yang ada. Falsy adalah array yang mengandung setidaknya satu nol.
Cobalah online! atau verifikasi semua kasus (perlu beberapa detik).
sumber
Python 2, 61 byte
Diberikan input
i
, kita dapat mengimplementasikan fungsi yang diwakilin
dengan melakukann/3**i%3
untuk mengekstraksii
digit ternary darin
. Fungsi memeriksa bahwa hasil yang sama didapat untuk masing-masing0,1,2
saat menerapkan fungsi dalam urutan apa pun. Sebenarnya, karena langkah pertama dilakukan3**
, tes ini dengan[1,3,9]
malah dilakukan.Penggunaan kembali kode terlihat boros, tetapi saya tidak melihat cara yang lebih baik. Membandingkan:
sumber
JavaScript (ES7), 68 byte
Sayangnya konversi basis 3 terlalu mahal:
sumber
Mathematica, 77 byte
Pengindeksan berbasis-satu Mathematica kembali menyerang!
sumber
{1,1,1}
ke variabel dan menggunakannya.