r - 在R中反复洗牌
问题描述
我在编写代码迷宫时遇到问题,它会反复洗牌。我写了一行洗牌我的腰,但每次牌组都以同样的方式洗牌。我需要帮助编写代码,以便每次以不同的方式洗牌。
shuffling <-sample(deck,length(deck))
解决方案
这是一个基本的 R 解决方案,它从一组 10 张卡片中生成一个种子向量和 10 个样本。
seeds <- runif(10)*1000000
cards <- 1:10
shuffledDecks <- lapply(seeds,function(aSeed){
set.seed(aSeed)
sample(cards)
})
当我们在 RStudio 对象查看器中检查列表时,我们看到 10 次洗牌中的所有卡片顺序都不同。
如果我们在不使用 While 和 Double For 循环的情况下应用创建一副纸牌中的一种方法来创建一副纸牌,一组 52 张纸牌的 10 次洗牌看起来像这样。
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♦"
>
推荐阅读
- javascript - 无法在 React Router + FIrebase 中划分登录屏幕和注销屏幕
- r - 如何在 gamm mgcv 模型上使用反向链接函数
- python - 用于提取每组的 2 个最新行的数据框
- javascript - stackoverflow 片段与浏览器控制台中的不同 console.log()s - 为什么?
- algorithm - 通过隧道到达目的地的最低成本
- php - 在 Mac Catalina 中设置 INTL
- laravel - 如何测试被调用一次的方法
- php - 它将显示为致命错误:未捕获的错误:找不到类 'eftec\bladeone'
- c - 从 C 中的用户输入打印浮点数的问题
- ubuntu-18.04 - 无法让 nextcloud 在端口 82 上侦听