我正在尝试使用Lisp进行遗传算法,我想生成一个包含五个随机数的列表.
我可以生成该列表,但所有子列表都由相同的随机数组成,这是因为我不确定我是否正确管理"随机状态".
任何人都可以给我一个提示吗?
这是代码:
(setf *random-state* (make-random-state t))
(defun random_in
(min max)
(+ (random (+ (- max min) 1) *random-state*) min))
(defun create_chromosome
(min max)
(list (random_in min max) (random_in min max) (random_in min max) (random_in min max) (random_in min max)))
(defun create_population
(individuals min max)
(make-list individuals :initial-element (create_chromosome min max)))
(write (create_population 3 10 100))
Run Code Online (Sandbox Code Playgroud)
该程序的输出是:
((54 51 85 61 44) (54 51 85 61 44) (54 51 85 61 44))
Run Code Online (Sandbox Code Playgroud)
但我希望每个列表由不同的随机数组成.
感谢您的时间.