Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
18
Task/Knuth-shuffle/Scheme/knuth-shuffle-1.ss
Normal file
18
Task/Knuth-shuffle/Scheme/knuth-shuffle-1.ss
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#!r6rs
|
||||
(import (rnrs base (6))
|
||||
(srfi :27 random-bits))
|
||||
|
||||
(define (semireverse li n)
|
||||
(define (continue front back n)
|
||||
(cond
|
||||
((null? back) front)
|
||||
((zero? n) (cons (car back) (append front (cdr back))))
|
||||
(else (continue (cons (car back) front) (cdr back) (- n 1)))))
|
||||
(continue '() li n))
|
||||
|
||||
(define (shuffle li)
|
||||
(if (null? li)
|
||||
()
|
||||
(let
|
||||
((li-prime (semireverse li (random-integer (length li)))))
|
||||
(cons (car li-prime) (shuffle (cdr li-prime))))))
|
||||
22
Task/Knuth-shuffle/Scheme/knuth-shuffle-2.ss
Normal file
22
Task/Knuth-shuffle/Scheme/knuth-shuffle-2.ss
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#!r6rs
|
||||
(import (rnrs base (6))
|
||||
(srfi :27 random-bits))
|
||||
|
||||
(define (vector-swap! vec i j)
|
||||
(let
|
||||
((temp (vector-ref vec i)))
|
||||
(vector-set! vec i (vector-ref vec j))
|
||||
(vector-set! vec j temp)))
|
||||
|
||||
(define (countdown n)
|
||||
(if (zero? n)
|
||||
()
|
||||
(cons n (countdown (- n 1)))))
|
||||
|
||||
(define (vector-shuffle! vec)
|
||||
(for-each
|
||||
(lambda (i)
|
||||
(let
|
||||
((j (random-integer i)))
|
||||
(vector-swap! vec (- i 1) j)))
|
||||
(countdown (vector-length vec))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue