A Maple egy fejlett matematikai problémamegoldó és programozói szoftver.
  • xDJCx
    #489
    Régi kérdés, de érdekességképpen itt egy megoldás a Josephus-problémához Mapleben:

    Josephus := proc (n::posint, k::posint)
    local L, m;
    L := [`$`(1 .. n)]; m := 0;
    while 1 < nops(L) do
    m := m+1;
    L := ListTools[Rotate](L, k-1);
    print(m, ".kivégzett: ", L[1]);
    L := remove(t-> evalb(t = L[1]) , L):
    end do; print("Josephus ", L[1], "-ik a körben.")
    end proc;


    Josephus(40, 7);

    http://www.cut-the-knot.org/recurrence/j_solution.shtml
    Összevethető, a link szerint pl.n=100, k=10-nél 26, n=1000, k=3 -nál 604-nek kell lenni.
    Josephus(1000, 3);