čau, nevěděl by někdo jak jednoduše udělat v prologu tohle zadání :
Na vstupu je zadán obecně nesouvislý graf. napište program v prologu, který na výstupu vytiskne výčtem všech uzlů jednotlivé komponenty tohoto grafu.
za jakoukoliv pomoc budu vděčný
Prolog
-
- Matfyz(ák|ačka) level I
- Příspěvky: 22
- Registrován: 7. 2. 2011 22:41
- Typ studia: Informatika Bc.
Re: Prolog
Tohle by mohlo fungovat, ale casova narocnost neni uplne nejlepsi.
graf je reprezentovan seznamem sousedu:
sousedi(Vrchol, [seznam sousedu]).
graf je reprezentovan seznamem sousedu:
sousedi(Vrchol, [seznam sousedu]).
Kód: Vybrat vše
komp(K):-sousedi(X, _), komponenty([X], [X], [], K).
komponenty([], A, A2, Vyst):-sousedi(X, _), not(obsahuje(X, [A|A2])), komponenty([X], [X], [A|A2], Vyst).
komponenty([], A, A2, [A|A2]).
komponenty([H|T], A, V, Vyst):-sousedi(H, S), naZasobnik(S, T, A, T2, A2), komponenty(T2, A2, V, Vyst).
naZasobnik([], T, A, T, A).
naZasobnik([X|Xs], T, A, T2, A2):-not(member(X, A)), naZasobnik(Xs,[X|T], [X|A], T2, A2).
naZasobnik([_|Xs], T, A, T2, A2):-naZasobnik(Xs, T, A, T2, A2).
obsahuje(X, [H|_]):-member(X, H).
obsahuje(X, [_|T]):-obsahuje(X, T).
-
- Matfyz(ák|ačka) level III
- Příspěvky: 209
- Registrován: 2. 12. 2007 19:51
- Typ studia: Informatika Mgr.
- Bydliště: Praha 4
Re: Prolog
Nějak se nám tu rozmáhají lidi, kdo napíšou zadání a čekaj řešení - občas mi fórum taky hodně pomohlo, ale jak se to teď nahromadilo u prologu, tak to fakt nevypadá dobře. Už proto, že třeba někteří cvičící tu to čtou
spíš pro příští, lépe by působilo (alespoň na mě), kdybyste napsali aspoň trochu víc, třeba jak jste to zkusili nebo o jaké reprezentaci uvažujete...
---můj pohled, možná to ostatní vidí jinak---
spíš pro příští, lépe by působilo (alespoň na mě), kdybyste napsali aspoň trochu víc, třeba jak jste to zkusili nebo o jaké reprezentaci uvažujete...
---můj pohled, možná to ostatní vidí jinak---
Re: Prolog
http://forum.matfyz.info/viewtopic.php?f=169&t=7677
http://forum.matfyz.info/viewtopic.php?f=169&t=7672
Hlavne tyto dve vlakna vypadaji, ze jsou od jedne osoby
http://forum.matfyz.info/viewtopic.php?f=169&t=7672
Hlavne tyto dve vlakna vypadaji, ze jsou od jedne osoby
Pracoval jsem na poměrně hodně materiálech pro různé předměty. Pokud Ti něco z toho ušetřilo čas, vyjádři svůj dík v podobě pár satoshi: 1H5JPTrsXie7epAQXbXhMjdgwyLbJ5NHBW