Diff for ''

Revision 1
Time:
2024-06-13 22:33
Revision 3
Author:
black
Time:
2026-10-04 13:39
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
# Prolog

<{ForumPost(poster="osk", timestamp=2011-05-11 17:36:37)}>
č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ý
<{/ForumPost}>

<{ForumPost(poster="PetrK", timestamp=2011-05-11 20:13:54)}>
Tohle by mohlo fungovat, ale casova narocnost neni uplne nejlepsi.
  
graf je reprezentovan seznamem sousedu:
sousedi(Vrchol, \[seznam sousedu]).

    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).


<{/ForumPost}>

<{ForumPost(poster="QZuzka", timestamp=2011-05-12 14:52:05)}>
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---
<{/ForumPost}>

<{ForumPost(poster="Him", timestamp=2011-05-12 16:35:36)}>
[http://forum.matfyz.info/viewtopic.php?f=169&t=7677](http://forum.matfyz.info/viewtopic.php?f=169&t=7677)
[http://forum.matfyz.info/viewtopic.php?f=169&t=7672](http://forum.matfyz.info/viewtopic.php?f=169&t=7672)
  
Hlavne tyto dve vlakna vypadaji, ze jsou od jedne osoby :)
<{/ForumPost}>