22 lines
553 B
R
22 lines
553 B
R
josephusProblem <- function(n, k, m)
|
|
{
|
|
prisoners <- 0:(n - 1)
|
|
exPos <- countToK <- 1
|
|
dead <- integer(0)
|
|
while(length(prisoners) > m)
|
|
{
|
|
if(countToK == k)
|
|
{
|
|
dead <- c(dead, prisoners[exPos])
|
|
prisoners <- prisoners[-exPos]
|
|
exPos <- exPos - 1
|
|
}
|
|
exPos <- exPos + 1
|
|
countToK <- countToK + 1
|
|
if(exPos > length(prisoners)) exPos <- 1
|
|
if(countToK > k) countToK <- 1
|
|
}
|
|
print(paste0("Execution order: ", paste0(dead, collapse = ", "), "."))
|
|
paste0("Survivors: ", paste0(prisoners, collapse = ", "), ".")
|
|
}
|