Комбінаторні лайки


9

Фон

Ви тільки що дізналися, що таке комбінаційна логіка . Заінтригуючи різними комбінаторами, ви витрачаєте на них досить багато часу. Ви нарешті натрапляєте на цей конкретний вираз:

(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)

Ви налаштовані знаходити інші вирази, які поділяють цю ознаку, і починаєте працювати над цим негайно.

Правила

  • Ви можете використовувати будь-яку комбінацію таких комбінаторів:

    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, що дає найдовший цикл.

Оцінка балів

Ваш бал визначатиметься тривалістю циклу вашого вираження. Якщо вираз двох людей має один і той же цикл, відповідь, в якій використовується менше комбінаторів, виграє. Якщо вони обидва використовують однакову кількість комбінаторів, попередня відповідь виграє.

Хай щастить!


atomic-code-golf підходить для вашого вимикача для краватки, але я не додав би тег для вимикача. Якщо немає відповідного тегу, то типовим є код-виклик , який вказує, що для виклику використовується спеціальний критерій виграшу.
Мартін Ендер

Я думаю, що це допоможе, якби ти сказав, які умови асоціативності використовує твоя нотація.
xnor

Цикл , як ви визначили це не обов'язково добре визначений, так як цей вислів може мати кілька скорочень доступні.
Пітер Тейлор

@ThreeFx, ти помилився. Наприклад, якщо xвона має зменшення до того yчасу W f x -> W f y -> f y yабо W f x -> f x x -> f x y -> f y yє різною довжиною.
Пітер Тейлор

4
Тепер складне в тому, що хтось не може претендувати на рахунок, лише розмістивши цикл; їм потрібен доказ того, що немає коротшого скорочення, що може бути обчислювально складним.
xnor

Відповіді:


7

Треба починати з чогось

1:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

2:(((C I (C (C I) (W I))) (W I) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

3:(((I (W I)) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

4:(((W I) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

5:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

6:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

7:(((C I (C (C I) (W I))) (W I) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

8:(((I (W I)) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

9:(((W I) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

10:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

11:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

12:(((C I (C (C I) (W I))) (W I) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

13:(((I (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

14:(((W I) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

15:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

16:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

17:(((C I (C (C I) (W I))) (W I) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

18:(((I (W I)) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

19:(((W I) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

20:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

21:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

22:(((C I (C (C I) (W I))) (W I) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

23:(((I (W I)) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

24:(((W I) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

25:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

26:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

27:(((C I (C (C I) (W I))) (W I) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

28:(((I (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

29:(((W I) (C (C I) (W I)) I I) (W I) ((C I) (W (C I)) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))

30:(((I (C (C I) (W I))) (C (C I) (W I)) I I) (W I) (I (W (C I)) (W (C I)) (W (C I))) ((W I) (W I) (W I) I))

31:(((C (C I) (W I)) (C (C I) (W I)) I I) (W I) (W (C I) (W (C I)) (W (C I))) ((I (W I)) (W I) (W I) I))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.