Article View: pl.comp.lang.c
Article #538Re: rekurencja a pamiec ?
From: Krzysztof Swiatkowski
Date: Wed, 07 Jan 1998 21:23
Date: Wed, 07 Jan 1998 21:23
40 lines
2765 bytes
2765 bytes
On 6 Jan 1998 12:02:10 GMT, in pl.comp.lang.c Piotr Auksztulewicz <piotras@zeus.polsl.gliwice.pl> wrote: >Michał Suski <suseu@polbox.com> wrote: >: moze sie i da, ale to bedzie syzyfowa praca w przypadku przeszukiwania >: labiryntów dla znalezienia drogi z początku na koniec. ale i tak dzięki > >Nieprawda! Algorytm nierekurencyjny jest bardzo prosty! Oczywiście >musi być to algorytm z powrotami, ale nie mysi być rekurencyjny. Nie musi, niezbyt oszczędny pamięciowo i czasowo algorytm rozwiązywania labiryntu, określany mianem "wypalania stepu" polega na stworzeniu tablicy opisującej labirynt, i przejrzeniu jej "n" razy, a przy każdym przejściu jeżeli wartość w komórce jest "x" to sprawdzamy sąsiadujące komórki i jeśli sa puste to wpisujemy do nich wartość "x+1" jeżeli jesteśmy w sąsiedztwie wyjścia to już koniec (chyba ze szukamy wszystkich dróg a nie najkrótszej). Teraz można wrócic po "sladach" czyli malejące liczby doprowadzą nas od wyjscia do wejscia. Warunek stopu to oczywiście brak wartości której szukamy, wtedy nie ma przejscia. Mozna to oczywiście jeszcze optymalizować (np dodajac dwie listy punktow w labiryncie), ale powyższe jest najprostszą wersja. Oczywiście tablice-labirynt trzeba odpowiednio spreparowac czyli ustalić niezbedna ilość bajtów do reprezentacji, wartosci zastrzezone na wejscie,wyjscie(a) i sciany. Np.: dla labiryntu ekranowego(80x25), wystarczą 2bajty na komórkę i np 0xFFFD na wejscie, 0xFFFE na wyjscie oraz 0xFFFF na ścianę. Poza tym ten algorytm ma tą zaletę że się ładnie wizualizuje :-). Hobbit PS. Nie do końca jestem pewien czy kolejne przejścia określic mianem powrotu czy iteracji, ale poza tym jest OK :-). -- -------------------------------------| Krzysztof Swiatkowski - Lodz, Poland | replying cut bezspam from my address e-Mail: hobbit@dom.vr.pl.bezspam | odpowiadajac usun bezspam z adresu "Kto sie pozno polozy, wczesnie z lozka wyskoczy ten od tego glupieje i nie widzi na oczy" >Gra Endera< O.S.Card
Technical Details
Message-ID:
<34b3b199.68163@news.nask.org.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mailReferences:
<01bd189a$8c52aaa0$LocalHost@suseu> <68ol25$qff$1@domek.slodki.domek> <01bd1971$50cc3140$48fa74c3@suseu> <68pdoh$dct$1@domek.slodki.domek> <01bd1a67$beae75a0$08fa74c3@suseu> <68t6g2$cgm@zeus.polsl.gliwice.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mail From: hobbit@dom.vr.pl.bezspam (Krzysztof Swiatkowski) Newsgroups: pl.comp.lang.c Subject: Re: rekurencja a pamiec ? Date: Wed, 07 Jan 1998 22:23:56 +0100 Organization: Bag End Lines: 40 Message-ID: <34b3b199.68163@news.nask.org.pl> References: <01bd189a$8c52aaa0$LocalHost@suseu> <68ol25$qff$1@domek.slodki.domek> <01bd1971$50cc3140$48fa74c3@suseu> <68pdoh$dct$1@domek.slodki.domek> <01bd1a67$beae75a0$08fa74c3@suseu> <68t6g2$cgm@zeus.polsl.gliwice.pl> NNTP-Posting-Host: pmone250.lodz.pdi.net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit