This question already has answers here:
Generating all distinct permutations of a list in R
(11个答案)
4年前关闭。
对于一个自行分配的项目,我决定尝试创建所有可能的井字游戏。为了存储和表示每个游戏,我决定使用9列和362880行的矩阵。每行是一场比赛,其中奇数列是“X”的动作,偶数列是“O”的动作。
(1,2,3,4,5,6,7,NULL,NULL)表示X获胜的游戏。
这就是为什么我要生成不包含重复整数的每九位数字,因为重复整数意味着玩家试图标记已经占用的位置。
以下是一种可能方法的开始
输出:
现在显然存在的问题是每一行都是相同的,而我希望它们每一行都是唯一的。而我一生无法弄清的是如何重新排列
融入所有可能的组合。
(11个答案)
4年前关闭。
对于一个自行分配的项目,我决定尝试创建所有可能的井字游戏。为了存储和表示每个游戏,我决定使用9列和362880行的矩阵。每行是一场比赛,其中奇数列是“X”的动作,偶数列是“O”的动作。
(1,2,3,4,5,6,7,NULL,NULL)表示X获胜的游戏。
这就是为什么我要生成不包含重复整数的每九位数字,因为重复整数意味着玩家试图标记已经占用的位置。
以下是一种可能方法的开始
#create matrix that can contain all possible arrangements of moves on a tic-tac-toe board
tictactoematrix <- matrix(ncol = 9, nrow = 362880)
j = 1
k = 1
#create list of possible moves
move <- list(1,2,3,4,5,6,7,8,9)
#populate every row with numbers 1-9
for(i in 1:362880){
tictactoematrix[i,1] <- move[[1]]
move[1] <- NULL
tictactoematrix[i,2] <- move[[1]]
move[1] <- NULL
tictactoematrix[i,3] <- move[[1]]
move[1] <- NULL
tictactoematrix[i,4] <- move[[1]]
move[1] <- NULL
tictactoematrix[i,5] <- move[[1]]
move[1] <- NULL
tictactoematrix[i,6] <- move[[1]]
move[1] <- NULL
tictactoematrix[i,7] <- move[[1]]
move[1] <- NULL
tictactoematrix[i,8] <- move[[1]]
move[1] <- NULL
tictactoematrix[i,9] <- move[[1]]
move[1] <- NULL
move <- list(1,2,3,4,5,6,7,8,9)
}
输出:
现在显然存在的问题是每一行都是相同的,而我希望它们每一行都是唯一的。而我一生无法弄清的是如何重新排列
move <- list(1,2,3,4,5,6,7,8,9)
融入所有可能的组合。
最佳答案
如果您愿意使用其他软件包,则可以直接通过以下方式进行操作:
library(combinat)
temp <- permn(c(1,2,3,4,5,6,7,8,9))
fullTable <- do.call("rbind", temp)
10-06 10:54