June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -1 +1,5 @@
|
|||
josephus(n, k, m=1) = n == m ? collect(0:m-1) : mod(josephus(n-1, k, m) + k, n)
|
||||
using Memoize
|
||||
@memoize josephus(n::Integer, k::Integer, m::Integer=1) = n == m ? collect(0:m .- 1) : mod.(josephus(n - 1, k, m) + k, n)
|
||||
|
||||
@show josephus(41, 3)
|
||||
@show josephus(41, 3, 5)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,14 @@
|
|||
julia> print(josephus(41,3))
|
||||
[30]
|
||||
julia> print(josephus(41,3,5))
|
||||
[3,15,21,30,34]
|
||||
function josephus(n::Integer, k::Integer, m::Integer=1)
|
||||
p, i, seq = collect(0:n-1), 0, Vector{typeof(n)}(0)
|
||||
while length(p) > m
|
||||
i = (i + k - 1) % length(p)
|
||||
push!(seq, splice!(p, i + 1))
|
||||
end
|
||||
return seq, p
|
||||
end
|
||||
|
||||
seq, surv = josephus(41, 3)
|
||||
println("Prisoner killing in order: $seq\nSurvivor: $surv")
|
||||
|
||||
seq, surv = josephus(41, 3, 3)
|
||||
println("Prisoner killing in order: $seq\nSurvivor: $surv")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue