Knuth shuffle: Difference between revisions
Content added Content deleted
ReeceGoding (talk | contribs) (→Pseudo-code-like version: More details.) |
ReeceGoding (talk | contribs) |
||
Line 3,564: | Line 3,564: | ||
<lang r>knuthShuffle<-function(items) |
<lang r>knuthShuffle<-function(items) |
||
{ |
{ |
||
for(i in length(items):1)#for i from last downto 1 do: |
for(i in length(items):1) #for i from last downto 1 do: |
||
{ |
{ |
||
j<-sample(0:i,1)#let j = random integer in range 0<=j<=i |
j<-sample(0:i,1) #let j = random integer in range 0<=j<=i |
||
items[c(i,j)]<-items[c(j,i)]#swap items[i] with items[j] |
items[c(i,j)]<-items[c(j,i)] #swap items[i] with items[j] |
||
} |
} |
||
items |
items |
||
Line 3,574: | Line 3,574: | ||
<lang r>knuthShuffle(15) |
<lang r>knuthShuffle(15) |
||
knuthShuffle("Alice") |
knuthShuffle("Alice") |
||
knuthShuffle(c(42,19.9))#Coerces 42 to 42.0 |
knuthShuffle(c(42,19.9)) #Coerces 42 to 42.0 |
||
knuthShuffle(1:5) |
knuthShuffle(1:5) |
||
knuthShuffle(array(c(1,2,3))) |
knuthShuffle(array(c(1,2,3))) |
||
knuthShuffle(matrix(1:16,nrow=4))#A 4*4 matrix. |
knuthShuffle(matrix(1:16,nrow=4)) #A 4*4 matrix. |
||
knuthShuffle(list("Alice","Bob",42,pi)) |
knuthShuffle(list("Alice","Bob",42,pi)) |
||
knuthShuffle(list("Alice","Bob",42,pi,c(3.14,exp(1)),c("I'm","a ragged","array","!")))#Output is a list of length 5.</lang> |
knuthShuffle(list("Alice","Bob",42,pi,c(3.14,exp(1)),c("I'm","a ragged","array","!"))) #Output is a list of length 5.</lang> |
||
=={{header|Racket}}== |
=={{header|Racket}}== |