Определить с использованием языка LISP генератор случайных чисел
Формулировка задачи:
Определить с использованием языка LISP генератор случайных чисел. Эта функция должна поддерживать глобальную переменную
seed и возвращать разные случайные числа при каждом вызове. Описание алгоритма генерации случайных чисел приводится в специальной литературе.
Решение задачи: «Определить с использованием языка LISP генератор случайных чисел»
textual
Листинг программы
(defun initialize nil (let ((s1 (progn (print "Введите 1-ю цифру ") (read))) (s2 (progn (print "Введите 2-ю цифру ") (read))) (s3 (progn (print "Введите 3-ю цифру ") (read))) (s4 (progn (print "Введите 4-ю цифру ") (read)))) (setq *seed* (+ s4 (* 10 (+ s3 (* (+ (* s1 10) s2) 10))))))) (defun get-random nil (let ((q (* *seed* *seed*))) (setq *seed* (rem (truncate (/ q 100)) 10000))))
Объяснение кода листинга программы
В коде определены две функции: initialize и get-random.
- Функция initialize запрашивает у пользователя ввод четырех цифр и сохраняет их в переменных s1, s2, s3 и s4. Затем она вычисляет значение переменной seed, используя эти цифры в качестве начальных значений для генератора псевдослучайных чисел.
- Функция get-random использует значение переменной seed для генерации случайного числа в диапазоне от 0 до 9999. Это число затем используется для обновления значения переменной seed, чтобы обеспечить изменение генерации при каждом вызове функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д