n人中m人が当選するくじ
Posted feedbacks - Emacs Lisp
1 2 3 4 5 6 | (defun lot (n m)
(let ((lot (loop for i from 1 to n collect i)))
(loop repeat m collect
(let ((x (nth (random (length lot)) lot)))
(setf lot (delete x lot))
x))))
|
(lot 100 3) =>(99 21 16)
1 2 3 | (defun lot (n m)
(let ((v (vconcat (number-sequence 0 (- n 1)))))
(nthcdr (- n m) (append (shuffle-vector v) nil))))
|



にしお
#3360()
Rating0/0=0.00
[ reply ]