new files
This commit is contained in:
parent
3af7344581
commit
86c034bb8b
1364 changed files with 21352 additions and 0 deletions
24
Task/Knuth-shuffle/ACL2/knuth-shuffle.acl2
Normal file
24
Task/Knuth-shuffle/ACL2/knuth-shuffle.acl2
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
:set-state-ok t
|
||||
|
||||
(defun array-swap (name array i j)
|
||||
(let ((ai (aref1 name array i))
|
||||
(aj (aref1 name array j)))
|
||||
(aset1 name
|
||||
(aset1 name array j ai)
|
||||
i aj)))
|
||||
|
||||
(defun shuffle-r (name array m state)
|
||||
(if (zp m)
|
||||
(mv array state)
|
||||
(mv-let (i state)
|
||||
(random$ m state)
|
||||
(shuffle-r name
|
||||
(array-swap name array i m)
|
||||
(1- m)
|
||||
state))))
|
||||
|
||||
(defun shuffle (name array state)
|
||||
(shuffle-r name
|
||||
array
|
||||
(1- (first (dimensions name array)))
|
||||
state))
|
||||
Loading…
Add table
Add a link
Reference in a new issue