LINUX.ORG.RU

История изменений

Исправление no-such-file, (текущая версия) :

если у вас ответ НЕ 1/2

Но ведь она 1/2

(defparameter *boxes* '((gold gold) (silver silver) (gold silver)))

(defun shuffle-coins (coins)
  (if (= (random 2) 0)
      coins
      (list (second coins) (first coins))))

(defun random-pick-box ()
  (shuffle-coins (elt *boxes* (random 3))))

(defun experiment (turns)
  (loop repeat turns collect (random-pick-box)))

(defun calc-result (seq)
  (let ((gg (count '(gold gold) seq :test #'equal))
	(gs (count '(gold silver) seq :test #'equal)))
    (* (/ gg (+ gg gs)) 100.0)))

(calc-result (experiment 10000)) ;; 50

Ключевая фраза: из того же сундука. Не из всех, а только из того же. Понятно, что в этом же сундуке может быть только 2 варианта и вероятность 1/2.

Исходная версия no-such-file, :

если у вас ответ НЕ 1/2

Но ведь она 1/2

(defparameter *boxes* '((gold gold) (silver silver) (gold silver)))

(defun shuffle-coins (coins)
  (if (= (random 2) 0)
      coins
      (list (second coins) (first coins))))

(defun random-pick-box ()
  (shuffle-coins (elt *boxes* (random 3))))

(defun experiment (turns)
  (loop repeat turns collect (random-pick-box)))

(defun calc-result (seq)
  (let ((gg (count '(gold gold) seq :test #'equal))
	(gs (count '(gold silver) seq :test #'equal)))
    (* (/ gg (+ gg gs)) 100.0)))

(calc-result (experiment 10000))

Ключевая фраза: из того же сундука. Не из всех, а только из того же. Понятно, что в этом же сундуке может быть только 2 варианта и вероятность 1/2.