Always make probability of close equal to probability that instruction set adds an open

This commit is contained in:
Lee Spector 2024-01-06 16:39:11 -05:00
parent 126b358643
commit f0424979b5

View File

@ -51,21 +51,16 @@
"Returns a random instruction from a supplied pool of instructions, evaluating
ERC-producing functions to a constant literal."
[instructions argmap]
(if (:auto-close argmap)
(let [instructions (remove #(= % 'close) instructions)
p (/ (apply + (filter identity
(map #(get parentheses/opens %) instructions)))
(count instructions))]
(if (< (rand) p)
'close
(let [instruction (rand-nth instructions)]
(if (fn? instruction)
(instruction)
instruction))))
(let [instruction (rand-nth instructions)]
(if (fn? instruction)
(instruction)
instruction))))
(let [instructions (remove #(= % 'close) instructions)
p (/ (apply + (filter identity
(map #(get parentheses/opens %) instructions)))
(count instructions))]
(if (< (rand) p)
'close
(let [instruction (rand-nth instructions)]
(if (fn? instruction)
(instruction)
instruction)))))
(defn count-points
"Returns the number of points in tree, where each atom and each pair of parentheses