Latar Belakang
Anda baru saja belajar apa itu logika kombinasional . Penasaran dengan berbagai kombinator yang Anda habiskan cukup banyak waktu untuk mempelajarinya. Anda akhirnya menemukan ungkapan khusus ini:
(S I I (S I I))
Anda perhatikan bahwa ketika mencoba menguranginya ke bentuk normal, itu berkurang dengan sendirinya setelah tiga langkah:
(S I I (S I I))
= (I (S I I) (I (S I I))) (1)
= (S I I (I (S I I))) (2)
= (S I I (S I I)) (3)
Anda bertekad untuk menemukan ekspresi lain yang memiliki sifat ini dan mulai mengerjakannya segera.
Aturan
Anda dapat menggunakan kombinasi apa saja dari kombinator berikut:
B f g x = f (g x) C f x y = f y x I x = x K x y = x S f g x = f x (g x) W f x = f x x
Aplikasi dibiarkan asosiatif, yang artinya
(S K K)
sebenarnya((S K) K)
.Reduksi minimal, tidak ada urutan langkah reduksi lain yang menggunakan langkah lebih sedikit. Contoh: jika
x
memiliki reduksiy
, maka reduksi minimal yang benar(W f x)
adalah:(W f x) = (W f y) (1) = f y y (2)
dan tidak
(W f x) = f x x (1) = f y x (2) = f y y (3)
Celah standar berlaku.
Tugas
Kami mendefinisikan siklus ekspresi menjadi jumlah minimal pengurangan di antara dua ekspresi yang sama.
Tugas Anda adalah menemukan ekspresi, dengan jumlah kombinator yang digunakan <100, yang menghasilkan siklus terpanjang.
Mencetak gol
Skor Anda akan ditentukan oleh lamanya siklus ekspresi Anda. Jika ekspresi dua orang memiliki siklus yang sama, jawaban yang menggunakan lebih sedikit kombinator akan menang. Jika keduanya menggunakan jumlah combinator yang sama, jawaban sebelumnya menang.
Semoga berhasil dan selamat bersenang - senang!
x
memiliki pengurangan untuk y
itu W f x -> W f y -> f y y
atau W f x -> f x x -> f x y -> f y y
panjangnya berbeda.