Неоднократно тасует колоду карт в R - PullRequest
0 голосов
/ 27 декабря 2018

У меня проблема с написанием кодового лабиринта, который будет многократно перемешивать колоду карт.У меня написана строка, которая перетасовывает мою талию, но каждый раз колода перетасовывается одинаково.Мне нужна помощь в написании кода, чтобы каждый раз, когда карты перемешивались по-разному.

shuffling <-sample(deck,length(deck))

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вы можете просто установить случайное начальное число генератора как текущее время, выраженное в секундах (или в миллисекундах, если этого недостаточно, см. здесь ).Таким образом, каждый раз, когда вы делаете выборку, это будет новый генератор семян.

cards = c(1:10, "J", "Q", "K", "A")
set.seed(as.numeric(Sys.time()))
sample(cards)
####  [1] "3"  "2"  "10" "6"  "J"  "4"  "7"  "5"...
0 голосов
/ 27 декабря 2018

Вот базовое решение R, которое генерирует вектор начальных чисел и 10 выборок из группы из 10 карт.

seeds <- runif(10)*1000000
cards <- 1:10

shuffledDecks <- lapply(seeds,function(aSeed){
     set.seed(aSeed)
     sample(cards)
})

Когда мы проверяем список в средстве просмотра объектов RStudio, мы видим, что все картыЗаказы в 10 шаффлов разные.

enter image description here

Если мы применим один из подходов для создания колоды карт из Создание колоды карт без использования while и Double For Loop , набор из 10 перетасовок колоды из 52 игральных карт выглядит следующим образом.

seeds <- runif(10)*1000000
cards = c(2:10, "J", "Q", "K", "A")
suits = c("♠", "♥", "♦", "♣")
deck <- paste0(rep(cards, length(suits)),  #card values
               rep(suits, each = length(cards))) #suits

shuffledDecks <- lapply(seeds,function(aSeed){
     set.seed(aSeed)
     sample(deck)
})

shuffledDecks[[1]]
shuffledDecks[[2]]

... и вывод:

> shuffledDecks[[1]]
 [1] "3♥"  "Q♠"  "6♦"  "8♠"  "9♠"  "2♦"  "10♥" "J♥"  "7♦"  "6♣"  "7♠"  "3♣"  "2♠"  "8♦"  "8♥"  "A♦"  "10♣" "A♥"  "5♦"  "J♦" 
[21] "A♠"  "4♥"  "7♣"  "4♣"  "3♠"  "6♠"  "5♥"  "K♠"  "5♣"  "5♠"  "J♣"  "6♥"  "9♥"  "K♣"  "Q♥"  "9♣"  "A♣"  "9♦"  "3♦"  "K♦" 
[41] "4♦"  "J♠"  "4♠"  "8♣"  "10♠" "Q♦"  "Q♣"  "K♥"  "7♥"  "2♣"  "2♥"  "10♦"
> shuffledDecks[[2]]
 [1] "7♠"  "5♦"  "6♥"  "Q♣"  "K♥"  "J♦"  "Q♠"  "Q♥"  "3♦"  "4♥"  "2♦"  "A♠"  "9♦"  "4♣"  "7♣"  "8♦"  "4♠"  "5♠"  "K♦"  "3♥" 
[21] "6♣"  "A♣"  "10♥" "8♠"  "8♣"  "J♣"  "J♠"  "10♦" "7♦"  "5♣"  "10♣" "9♣"  "K♣"  "K♠"  "8♥"  "6♠"  "2♠"  "5♥"  "3♣"  "J♥" 
[41] "A♦"  "3♠"  "4♦"  "9♥"  "A♥"  "6♦"  "9♠"  "7♥"  "2♥"  "10♠" "2♣"  "Q♦" 
> 
...