Re: make a list of different random numbers

Liste des GroupesRevenir à cl lisp 
Sujet : Re: make a list of different random numbers
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp
Date : 16. Jul 2024, 20:55:30
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v76fmu$1d3tm$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Pascal J. Bourguignon wrote:

i would like to get a list of 4 different random numbers.
(wk wn wb bk)
i started this code :
>
(defun random-position () (1+ (random 64)))
>
(defparameter wk (random-position))
>
(excl:until (not (= wb wk)) (setf wb (random-position)))
>
but it is not working. i just need to ensure that none of the
positions
are the same. please to help.
>
thanks, david
 
 
    (do ((results '()                results)
         (alea     (random-position) (random-position)))
        ((<= 4 (length results))
         results)
      (pushnew alea results))
 
or:
 
    (loop
        :with results = '()
        :for alea = (random-position)
        :while (< (length results) 4)
        :do (pushnew alea results)
        :finally (return results))

Pascal hasn't yet mastered "do"; perhaps he never will.

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

Date Sujet#  Auteur
16 Jul 24 * Re: make a list of different random numbers5B. Pym
16 Jul 24 +- Re: make a list of different random numbers1Kaz Kylheku
16 Jul 24 `* Re: make a list of different random numbers3George Neuner
17 Jul 24  `* Re: make a list of different random numbers2HenHanna
17 Jul 24   `- Re: make a list of different random numbers1Kaz Kylheku

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal