-
Data: 2009-01-23 16:17:00
Temat: Re: Zamknięta pętla
Od: Maciej Piechotka <u...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Tomasz Kiełpiński <F...@p...onet.pl> writes:
> 'Twas brillig when Maciej Piechotka wrote:
>> Tomasz Kiełpiński <F...@p...onet.pl> writes:
>>> Witam,
>>> Przejrzałem archiwum grupy, pogooglałem, ale wszystko wskazuje na to
>>> że googlać nie umiem, bo nie wierzę żeby podobny temat nie był
>>> poruszany :)
>>> Szukam algorytmu albo wręcz metody matematycznej (mam cały czas
>>> nieodparte wrażenie, że problem da się rozwiązać na poziomie pierwszej
>>> klasy liceum) na sprawdzenie zamkniętej pętli. Chodzi o jeden z
>>> elementów progamu rozwiązującego łamigłówki SlitherLink (znane również
>>> jako Fences lub Pokropek)
>>> Mam daną tablicę dwuwymiarową, zawierającą informacje o każdym
>>> kwadraciku. Wymiary x,y określają położenie kwadracika na
>>> płaszczyźnie, natomiast w wartości zakodowane jest położenie kwadratu
>>> względem pętli (na zewnątrz lub wewnątrz) i stan każdego z jego boków
>>> (Jedna z trzech wartości: jest/nie ma/nie jest oznaczone)
>>> Jak sprawdzić/policzyć czy np. narysowanie górnej krawędzi w
>>> kwadraciku na pozycji 1,1 spowoduje domknięcie pętli.
>>> Pozdrawiam,
>>> Kiełpiś
>> Hmm. Czy nie dało by się potraktować tego jak grafu gdzie koszt
>> przejścia przez nieoznaczoną krawędz jest duży (np. X*Y*1000) a koszt
>> przejścia na przez zaznaczoną mały (np. 1)? Teraz szukasz optymalnej
>> drogi dla każdych z par punktów (tzn. 4 punkty więc 6 dróg) i znajdujesz
>> miminum. Jeśli wynosi ono X*Y*1000 (tzn przejście jest przez ten punkt)
>> to nie ma takiej pętli. Jeśli jest mniejsza to taka pętla istnieje.
>> Pozdrawiam
>> PS. Piszę tak jak rozumiem problem - nie znam tej łamigłówki.
>
> Dzięki Maćku za zainteresowanie.
>
> Koncepcja brzmi dość ciekawie, ale (chyba?) nie spełnia moich
> oczekiwań. Może spróbuję narysować o co chodzi?
>
> Przykład I:
> .___. .___.
> | | | |
> |1,1|2,1|3,1|
> . .___. .
> | |
> |1,2 2,2 3,2|
> .___.___. .
>
>
> Przykład II:
> . .___.___.
> | |
> |1,1 2,1 3,1|
> . . . .
> | |
> |1,2 2,2 3,2|
> .___.___. .
>
> Z mojego punktu widzenia nie ma znaczenia czy brak linii wynika z ze
> stanu "BRAK" czy ze stanu "NIE OZNACZONY" danej krawędzi kwadratu. W
> przykładzie pierwszym umieszczenie linii na dole kwadratu 3,2
> spowoduje zamknięcie pętli (przy czym wszystkie kwadraty z wyjątkiem
> 2,1 będą wewnątrz tej pętli). W drugim przypadku pętla pozostanie
> otwarta. Pętla nie rozgałęzia się natomiast może na tym etapie
> rozwiązywania urywać się. Ogólnie można powiedzieć, że chodzi o
> sprawdzenie czy istnieje jakakolwiek droga między dwoma punktami.
>
> Pozdrawiam,
> Kiełpiś
To dobrze chyba zrozumiałem. Przejściu po linii daj koszt równy np. 1 a po
braku X*Y*1000 (albo nie dawaj - to zapewne zależy od konkretnego
algorytmu
Jak masz taką sytłację:
.__. .__.
| | | |
| | | |
. .__. .
| |
| |
.__.__. .
I sprawdzasz dla dolnego kwadratu czy istnieje droga poza tą krawędzią i
jaką ma długość (istnieje inna droga <=> jest pętla).
Tutaj jest droga o długości 11 < 3*4*1000 = 12000 więc zamykamy pętle.
. .__.__.
| |
| |
. . . .
| |
| |
.__.__. .
Tutaj najkrótszą drogą jest 3*4*1000 (dokładnie przez 'nowo zaznaczone'
pole [Albo - nie ma drogi]) więc nie zamyka to pętli.
A algorytmów wyszukiwania drogi w grafie jest mnówtwo - choćby na
wikipedii.
Pozdrawiam
PS. Brak rozgałęzień to wiedza czy wymóg? Jeśli wiedza to można iść po
koleji zaznaczonymi krawędziami aż do końca. Jeśli wymóg to przypisz
drogom z rozgałęzienia koszt 3*4*1000/uczyń nieprzechadzalnymi.
--
I've probably left my head... somewhere. Please wait untill I find it.
Homepage (pl_PL): http://uzytkownik.jogger.pl/
(GNU/)Linux User: #425935 (see http://counter.li.org/)
Następne wpisy z tego wątku
- 24.01.09 05:49 bartekLTG
- 29.01.09 10:42 Tomasz Kiełpiński
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-24 Felgi
- 2025-12-24 2,5 x więcej niż Li-Ion
- 2025-12-24 No i kolejny ograniczony
- 2025-12-24 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-12-24 New York Times zagrożeniem bezpieczeństwa narodowego USA - POTUS D. Trump
- 2025-12-24 Podżeganie?
- 2025-12-24 => Senior Algorithm Developer (Java/Kotlin) <=
- 2025-12-24 otwarcie drugiej obwodnicy Trójmiasta
- 2025-12-24 Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
- 2025-12-23 Prezent dla kierowców od prezydenta Nawrockiego
- 2025-12-23 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-12-23 Warszawa => Senior IT Recruitment Consultant <=
- 2025-12-22 czy wiedziałeś że?
- 2025-12-22 Unijne KOOOORWY mówią że WYCOFUJĄ się z zakazu rejestracji elektryków
- 2025-12-22 Białystok => ERP Microsoft Dynamics 365 Commerce Consultant <=




7 pułapek i okazji - zobacz co cię czeka podczas kupna mieszkania na wynajem