ocaml: phase 5.1 josephus.ml baseline (n=50 k=3, survivor at position 11)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 22s

Classic Josephus problem solved with the standard recurrence:

  let rec josephus n k =
    if n = 1 then 0
    else (josephus (n - 1) k + k) mod n

  josephus 50 3 + 1 = 11

50 people stand in a circle, every 3rd is eliminated; the last
survivor is at position 11 (1-indexed). Tests recursion + mod.

136 baseline programs total.
This commit is contained in:
2026-05-10 03:22:29 +00:00
parent 353dcb67d6
commit 76de0a20f8
3 changed files with 13 additions and 0 deletions

View File

@@ -75,6 +75,7 @@
"max_product3.ml": 300,
"max_run.ml": 5,
"mod_inverse.ml": 27,
"josephus.ml": 11,
"json_pretty.ml": 24,
"kadane.ml": 6,
"lambda_calc.ml": 7,

View File

@@ -0,0 +1,7 @@
let rec josephus n k =
if n = 1 then 0
else (josephus (n - 1) k + k) mod n
;;
josephus 50 3 + 1

View File

@@ -407,6 +407,11 @@ _Newest first._
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
'a tree`) with insert + in-order traversal. Tests parametric ADT,
recursive match, List.append, List.fold_left.
- 2026-05-10 Phase 5.1 — josephus.ml baseline (Josephus problem,
n=50 k=3 → survivor at position 11, 1-indexed). Uses the classic
recursive formula: J(1, k) = 0; J(n, k) = (J(n-1, k) + k) mod n.
Returns 0-indexed survivor; we add 1 for human readability. Tests
recursion, mod, integer arithmetic. 136 baseline programs total.
- 2026-05-10 Phase 5.1 — partition_count.ml baseline (number of
integer partitions of 15 = 176). Classic DP: dp[0] = 1; for each
k from 1..n, for each i from k..n, dp[i] += dp[i - k]. O(n²) time,