Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dobrý večer rád bych poprosil o spolupráci při řešení následujícího příkladu:
V jedné kanceláři jsou dva zaměstnanci, každý den dostávají společně x koblih. Postupně se střídají s odběrem koblih a taktéž je zadáno, kolik koblih si smí vzít najednou = y. Podmínka je však, že vždy alespoň jednu. Každý z nich se snaží brát tolik koblih, aby se nedostal do situace, kdy si musí vzít poslední.
Úkolem je přijít na vztah pro parametry x a y, který mi řekne, kdo bude brát poslední koblihu. V případě, že mohou nastat obě situace měl bych zjistit, kolik koblih si vezme první, aby na něj nezbyla poslední kobliha.
Příklad 1:
Počet koblih - 7
Maximální odběr - 3
= Obě situace - první bere 2
Příklad 2:
Počet koblih - 6
Maximální odběr - 4
= První bere poslední koblihu
Příklad 3:
Počet koblih - 4
Maximální odběr - 3
= Druhý bere poslední koblihu
Doufám, že zadání je pochopitelné. Budu vděčný za jakoukoliv radu. Nejsem si jistý do které úrovně matematiky tento příklad spadá proto jsem jej umístil do (Ostatní) - prosím o případné přesunutí.
Předem chci poděkovat za toto fórum, o kterém jsem, do poslední chvíle, neměl tušení, že existuje.
Velký dík těm, kteří nad tímto příkladem strávili méně či více času.
Offline
↑ Stýv:
Už jsem nějaký rok pryč ze školy. Zadaní pochází z sbírky úloh pro programátory. Sbírka byla v angličtině asi 20-30úloh, které sestavil jedinec. Jakmile jsem na této sbírce cvičil tak jsem se na tomto příkladě dost zarazil a dodnes nevyřešil. Proto řešení nijak nespěchá, ale zvědavost je velká.
Jednalo se o sbírku pro samouky začátečníky, proto i řešení by nemělo být složité.
Díky za tvůj čas
Offline
opravdu to neni složitý.
pokud jsi na řadě a zbývá 1, prohráváš.
pokud zbývá, 1+(y+1), taky prohráváš, protože ať vezmeš kolik chceš, soupeř dobere tak, aby zbyla 1.
pokud zbývá, 1+(y+1)+(y+1), taky prohráváš, protože ať vezmeš kolik chceš, soupeř dobere tak, aby zbyla 1+(y+1)...
Offline
Moc díky. I tak si ale stále nedovedu odvodit, kdy vyhraje první a nebo když nastane situace, že mohou vyhrát oba, tak kolik bude první tah. Dokážu si to dost dobře představit na nízkých číslech, ale když bude počet koblih 100 a maximální odběr třeba 3. Tak se úplně ztratím, protože tam bude takové množství kroků, že může v průběhu vyhrát kdokoliv.
Offline
↑ franmilec:
Tak to spolu probereme
Jak už psal↑ Stýv: pro tvou výhru je důležité abys byl na tahu, když zbývá y+1 kolih, Ty vezmeš y - koblih a na soupeře zbyde poslední a prohrává.
Tento princip bude fungovat vždy, když koblih bude tolik, že bude beze zbytku dělitelný y+1, (počítačově řečeno x mod (y+1) = 0) a ty budeš právě na tahu.
Tak tedy 1.případ
Koblih x a to tolik, že x mod (y+1) = 0, na tahu ty.
Vezmeš y koblih, na soupeře zbývá tolik kobilh, že jejich počet dělený y+1 dává zbytek 1. (pokud už je to jen jedna kobliha tak prohrál)
Teď soupeř odeere nějaký počet koblih (označme ho např k<=y)) a ty musíš odebrat takový počet, aby pro tvůj oděr (m) platilo: m =y+1-k, jinými slovy řečeno musíš odebrat tolik koblh, aby počet odebraných koblih soupeřem a koblih idebraných tebou byl y+1, k+m=y+1)
Takto budeš pokračovat až na něho opět zbyde poslední kobliha.
Strategie pro tvou výhru je:
Nejdříve odebereš y koblih, a potom vždy tak, aby počet koblih odebraných soupeřem a tvůj odběr dával součet y+1.
2.případ
Koblih x a to tolik, že x mod (y+1) <>0, 1 (zbytek po dělení je číslo 2 až y), na tahu ty.
Tvou strategií musí být to, aby po tvém prvním tahu zbylo na soupeře tolik koblih, že x' mod (y+1) = 1
V dalších tazích pak už jen opět použiješ k+m=y+1
V ostatních případech pokud soupeř bude znát vítěznou strategii tak prohraješ.
Tedy abys vždy vyhrál, pak pokud platí x mod (y+1) = 1 necháš jako prvního hrát soupeře, jinak začneš ty a budeš postupovat takto:
1. x mod (y+1) = 1: začne soupeř (soupeř odebírá k, ty odebíráš m)
počty tebou odebíraných koblih (v každém kole) : m = y+1 - k
2. x mod (y+1) <> 1 (tedy x mod (y+1) = 2,....y,0): začneš ty
v prvním kole odebereš tak aby platilo: když x mod (y+1)=0 pak
m = y
jinak
m = (x mod (y+1)) - 1
v dalších kolech pak opět: m = y+1 - k
Offline