ANSI Common Lisp
というわけで、昨日の(日付的にはまだ今日)の続き。
二つのダイス限定なのもアレなので、返したリスト(のリスト)に同じ関数を適用すると三つ振ったようにしてみる。
(当然、リストの片方はリストのリストを受け取るようにする)
あと、一々'(1 2 3 4 5 6 7 8 9 10)書くのも面倒くさいので、n->mまでの連続数のリストを返してくれる関数を書いてみた。
(defun dice-n-m (n m) "最小値n、最大値mの連続数のリストを作成する" (if (> n m) nil (cons n (dice-n-m (+ n 1) m)))) (defun dice-combo (lstlst dice) (if (null dice) nil (append (list-append lstlst (car dice)) (dice-combo lstlst (cdr dice))))) ;;;;下のようにすると、昨日のみたいな結果が帰ってくる (let ((dice (dice-n-m 1 10))) (dice-combo (listlist dice) dice)) ;;;;で、こんな感じ↓にすると、三つ振った分帰ってくる (let ((dice (dice-n-m 1 10))) (dice-combo (dice-combo (listlist dice) dice) dice))
あんまりに長かったから結果は↓
;;((1 1 1) (2 1 1) (3 1 1) (4 1 1) (5 1 1) (6 1 1) (7 1 1) (8 1 1) ;; (9 1 1) (10 1 1) (1 2 1) (2 2 1) (3 2 1) (4 2 1) (5 2 1) (6 2 1) ;; (7 2 1) (8 2 1) (9 2 1) (10 2 1) (1 3 1) (2 3 1) (3 3 1) (4 3 1) ;; (5 3 1) (6 3 1) (7 3 1) (8 3 1) (9 3 1) (10 3 1) (1 4 1) (2 4 1) ;; (3 4 1) (4 4 1) (5 4 1) (6 4 1) (7 4 1) (8 4 1) (9 4 1) (10 4 1) ;; (1 5 1) (2 5 1) (3 5 1) (4 5 1) (5 5 1) (6 5 1) (7 5 1) (8 5 1) ;; (9 5 1) (10 5 1) (1 6 1) (2 6 1) (3 6 1) (4 6 1) (5 6 1) (6 6 1) ;; (7 6 1) (8 6 1) (9 6 1) (10 6 1) (1 7 1) (2 7 1) (3 7 1) (4 7 1) ;; (5 7 1) (6 7 1) (7 7 1) (8 7 1) (9 7 1) (10 7 1) (1 8 1) (2 8 1) ;; (3 8 1) (4 8 1) (5 8 1) (6 8 1) (7 8 1) (8 8 1) (9 8 1) (10 8 1) ;; (1 9 1) (2 9 1) (3 9 1) (4 9 1) (5 9 1) (6 9 1) (7 9 1) (8 9 1) ;; (9 9 1) (10 9 1) (1 10 1) (2 10 1) (3 10 1) (4 10 1) (5 10 1) (6 10 1) ;; (7 10 1) (8 10 1) (9 10 1) (10 10 1) (1 1 2) (2 1 2) (3 1 2) (4 1 2) ;; (5 1 2) (6 1 2) (7 1 2) (8 1 2) (9 1 2) (10 1 2) (1 2 2) (2 2 2) ;; (3 2 2) (4 2 2) (5 2 2) (6 2 2) (7 2 2) (8 2 2) (9 2 2) (10 2 2) ;; (1 3 2) (2 3 2) (3 3 2) (4 3 2) (5 3 2) (6 3 2) (7 3 2) (8 3 2) ;; (9 3 2) (10 3 2) (1 4 2) (2 4 2) (3 4 2) (4 4 2) (5 4 2) (6 4 2) ;; (7 4 2) (8 4 2) (9 4 2) (10 4 2) (1 5 2) (2 5 2) (3 5 2) (4 5 2) ;; (5 5 2) (6 5 2) (7 5 2) (8 5 2) (9 5 2) (10 5 2) (1 6 2) (2 6 2) ;; (3 6 2) (4 6 2) (5 6 2) (6 6 2) (7 6 2) (8 6 2) (9 6 2) (10 6 2) ;; (1 7 2) (2 7 2) (3 7 2) (4 7 2) (5 7 2) (6 7 2) (7 7 2) (8 7 2) ;; (9 7 2) (10 7 2) (1 8 2) (2 8 2) (3 8 2) (4 8 2) (5 8 2) (6 8 2) ;; (7 8 2) (8 8 2) (9 8 2) (10 8 2) (1 9 2) (2 9 2) (3 9 2) (4 9 2) ;; (5 9 2) (6 9 2) (7 9 2) (8 9 2) (9 9 2) (10 9 2) (1 10 2) (2 10 2) ;; (3 10 2) (4 10 2) (5 10 2) (6 10 2) (7 10 2) (8 10 2) (9 10 2) ;; (10 10 2) (1 1 3) (2 1 3) (3 1 3) (4 1 3) (5 1 3) (6 1 3) (7 1 3) ;; (8 1 3) (9 1 3) (10 1 3) (1 2 3) (2 2 3) (3 2 3) (4 2 3) (5 2 3) ;; (6 2 3) (7 2 3) (8 2 3) (9 2 3) (10 2 3) (1 3 3) (2 3 3) (3 3 3) ;; (4 3 3) (5 3 3) (6 3 3) (7 3 3) (8 3 3) (9 3 3) (10 3 3) (1 4 3) ;; (2 4 3) (3 4 3) (4 4 3) (5 4 3) (6 4 3) (7 4 3) (8 4 3) (9 4 3) ;; (10 4 3) (1 5 3) (2 5 3) (3 5 3) (4 5 3) (5 5 3) (6 5 3) (7 5 3) ;; (8 5 3) (9 5 3) (10 5 3) (1 6 3) (2 6 3) (3 6 3) (4 6 3) (5 6 3) ;; (6 6 3) (7 6 3) (8 6 3) (9 6 3) (10 6 3) (1 7 3) (2 7 3) (3 7 3) ;; (4 7 3) (5 7 3) (6 7 3) (7 7 3) (8 7 3) (9 7 3) (10 7 3) (1 8 3) ;; (2 8 3) (3 8 3) (4 8 3) (5 8 3) (6 8 3) (7 8 3) (8 8 3) (9 8 3) ;; (10 8 3) (1 9 3) (2 9 3) (3 9 3) (4 9 3) (5 9 3) (6 9 3) (7 9 3) ;; (8 9 3) (9 9 3) (10 9 3) (1 10 3) (2 10 3) (3 10 3) (4 10 3) (5 10 3) ;; (6 10 3) (7 10 3) (8 10 3) (9 10 3) (10 10 3) (1 1 4) (2 1 4) (3 1 4) ;; (4 1 4) (5 1 4) (6 1 4) (7 1 4) (8 1 4) (9 1 4) (10 1 4) (1 2 4) ;; (2 2 4) (3 2 4) (4 2 4) (5 2 4) (6 2 4) (7 2 4) (8 2 4) (9 2 4) ;; (10 2 4) (1 3 4) (2 3 4) (3 3 4) (4 3 4) (5 3 4) (6 3 4) (7 3 4) ;; (8 3 4) (9 3 4) (10 3 4) (1 4 4) (2 4 4) (3 4 4) (4 4 4) (5 4 4) ;; (6 4 4) (7 4 4) (8 4 4) (9 4 4) (10 4 4) (1 5 4) (2 5 4) (3 5 4) ;; (4 5 4) (5 5 4) (6 5 4) (7 5 4) (8 5 4) (9 5 4) (10 5 4) (1 6 4) ;; (2 6 4) (3 6 4) (4 6 4) (5 6 4) (6 6 4) (7 6 4) (8 6 4) (9 6 4) ;; (10 6 4) (1 7 4) (2 7 4) (3 7 4) (4 7 4) (5 7 4) (6 7 4) (7 7 4) ;; (8 7 4) (9 7 4) (10 7 4) (1 8 4) (2 8 4) (3 8 4) (4 8 4) (5 8 4) ;; (6 8 4) (7 8 4) (8 8 4) (9 8 4) (10 8 4) (1 9 4) (2 9 4) (3 9 4) ;; (4 9 4) (5 9 4) (6 9 4) (7 9 4) (8 9 4) (9 9 4) (10 9 4) (1 10 4) ;; (2 10 4) (3 10 4) (4 10 4) (5 10 4) (6 10 4) (7 10 4) (8 10 4) ;; (9 10 4) (10 10 4) (1 1 5) (2 1 5) (3 1 5) (4 1 5) (5 1 5) (6 1 5) ;; (7 1 5) (8 1 5) (9 1 5) (10 1 5) (1 2 5) (2 2 5) (3 2 5) (4 2 5) ;; (5 2 5) (6 2 5) (7 2 5) (8 2 5) (9 2 5) (10 2 5) (1 3 5) (2 3 5) ;; (3 3 5) (4 3 5) (5 3 5) (6 3 5) (7 3 5) (8 3 5) (9 3 5) (10 3 5) ;; (1 4 5) (2 4 5) (3 4 5) (4 4 5) (5 4 5) (6 4 5) (7 4 5) (8 4 5) ;; (9 4 5) (10 4 5) (1 5 5) (2 5 5) (3 5 5) (4 5 5) (5 5 5) (6 5 5) ;; (7 5 5) (8 5 5) (9 5 5) (10 5 5) (1 6 5) (2 6 5) (3 6 5) (4 6 5) ;; (5 6 5) (6 6 5) (7 6 5) (8 6 5) (9 6 5) (10 6 5) (1 7 5) (2 7 5) ;; (3 7 5) (4 7 5) (5 7 5) (6 7 5) (7 7 5) (8 7 5) (9 7 5) (10 7 5) ;; (1 8 5) (2 8 5) (3 8 5) (4 8 5) (5 8 5) (6 8 5) (7 8 5) (8 8 5) ;; (9 8 5) (10 8 5) (1 9 5) (2 9 5) (3 9 5) (4 9 5) (5 9 5) (6 9 5) ;; (7 9 5) (8 9 5) (9 9 5) (10 9 5) (1 10 5) (2 10 5) (3 10 5) (4 10 5) ;; (5 10 5) (6 10 5) (7 10 5) (8 10 5) (9 10 5) (10 10 5) (1 1 6) (2 1 6) ;; (3 1 6) (4 1 6) (5 1 6) (6 1 6) (7 1 6) (8 1 6) (9 1 6) (10 1 6) ;; (1 2 6) (2 2 6) (3 2 6) (4 2 6) (5 2 6) (6 2 6) (7 2 6) (8 2 6) ;; (9 2 6) (10 2 6) (1 3 6) (2 3 6) (3 3 6) (4 3 6) (5 3 6) (6 3 6) ;; (7 3 6) (8 3 6) (9 3 6) (10 3 6) (1 4 6) (2 4 6) (3 4 6) (4 4 6) ;; (5 4 6) (6 4 6) (7 4 6) (8 4 6) (9 4 6) (10 4 6) (1 5 6) (2 5 6) ;; (3 5 6) (4 5 6) (5 5 6) (6 5 6) (7 5 6) (8 5 6) (9 5 6) (10 5 6) ;; (1 6 6) (2 6 6) (3 6 6) (4 6 6) (5 6 6) (6 6 6) (7 6 6) (8 6 6) ;; (9 6 6) (10 6 6) (1 7 6) (2 7 6) (3 7 6) (4 7 6) (5 7 6) (6 7 6) ;; (7 7 6) (8 7 6) (9 7 6) (10 7 6) (1 8 6) (2 8 6) (3 8 6) (4 8 6) ;; (5 8 6) (6 8 6) (7 8 6) (8 8 6) (9 8 6) (10 8 6) (1 9 6) (2 9 6) ;; (3 9 6) (4 9 6) (5 9 6) (6 9 6) (7 9 6) (8 9 6) (9 9 6) (10 9 6) ;; (1 10 6) (2 10 6) (3 10 6) (4 10 6) (5 10 6) (6 10 6) (7 10 6) ;; (8 10 6) (9 10 6) (10 10 6) (1 1 7) (2 1 7) (3 1 7) (4 1 7) (5 1 7) ;; (6 1 7) (7 1 7) (8 1 7) (9 1 7) (10 1 7) (1 2 7) (2 2 7) (3 2 7) ;; (4 2 7) (5 2 7) (6 2 7) (7 2 7) (8 2 7) (9 2 7) (10 2 7) (1 3 7) ;; (2 3 7) (3 3 7) (4 3 7) (5 3 7) (6 3 7) (7 3 7) (8 3 7) (9 3 7) ;; (10 3 7) (1 4 7) (2 4 7) (3 4 7) (4 4 7) (5 4 7) (6 4 7) (7 4 7) ;; (8 4 7) (9 4 7) (10 4 7) (1 5 7) (2 5 7) (3 5 7) (4 5 7) (5 5 7) ;; (6 5 7) (7 5 7) (8 5 7) (9 5 7) (10 5 7) (1 6 7) (2 6 7) (3 6 7) ;; (4 6 7) (5 6 7) (6 6 7) (7 6 7) (8 6 7) (9 6 7) (10 6 7) (1 7 7) ;; (2 7 7) (3 7 7) (4 7 7) (5 7 7) (6 7 7) (7 7 7) (8 7 7) (9 7 7) ;; (10 7 7) (1 8 7) (2 8 7) (3 8 7) (4 8 7) (5 8 7) (6 8 7) (7 8 7) ;; (8 8 7) (9 8 7) (10 8 7) (1 9 7) (2 9 7) (3 9 7) (4 9 7) (5 9 7) ;; (6 9 7) (7 9 7) (8 9 7) (9 9 7) (10 9 7) (1 10 7) (2 10 7) (3 10 7) ;; (4 10 7) (5 10 7) (6 10 7) (7 10 7) (8 10 7) (9 10 7) (10 10 7) ;; (1 1 8) (2 1 8) (3 1 8) (4 1 8) (5 1 8) (6 1 8) (7 1 8) (8 1 8) ;; (9 1 8) (10 1 8) (1 2 8) (2 2 8) (3 2 8) (4 2 8) (5 2 8) (6 2 8) ;; (7 2 8) (8 2 8) (9 2 8) (10 2 8) (1 3 8) (2 3 8) (3 3 8) (4 3 8) ;; (5 3 8) (6 3 8) (7 3 8) (8 3 8) (9 3 8) (10 3 8) (1 4 8) (2 4 8) ;; (3 4 8) (4 4 8) (5 4 8) (6 4 8) (7 4 8) (8 4 8) (9 4 8) (10 4 8) ;; (1 5 8) (2 5 8) (3 5 8) (4 5 8) (5 5 8) (6 5 8) (7 5 8) (8 5 8) ;; (9 5 8) (10 5 8) (1 6 8) (2 6 8) (3 6 8) (4 6 8) (5 6 8) (6 6 8) ;; (7 6 8) (8 6 8) (9 6 8) (10 6 8) (1 7 8) (2 7 8) (3 7 8) (4 7 8) ;; (5 7 8) (6 7 8) (7 7 8) (8 7 8) (9 7 8) (10 7 8) (1 8 8) (2 8 8) ;; (3 8 8) (4 8 8) (5 8 8) (6 8 8) (7 8 8) (8 8 8) (9 8 8) (10 8 8) ;; (1 9 8) (2 9 8) (3 9 8) (4 9 8) (5 9 8) (6 9 8) (7 9 8) (8 9 8) ;; (9 9 8) (10 9 8) (1 10 8) (2 10 8) (3 10 8) (4 10 8) (5 10 8) (6 10 8) ;; (7 10 8) (8 10 8) (9 10 8) (10 10 8) (1 1 9) (2 1 9) (3 1 9) (4 1 9) ;; (5 1 9) (6 1 9) (7 1 9) (8 1 9) (9 1 9) (10 1 9) (1 2 9) (2 2 9) ;; (3 2 9) (4 2 9) (5 2 9) (6 2 9) (7 2 9) (8 2 9) (9 2 9) (10 2 9) ;; (1 3 9) (2 3 9) (3 3 9) (4 3 9) (5 3 9) (6 3 9) (7 3 9) (8 3 9) ;; (9 3 9) (10 3 9) (1 4 9) (2 4 9) (3 4 9) (4 4 9) (5 4 9) (6 4 9) ;; (7 4 9) (8 4 9) (9 4 9) (10 4 9) (1 5 9) (2 5 9) (3 5 9) (4 5 9) ;; (5 5 9) (6 5 9) (7 5 9) (8 5 9) (9 5 9) (10 5 9) (1 6 9) (2 6 9) ;; (3 6 9) (4 6 9) (5 6 9) (6 6 9) (7 6 9) (8 6 9) (9 6 9) (10 6 9) ;; (1 7 9) (2 7 9) (3 7 9) (4 7 9) (5 7 9) (6 7 9) (7 7 9) (8 7 9) ;; (9 7 9) (10 7 9) (1 8 9) (2 8 9) (3 8 9) (4 8 9) (5 8 9) (6 8 9) ;; (7 8 9) (8 8 9) (9 8 9) (10 8 9) (1 9 9) (2 9 9) (3 9 9) (4 9 9) ;; (5 9 9) (6 9 9) (7 9 9) (8 9 9) (9 9 9) (10 9 9) (1 10 9) (2 10 9) ;; (3 10 9) (4 10 9) (5 10 9) (6 10 9) (7 10 9) (8 10 9) (9 10 9) ;; (10 10 9) (1 1 10) (2 1 10) (3 1 10) (4 1 10) (5 1 10) (6 1 10) ;; (7 1 10) (8 1 10) (9 1 10) (10 1 10) (1 2 10) (2 2 10) (3 2 10) ;; (4 2 10) (5 2 10) (6 2 10) (7 2 10) (8 2 10) (9 2 10) (10 2 10) ;; (1 3 10) (2 3 10) (3 3 10) (4 3 10) (5 3 10) (6 3 10) (7 3 10) ;; (8 3 10) (9 3 10) (10 3 10) (1 4 10) (2 4 10) (3 4 10) (4 4 10) ;; (5 4 10) (6 4 10) (7 4 10) (8 4 10) (9 4 10) (10 4 10) (1 5 10) ;; (2 5 10) (3 5 10) (4 5 10) (5 5 10) (6 5 10) (7 5 10) (8 5 10) ;; (9 5 10) (10 5 10) (1 6 10) (2 6 10) (3 6 10) (4 6 10) (5 6 10) ;; (6 6 10) (7 6 10) (8 6 10) (9 6 10) (10 6 10) (1 7 10) (2 7 10) ;; (3 7 10) (4 7 10) (5 7 10) (6 7 10) (7 7 10) (8 7 10) (9 7 10) ;; (10 7 10) (1 8 10) (2 8 10) (3 8 10) (4 8 10) (5 8 10) (6 8 10) ;; (7 8 10) (8 8 10) (9 8 10) (10 8 10) (1 9 10) (2 9 10) (3 9 10) ;; (4 9 10) (5 9 10) (6 9 10) (7 9 10) (8 9 10) (9 9 10) (10 9 10) ;; (1 10 10) (2 10 10) (3 10 10) (4 10 10) (5 10 10) (6 10 10) (7 10 10) ;; (8 10 10) (9 10 10) (10 10 10))