Sujet : Re: make a list of different random numbers
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.lang.lispDate : 16. Jul 2024, 21:24:15
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240716121710.763@kylheku.com>
References : 1
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2024-07-16, B. Pym <
Nobody447095@here-nor-there.org> wrote:
Gauche Scheme
>
(use srfi-1) ;; lset-adjoin (To act as "pushnew".)
(use srfi-27) ;; random-integer
>
(define (random-position) (+ 1 (random-integer 64)))
>
(do ((results '() (lset-adjoin = results (random-position))))
((> (length results) 3) results))
>
===>
(26 31 48 49)
>
Check for duplication:
>
(length (delete-duplicates
(do ((results '() (lset-adjoin = results (random-position))))
((> (length results) 63) results))))
>
===>
64
Since the range of the numbers is so tiny, it seems nicer
to implement it as a lottery draw:
1> (take 4 (nshuffle (vec-seq 1..65)))
#(32 31 23 39)
-- TXR Programming Language: http://nongnu.org/txrCygnal: Cygwin Native Application Library: http://kylheku.com/cygnalMastodon: @Kazinator@mstdn.ca