Algoritmus: Határozza alakja két szektor által körülírt egy tetszőleges elérési utat, majd töltse ki az egyik

szavazat
2

Megjegyzés: Ez egy kihívást jelentő probléma bárki számára, aki szereti a logikai problémák, stb

Vegyünk egy téglalap alakú kétdimenziós rácsot H magasságú és szélességű W. minden hely a rács is van értéke, sem 0 1vagy 2. Kezdetben minden hely a rács egy 0, kivéve a terek végig mind a négy széle, amelyek kezdetben a 2.

Ezután tekintsünk egy tetszőleges útját a szomszédos (vízszintesen vagy függőlegesen) rács tereit. Az ösvény indul egy 2és végződik egy másik 2. Minden hely az úton egy 1.

Az útvonal osztja a rács két „ágazat” a 0terek. Van olyan tárgy, amely nyugszik meghatározatlan 0térben. A „szektor”, amely nem tartalmazza az objektumot kell teljesen feltölteni 2.

Határozza meg egy algoritmust, amely meghatározza a terek, hogy kell válnia 2a 0, adott egy tömböt (listát) értékek ( 0, 1, vagy 2), amely megfelel az értékeket a rács, majd fentről lefelé, majd balról jobbra. Más szóval, az elem 0 indexű a tömb tartalmazza az érték a bal felső térben a háló (kezdetben 2). Az elem 1 indexű értékét tartalmazza a hely a rács, amely a bal oldali oszlopban, a második a tetején, és így tovább. Az elem a index H értékét tartalmazza a hely a rács, amely a felső sorban, de a balról második, és így tovább.

Miután az algoritmus befejezi, és az üres „szektor” kifejezés teljesen megtöltve 2s, ugyanazt az algoritmust kell lennie ahhoz, hogy nem ugyanaz a folyamat újra. A második (és) időben, a pálya még mindig húzott egy 2másik 2, az egész terei 0, de a „rács” kisebb, mert az 2ok, hogy vannak körülvéve más 2ok nem lehet megnyomni az út (mivel az út mentén terek 0).

Köszönöm bárki képes rájönni nekem, nagyon nagyon. Ez nem kell, hogy legyen egy adott programozási nyelv; sőt, pszeudo-kód, vagy csak angol is elegendő. Köszönöm mégegyszer! Ha bármilyen kérdése van, csak hagyjuk egy megjegyzést, és azt kell adnia, amit meg kell határozni.

A kérdést 15/05/2010 22:07
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
3

Nekem úgy tűnik, az alap árvíz töltési algoritmus a munkát:

  • Olvassa be tömb első 0megtalálni, majd indítsa el az árvíz kitöltő onnan, kitöltve a 0régió néhány más számot, mondjuk 3- ez megjelölik az egyik „szektorok”.
  • Ha ez kész, újra beolvasni egy 0, és az árvízi töltse onnan, töltő egy 4ebben az időben.
  • Során mind a kitöltés, akkor lehet ellenőrizni, hogy megtalálta a tárgyat, vagy sem; amelyik töltse úgy találja, hogy közben nyomon követheti ezt a számot.
  • Miután mindkét töltetet történik, ellenőrizze, hogy mely számozott régiónak volt a célja, hogy - az árvíz töltse a régióban ismét vissza 0ebben az időben.
  • Árvíz töltse ki a többi számozott régióban 2, és kész.

Ez lesz a munka minden hálórendszerbe, amíg pontosan két 0ágazat, amelyre le egymástól; így újra alkalmazva ugyanazt az algoritmust tetszőleges számú alkalommal rendben van.

Edit: Kisebb csíp, hogy mentse meg az árvíz-kitöltés vagy két -

  • Ha nem találja meg a tárgyat az első árvíz feltöltés, akkor feltételezhető, hogy a többi ágazat, így csak újra töltse a jelenlegi számot 2, és hagyja a többi szektor egyedül (mivel ez már 0-filled).
  • Ellenben, ha ezt megtalálják a tárgyat az első árvíz kitöltés, akkor közvetlenül töltse ki a többi ágazat 2, majd újra töltse az első szektorban 0.
Válaszolt 15/05/2010 22:23
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more