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

Michal Lukac michal.lukac na fstroj.uniza.sk
Středa Prosinec 9 23:38:07 CET 2015


takto nejak?


loop{
  krok_dopredu
  stoj
  if(start_policko) goto  loop2
}

loop2{
  krok_dopredu
}

m.


-----Original Message----- 
From: Pavel Troller
Sent: Wednesday, December 09, 2015 7:28 PM
To: HW-news
Subject: Re: Logická úloha na zítřek (pátek), ale můžete řešit už dnes :-).

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 
>>>>>> 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:-).
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list 



Další informace o konferenci Hw-list