Написать программу, которая определяет, сколько различных вариантов очереди могут образовать люди. - Lisp

Узнай цену своей работы

Формулировка задачи:

К театральной кассе направляются n человек. Написать программу, которая определяет, сколько различных вариантов очереди могут образовать эти люди. Буду очень признательна, если кто-то поможет решить!

Решение задачи: «Написать программу, которая определяет, сколько различных вариантов очереди могут образовать люди.»

textual
Листинг программы
  1. (defun permutate (w)
  2.   (when w (if (cdr w)
  3.               (loop for a in w
  4.                     nconc (mapcar #'(lambda (e) (cons a e))
  5.                                   (permutate (remove a w))))
  6.               (list w))))
  7.  
  8. > (permutate '(1 2 3))
  9. ((1 2 3) (1 3 2) (2 1 3) (2 3 1) (3 1 2) (3 2 1))

Объяснение кода листинга программы

В коде определена функция PERMUTE, которая принимает в качестве аргумента W список элементов. Если W не равен NIL, то рекурсивно вызывается функция PERMUTE для каждого элемента списка W, и каждый раз к результату добавляется новый элемент. Если W равен NIL, то возвращается список W. Код выполняет перебор всех возможных вариантов перестановки элементов в списке W и выводит каждый вариант в консоль.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы