Diff for ''

Revision 15
Author:
black
Time:
2022-10-16 02:34
Revision 1
Time:
2024-06-13 22:33
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
<div style="clear: right; float: right; line-height: 1.4; margin: 0 0 1em 1em; width: 16em; border: 1px solid #aaa;">
{| class="wikitable" style="font-size: 85%; margin-top: 0; width: 100%;"
|-
| style="font-size: 120%; font-weight: bold; text-align: center; background: #def;" |Prednášky z [[Vyčíslitelnost II_|Vyčísliteľnosti II]]
|-
!Obsah
|-
||
*[[TIN065 Prehľad|Prehľad]]
*[[TIN065 Prednáška 01|Prvá prednáška]]
*[[TIN065 Prednáška 02|Druhá prednáška]]
*[[TIN065 Prednáška 03|Tretia prednáška]]
*[[TIN065 Prednáška 04|Štvrtá prednáška]]
*[[TIN065 Prednáška 05|Piata prednáška]]
*[[TIN065 Prednáška 06|Šiesta prednáška]]
*[[TIN065 Prednáška 07|Siedma prednáška]]
*[[TIN065 Prednáška 08|Ôsma prednáška]]
*[[TIN065 Prednáška 09|Deviata prednáška]]
*[[TIN065 Prednáška 10|Desiata prednáška]]
*[[TIN065 Prednáška 11|Jedenásta prednáška]]
*Dvanásta prednáška
*[[TIN065 Zhrnutie|Zhrnutie na skúšku]]
|}
</div>
# 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}>