ithDuplicatedPermutation <- function(n, m, i) { c <- rep(m, n) N <- n * m a <- integer(N) P <- factorial(N) / factorial(m) ^ n for (j in 1:N) { for (k in 1:n) { if (!c[k]) next p <- P * c[k] / (N - j + 1) if (i <= p) { a[j] <- k c[k] <- c[k] - 1 P <- p break } i <- i - p } } a } for (n in c(1, 2, 3, 123456, 234567, 369600)) { }
Standard input is empty
入力: 1 出力: [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4] 入力: 2 出力: [1, 1, 1, 2, 2, 2, 3, 3, 4, 3, 4, 4] 入力: 3 出力: [1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 3, 4] 入力: 123456 出力: [2, 2, 2, 3, 3, 1, 4, 3, 4, 1, 1, 4] 入力: 234567 出力: [3, 2, 4, 4, 2, 4, 3, 3, 1, 1, 1, 2] 入力: 369600 出力: [4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1]