# I primi 20 interi positivi collocati casualmente
sample(1:12)
#  7  2  9 12 10  4  6  5  1  8  3 11
#
# Esempio:  generazione di un mazzo di carte
S <- c("C","Q","F","P"); C <- sample(1:40)
for(i in 1:40) print( c( 1+C[i]%%10, S[(floor((C[i]-1)/10)+1)] ),quote=FALSE )
# 5 P   8 Q   1 P   1 Q   3 C   8 P   2 P   9 F   4 C   7 Q
# 2 F   1 F   9 Q   7 C   4 Q   5 F   9 P   6 P   8 C   7 F
# 3 Q   6 F   10 P  6 Q   4 P   1 C   10 C  7 P   8 F   2 Q
# 9 C   4 F   5 C   3 P   3 F   2 C   6 C   10 Q  10 F  5 Q
#
#
# Alternativa
# Un sottoprogramma che genera casualmente i primi n interi positivi
genera <- function(n) {
# Idea: genero un elenco x di n numeri "reali" tra 0 ed 1 casuali;
# chiamo z[1] il più piccolo, z[2] il 2º, …, z[n] il massimo
  x <- runif(n); z <- sort(x)
# Poi sostituisco nell'elenco x ogni numero col suo numero d'ordine,
# ossia cerco il posto che aveva in x ogni numero in z
  y <- NULL; for(i in 1:n) for(j in 1:n) if(z[i]==x[j]) y[i] <- j; y }
#
# Esempio: generazione casuale dei primi 12 numeri interi positivi
genera(12)
#  11  2  4  5  7 12  6  3  1  9  8 10
#
# Esempio: generazione di un mazzo di carte
S <- c("C","Q","F","P"); C <- genera(40)
for(i in 1:40) print( c( 1+C[i]%%10, S[(floor((C[i]-1)/10)+1)] ),quote=FALSE )