Logická úloha na zítřek (pátek), ale můžete řešit už dnes :-).

Pavel Troller patrol na sinus.cz
Středa Prosinec 9 19:28:46 CET 2015


Zdravím,
  ano, ano, tak nějak... Zdá se, že už ti, co chtěli, se zamysleli, tak tedy
vzhůru se "vzorovým" řešením :-).
  Je třeba si uvědomit, že oba roboti začnou vykonávat tutéž činnost. Nemáme
rekurzi, nemáme proměnné, máme jen jeden "hloupý" test. Tedy, předpokládejme,
že oba roboty necháme jít. Jeden z nich půjde nevhodným směrem, od toho
druhého, druhý pak směrem vhodným - k tomu prvnímu. Jenže ten mu bude "unikat",
neboť právě půjde tím nevhodným směrem.
  Ten, co jde špatným směrem, nikdy nenarazí na startovní políčko druhého
robota, tedy nebude nikdy schopen změnit svůj stav podmíněným skokem a stále
půjde. Zato ten druhý na startovací políčko narazí a tedy "ví", že on je tím,
který jde dobře. Musí tedy nyní druhého robota "dohnat". Ale jak to udělat,
když za tah nejde jít dál než o jedno políčko ? Nu, v té prvé fázi budou 
muset roboti jít pomaleji a v té druhé ten jeden z nich zrychlí na maximální
možnou rychlost. A je to :-).
  Takže program může vypadat např. takto:

WALK:	STAY
	FORWARD
	JP STARTFIELD,RUN
	REPEAT WALK
RUN:	FORWARD
	REPEAT RUN

  V prvním cyklu "WALK" se střídá stání a krok, oba roboti tedy jdou
poloviční možnou rychlostí. Ten, co jde špatně, takto půjde pořád dále, ale
ten, co jde dobře, po nalezení startovacího políčka zrychlí na plnou rychlost
a druhého robota "dožene".
  Zdraví Pavel

> A co kdyby se program skládal ze dvou cyklů, ten první by byl třeba 
> "dopředu a test, čekat"?
> Zbytek zatím psát nebudu, až třeba příště, jestli to někdo nedopíše za mě.
> P.
>
> Pavel Troller wrote:
>> Zdravím,
>>    tato idea napadla každého zatím tuto úlohu řešícího, včetně mého syna
>> a mne. Problém je, že to není jak realizovat, neboť nemáte proměnnou na čítač
>> vzdálenosti. Jediné řešení by tedy bylo používat lineární program, který by
>> mohl nabýt až nekonečné velikosti, a tudy tedy taky ne :-).
>>    Pavel
>>
>>> Moje idea je vzít to jako ve skautu, že by oba roboti chodili v čím dál
>>> větších "kruzích" - tj. +1 -2 +3 -4.
>>>
>>> Ale nevím - moc se mi to nezdá. Asi to zadání chápu špatně, nebo je na mě
>>> ta úloha moc "umělá".
>>>
>>> Ondřej
>>>
>>> Dne 9.12.2015 v 9:59 Pavel Troller napsal(a):
>>>> Zdravím,
>>>>     no já jsem čekal, že se někdo ozve, ale kromě dvou / tří dotazů na privátní
>>>> e-mail se nikdo neozval.. Tak jsem myslel, že se na to všichni vybodli, nebo
>>>> to považovali za tak jednoduché, že jim ani nestálo za to odpovědět :-).
>>>>     Máte něco ?
>>>>       Zdraví Pavel
>>>>
>>>>> Bude řešení? Nebo mám hledat ve SPAMu/serveru atd?
>>>>>
>>>>> Ondřej
>>>>>
>>>>> Dne 3.12.2015 v 16:51 Pavel Troller napsal(a):
>>>>>> Až na něco přijdete, nedávejte sem hned výsledek, ať si ostatní ještě mohou
>>>>>> popřemýšlet:-). Rozluštění třeba zítra večer:-).


Další informace o konferenci Hw-list