พื้นหลัง
คุณเพิ่งเรียนรู้ว่าตรรกะเชิงการรวมคืออะไร ทึ่งกับ combinators ต่าง ๆ ที่คุณใช้เวลาเรียนรู้เกี่ยวกับพวกเขาสักหน่อย ในที่สุดคุณก็สะดุดกับการแสดงออกนี้:
(S I I (S I I))
คุณสังเกตเห็นว่าเมื่อพยายามที่จะลดขนาดให้อยู่ในรูปแบบปกติมันจะลดตัวเองลงหลังจากสามขั้นตอน:
(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)
คุณมุ่งมั่นที่จะค้นหานิพจน์อื่นที่ใช้คุณลักษณะนี้และเริ่มทำงานกับเรื่องนี้ทันที
กฎระเบียบ
คุณสามารถใช้ combinators ต่อไปนี้ร่วมกัน:
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แอปพลิเคเชื่อมโยงทางด้านซ้ายซึ่งหมายความว่าเป็นจริง
(S K K)((S K) K)การลดลงเพียงเล็กน้อยนั้นไม่มีขั้นตอนการลดอื่น ๆ ที่ใช้ขั้นตอนน้อยลง ตัวอย่าง: หาก
xมีการลดลงการลดyที่น้อยที่สุดที่ถูกต้อง(W f x)คือ(W f x) = (W f y) (1) = f y y (2)และไม่
(W f x) = f x x (1) = f y x (2) = f y y (3)ช่องโหว่มาตรฐานใช้
งาน
เรากำหนดวัฏจักรของนิพจน์ให้มีการลดจำนวนน้อยที่สุดระหว่างสองนิพจน์เดียวกัน
งานของคุณคือค้นหานิพจน์ด้วยจำนวนผู้ใช้ที่ใช้ <100 ซึ่งสร้างรอบที่ยาวที่สุด
เกณฑ์การให้คะแนน
คะแนนของคุณจะถูกกำหนดโดยความยาวของรอบการแสดงออกของคุณ หากการแสดงออกของคนสองคนมีวัฏจักรเดียวกันคำตอบที่ใช้ combinators น้อยกว่าจะชนะ หากพวกเขาทั้งสองใช้ combinators จำนวนเท่ากันคำตอบก่อนหน้านี้จะชนะ
ขอให้โชคดีและสนุก!
xมีการลดลงyแล้วW f x -> W f y -> f y yหรือW f x -> f x x -> f x y -> f y yมีความยาวแตกต่างกัน