Hlavolamy

matematické a logické úlohy, hádanky, rébusy
OBSAH

Facebook
Servisné infošky
196
počet optoklamov
Reklama

Penzión Šiška Zuberec sa nachádza na konci obce Zuberec - od nás je do Roháčov nabližšie! Ponúkame vám celoročné ubytovanie v peknom prostredí v blízkosti lesa.

OptoKlamy
Obrázky, z ktorých sa vám prekrížia oči a zakrúti hlava.

Jozef Flavius

Autor: Gendzo macher
Kategória: Matematické
Publikovaný: 07.03.2010 / Počet zobrazení: 18942

Jozef Flavius - židovský kňaz, historik a učenec, žil v prvom storočí nášho letopočtu. Počas svojho života vytvoril niekoľko literárnych a autobiografických diel, v ktorých zachytáva udalosti jeho doby, napríklad i z obdobia prvej židovskej vojny. A práve k tomuto obdobiu života Jozefa Flavia - k vojne židov a Rimanov, sa viaže legenda, ktorá sa stala základom pre tento hlavolam.
Doplnené 21.5.2010 - riešenie pomocou MATLAB algoritmu.
Riešenie hlavolamu:
Riešenie úlohy je na obrázku nižšie. Jozef sa musí v kruhu postaviť na pozíciu 31, druhý vojak na pozíciu číslo 16.

Riešenie Jozefovho problému

Doplnené 21.5.2010 - všeobecné riešenie pomocou algoritmu:
Všeobecné riešenie tohto hlavolamu pomocou algoritmu mi zaslal Juraj Hledík z Bratislavy. Algoritmus je určený pre MATLAB, funguje to však aj v Octave. Spúšťa sa príkazom flavius(s,k,n), kde s,k,n sú parametre:
s - počet vojakov na konci
k - konštanta určujúca koľkého v poradí ostatní zabijú
n - celkový počet vojakov

V pôvodnej hádanke s=2, k=3, n=41. Tu je teda spomínaný zdrojový kód:

function [b]=flavius(s,k,n)
A=ones([n,1]);
i=k-1;
c=1;
m=0;
while norm(A,1)>s
    while (m        if A(c)==1
           m=m+1;
       end
       c=c+1;
       if c==n+1
           c=1;
       end
    end
    if c==1
        A(n)=0;
    end;
    if c>1
        A(c-1)=0;
    end
    m=0;
end
b=[];
for j=1:n
    if A(j)==1
        b=[b;j];
    end
end
endfunction


Algoritmus si možete stiahnuť aj ako súbor flavius.m (klikni pravým tlačidlom myši a zvoľ možnosť "Uložiť ako..."). Jurajovi za príspevok do tohto hlavolamu prináleží sľúbená odmena z internetového obchodu Igelitka.sk (sám si vybral :-)).

Na vaše všeobecné riešenie pomocou matematického vzorca čakám aj naďalej...

- zadanie hlavolamu
Dobre30 Zle24
DISKUSIA
Martin (neregistrovaný): Mala pripomienka
V zadaní sa píše že Flavius bol kňaz a nesúhlasil so samovraždou. Predpokladám, že z toho istého dôvodu nesúhlasil ani so zabíjaním vlastných bojovníkov. Je predsa iné zabiť v boji nepriateľa a iné niekoho (známeho, priateľa) popraviť, ako sa píše v zadaní. Teda z toho vyplýva, že Flavius by zrejme nebol zabil svojho spolubojovníka keby to ukázal los. Ak bol rovnaký aj ten vojak ktorý mal ostať nažive spolu s ním, ostáva zodpovedať otázku: Kto (by) zabil vojaka s číslom 39 (teda toho kto mal byť popravený ako 39-ty)? Aj keď z filozofického hľadiska by sa možno dalo povedať že vojak č.40 by mohol konal v sebaobrane, hlavne ak by bol č.39 veľmi agresívny...
09.04.2010, 07:51
fisian: Algoritmus
Zdravim,

uz davnejsie som poslal vseobecny algoritmus v MATLABe na horeuvedeny mail, ale nedostal som odpoved. Chcel som vediet, ci je ok. Vdaka,

fisian
16.05.2010, 14:23
Gendzo macher: pre fisian:
Ospravedlňujem sa, pozriem sa na to a odpíšem do emailu.
Gendzo
17.05.2010, 22:16
Risi: ach
neviem kolko sa mordujem nad matematickym vzorcom a stale nic :( pokial sa to da tak som uplne vymlety :(
03.03.2012, 20:51
Siki (neregistrovaný): zbabelci
Do stredu kruhu
02.12.2013, 17:08
RadoDaj (neregistrovaný): Vzorec
S tým vzorcom to bude asi rovnako jednoduché ako nájsť vozrec pre n-té prvočíslo. Ale to len tak na prvý pocit...
06.01.2014, 09:42
SeaWolF (neregistrovaný): Moje riesenie
Z technickych dovodov pozmenime vyznam premennej s:
n - celkovy pocet vojakov
k - kolky v poradi ide na odstrel
s - poradie vojaka od konca
Nech n, k, s su prirodzene cisla pricom s <= n.

Funkcia flavius(n, k, s) vrati
napr. flavius(41, 3, 1) = 31, flavius(41, 3, 2) = 16, flavius(41, 3, 3) = 35, ...

Implementacia (C/Java):
int flavius(int n, int k, int s) {
return n < s ? 0 : (1 + (flavius(n - 1, k, s) + k - 1) % n);
}

Vztah:
latex.codecogs.com/gif.latex?%5Cbegin%7Balign*%7D%20n%2C%20k%2C%20s%20%26%5Cin%20%5Cmathbb%7BN%7D%2C%20s%20%5Cle%20n%5C%5C%20F_%7Bs-1%7D%5Ek%20%26%3D%200%5C%5C%20F_n%5Ek%20%26%3D%20%28F_%7Bn-1%7D%5Ek%20&plus;%20k%20-%201%20%5Cmod%20n%29%20&plus;%201%20%5Cend%7Balign*%7D
17.02.2014, 08:26
Pridaj nový príspevok do diskusie
Tvoje meno *
Názov *
Kontrola *
Zlá zelina
Vieš o tom, že registrovaní návštevníci nemusia zadávať svoje meno? Registrácia je jednoduchá a je zadarmo. A navyše, nikto sa viac nepodpíše pod tvojím nickom.
Vyhľadávanie
NAJčítanejšie
NAJlepšie
Reklama
© Gendzo macher, 2014  |  www.hlavolamy.sk  |  admin@hlavolamy.sk