Рекурсия: заполнение одномерного массива целыми случайными числами без повторений - Prolog

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

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

Помогите, пожалуйста, с задачей. 1. Описать функцию для заполнения одномерного массива целыми случайными числами без повторений. Использовать рекурсию.

Решение задачи: «Рекурсия: заполнение одномерного массива целыми случайными числами без повторений»

textual
Листинг программы
domains
  n=integer
  lrand=n*
  
predicates
  random_list(lrand,n)
 
clauses
 
  random_list([],0).
  random_list([H|T],N):-
  N>0,
  random(10,H),
  N1=N-1,
  random_list(T,N1).
    
goal
  random_list(X,10).

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

В коде используется язык программирования Prolog.

  1. domains - определения типов переменных:
    • n=integer - переменная n является целым числом;
    • lrand=n* - переменная lrand является произвольным (случайным) целым числом, умноженным на n.
  2. predicates - определения функций:
    • random_list(lrand,n) - рекурсивная функция для заполнения списка lrand случайными целыми числами без повторений.
  3. clauses - определения правил:
    • random_list([],0). - базовый случай: пустой список приравнивается нулю.
    • random_list([H|T],N):- - рекурсивный случай: список H|T (голова и хвост списка) приравнивается N (остаток числа n, вычтенный из N).
    • random(10,H) - вызов функции random для получения случайного целого числа от 0 до 9.
    • N1=N-1 - вычисление нового значения N1 как N-1.
    • random_list(T,N1). - рекурсивный вызов функции random_list для списка T и значения N1.
  4. goal - основная цель: заполнить список X случайными целыми числами без повторений длиной в 10 элементов. Таким образом, код рекурсивно заполняет список случайными целыми числами без повторений.

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


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

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

6   голосов , оценка 4.667 из 5
Похожие ответы