<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head> <title>Random Subset</title> [ (define (int obj) (and (string? obj) (floor (string->number obj)))) (define-input (int n) (int m)) (define (cons-sorted num numlist) (if (and (pair? numlist) (< (car numlist) num)) (cons (car numlist) (cons-sorted num (cdr numlist))) (cons num numlist))) (define (choose-new chosen-list count) (if (zero? count) chosen-list (let ((r (+ 1 (brl-random n)))) (if (member r chosen-list) (choose-new chosen-list count) (choose-new (cons-sorted r chosen-list) (- count 1)))))) ] </head> <body> <h1>Random Subset</h1> <form> Generate <input type="text" name="m" size="5" value="[(or m "")]"> distinct numbers between 1 and <input type="text" name="n" size="5" value="[(or n "")]">.<br> <input type="submit" value="Generate Numbers"> </form> [(brl-when (and n m (<= 1 m n 1000)) (choose-new '() m))] <p>[(brl-now)]</p> <p align="right"><a href="[(brl-source-link brl-context)]">View Source</a></p> </body> </html> |