Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
3073 changed files with 55820 additions and 4408 deletions
20
Task/Josephus-problem/OxygenBasic/josephus-problem.basic
Normal file
20
Task/Josephus-problem/OxygenBasic/josephus-problem.basic
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
uses console
|
||||
|
||||
int n, k
|
||||
n = 41 'prisoners
|
||||
k = 3 'order of execution
|
||||
|
||||
function Josephus(n as int, k as int, m as int) as int
|
||||
int lm, i
|
||||
|
||||
lm = m
|
||||
for i = m + 1 to n
|
||||
lm = (lm + k) mod i
|
||||
next
|
||||
return lm
|
||||
end function
|
||||
|
||||
printl "n = " n chr(9) "k = " k chr(9) "final survivor = " Josephus(n, k, 0)
|
||||
|
||||
printl cr "Enter ..."
|
||||
waitkey
|
||||
34
Task/Josephus-problem/Pluto/josephus-problem.pluto
Normal file
34
Task/Josephus-problem/Pluto/josephus-problem.pluto
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
local fmt = require "fmt"
|
||||
|
||||
local function josephus(n, k, m)
|
||||
if k <= 0 or m <= 0 or n <= k or n <= m then
|
||||
error("one or more parameters are invalid")
|
||||
end
|
||||
local killed = {}
|
||||
local survived = {}
|
||||
for i = 1, n do survived[i] = i - 1 end
|
||||
local start = k
|
||||
while true do
|
||||
local finish = #survived
|
||||
local i = start
|
||||
local deleted = 0
|
||||
while i <= finish do
|
||||
killed:insert(survived:remove(i - deleted))
|
||||
if #survived == m then return {survived, killed} end
|
||||
++deleted
|
||||
i += k
|
||||
end
|
||||
start = i - finish
|
||||
end
|
||||
return {survived, killed}
|
||||
end
|
||||
|
||||
local triples = { {5, 2, 1}, {41, 3, 1}, {41, 3, 3} }
|
||||
for triples as triple do
|
||||
local [n, k, m] = triple
|
||||
print($"Prisoners = {n}, Step = {k}, Survivors = {m}")
|
||||
local sk = josephus(n, k, m)
|
||||
print($"Survived : {fmt.swrite(sk[1])}")
|
||||
print($"Kill order : {fmt.swrite(sk[2])}")
|
||||
print()
|
||||
end
|
||||
15
Task/Josephus-problem/Prolog/josephus-problem-1.pro
Normal file
15
Task/Josephus-problem/Prolog/josephus-problem-1.pro
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
josephus(N, K, Survivors) :- josephus(N, K, 1, Survivors).
|
||||
|
||||
:- table josephus/4.
|
||||
josephus(N, K, M, Survivors) :-
|
||||
K > 0,
|
||||
N > 0,
|
||||
N0 is N - 1,
|
||||
( M = N
|
||||
-> numlist(0, N0, Survivors)
|
||||
; josephus(N0, K, M, Survivors0),
|
||||
findall(Survivor, (
|
||||
member(Survivor0, Survivors0),
|
||||
Survivor is (Survivor0 + K) mod N
|
||||
), Survivors)
|
||||
).
|
||||
5
Task/Josephus-problem/Prolog/josephus-problem-2.pro
Normal file
5
Task/Josephus-problem/Prolog/josephus-problem-2.pro
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
?- josephus(41, 3, Survivors).
|
||||
Survivors = [30].
|
||||
|
||||
?- josephus(41, 3, 5, Survivors).
|
||||
Survivors = [3, 15, 21, 30, 34].
|
||||
|
|
@ -1,12 +1,14 @@
|
|||
FUNCTION josephus (n, k, m)
|
||||
lm = m
|
||||
FOR i = m + 1 TO n
|
||||
lm = (lm + k) MOD i
|
||||
NEXT i
|
||||
josephus = lm
|
||||
END FUNCTION
|
||||
DECLARE FUNCTION josephus! (n!, k!, m!)
|
||||
|
||||
n = 41
|
||||
k = 3
|
||||
PRINT "n = "; n, "k = "; k, "final survivor = "; josephus(n, k, 0)
|
||||
END
|
||||
|
||||
FUNCTION josephus (n, k, m)
|
||||
lm = m
|
||||
FOR i = m + 1 TO n
|
||||
lm = (lm + k) MOD i
|
||||
NEXT i
|
||||
josephus = lm
|
||||
END FUNCTION
|
||||
|
|
|
|||
16
Task/Josephus-problem/Run-BASIC/josephus-problem-1.basic
Normal file
16
Task/Josephus-problem/Run-BASIC/josephus-problem-1.basic
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
n = 41
|
||||
k = 3
|
||||
print "n = "; n; " k = "; k; " final survivor = "; josephus(n, k, 0)
|
||||
end
|
||||
|
||||
function josephus(n, k, m)
|
||||
lm = m
|
||||
for i = m + 1 to n
|
||||
' In Run BASIC there is no MOD operator
|
||||
lm = lm + k
|
||||
lm = lm - int(lm / i) * i
|
||||
' In Just Basic / Liberty BASIC it could be used
|
||||
'lm = (lm + k) mod i
|
||||
next i
|
||||
josephus = lm
|
||||
end function
|
||||
|
|
@ -24,7 +24,7 @@ for (triple in triples) {
|
|||
var n = triple[0]
|
||||
var k = triple[1]
|
||||
var m = triple[2]
|
||||
System.print("Prisoners = %(n), Step = %(m), Survivors = %(m)")
|
||||
System.print("Prisoners = %(n), Step = %(k), Survivors = %(m)")
|
||||
var sk = josephus.call(n, k, m)
|
||||
System.print("Survived : %(sk[0])")
|
||||
System.print("Kill order : %(sk[1])")
|
||||
|
|
|
|||
21
Task/Josephus-problem/XBasic/josephus-problem.basic
Normal file
21
Task/Josephus-problem/XBasic/josephus-problem.basic
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
PROGRAM "Josephus problem"
|
||||
VERSION "0.0000"
|
||||
|
||||
DECLARE FUNCTION Entry ()
|
||||
DECLARE FUNCTION Josephus (n, k, m)
|
||||
|
||||
FUNCTION Entry ()
|
||||
n = 41 'prisoners
|
||||
k = 3 'order of execution
|
||||
|
||||
PRINT "n = "; n, "k = "; k, "final survivor = "; Josephus(n, k, 0)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION Josephus (n, k, m)
|
||||
lm = m
|
||||
FOR i = m + 1 TO n
|
||||
lm = (lm + k) MOD i
|
||||
NEXT
|
||||
RETURN lm
|
||||
END FUNCTION
|
||||
END PROGRAM
|
||||
Loading…
Add table
Add a link
Reference in a new issue