Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Zadatak s roka 19.04.05. RELATION
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Strukture podataka i algoritmi
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Ema
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 02. 2005. (12:44:59)
Postovi: (9C)16
Sarma = la pohva - posuda
= 6 - 0

PostPostano: 19:27 sub, 11. 2. 2006    Naslov: Zadatak s roka 19.04.05. RELATION Citirajte i odgovorite

Dana je binarna relacija R kod koje je domain1=domain2={1,2,...,n}. Neovisno o implementaciji atp-ova napisite
a) funkciju sa prototipom int tranzitivna (RELATION R, int n) koja vraca 1 ako je R tranzitivna relacija,a 0 u protivnom.
b) funkciju sa prototipom void ispis_klase (RELATION R, int n) koja ispisuje sve klase ekvivalencije relacije R (u ovom podzadatku R je relacije ekvivalencije), svaku klase treba ispisati samo jednom.
smijete koristiti pomocne a.t.p.ove ali ne i dodatna polja.

kako provjeriti da je R binarna relacija, tj kako pogledati da li za svaki element iz domain 1 nesto vrijedi? (elementi nisu nikako sortirani?)
Dana je binarna relacija R kod koje je domain1=domain2={1,2,...,n}. Neovisno o implementaciji atp-ova napisite
a) funkciju sa prototipom int tranzitivna (RELATION R, int n) koja vraca 1 ako je R tranzitivna relacija,a 0 u protivnom.
b) funkciju sa prototipom void ispis_klase (RELATION R, int n) koja ispisuje sve klase ekvivalencije relacije R (u ovom podzadatku R je relacije ekvivalencije), svaku klase treba ispisati samo jednom.
smijete koristiti pomocne a.t.p.ove ali ne i dodatna polja.

kako provjeriti da je R binarna relacija, tj kako pogledati da li za svaki element iz domain 1 nesto vrijedi? (elementi nisu nikako sortirani?)


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:38 sub, 11. 2. 2006    Naslov: Re: Zadatak s roka 19.04.05. RELATION Citirajte i odgovorite

[quote="Ema"]kako provjeriti da je R [color=red]binarna[/color] relacija, tj kako pogledati da li za svaki element iz domain 1 nesto vrijedi? (elementi nisu nikako sortirani?)[/quote]

Vjerojatno mislis na [b]tranzitivnu[/b] operaciju. ;)

Ja bih to tvrdom islom:

[code:1]for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
for(k = 1; k <= n; k++)
if ((i,j) € R i (j,k)€ R i NIJE (i,k)€R) return 0;
return 1;[/code:1]

Ili, sitno optimizirano:

[code:1]for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
if ((i,j) € R)
for(k = 1; k <= n; k++)
if ((j,k)€ R i NIJE (i,k)€R) return 0;
return 1;[/code:1]

Sorry, ne znam napamet kako se zovu funkcije, ali i ovo bi trebalo pomoci (€ mi je pripadnost relaciji). ;)

Pod b) (uz pretpostavku da je R relacija ekvivalencije; dakle, to ne provjeravamo):

[code:1]for(i = 1; i <= n; i++) {
LISTA = prazna; (moze i stog ili bilo sto drugo za cuvanje niza elemenata)
for(j = 1; j <= n; j++)
if ((i,j) € R)
if (j<i) break; else dodaj j u listu LISTA;
if (LISTA nije prazna) ispisi listu LISTA;
}[/code:1]

:wave:
Ema (napisa):
kako provjeriti da je R binarna relacija, tj kako pogledati da li za svaki element iz domain 1 nesto vrijedi? (elementi nisu nikako sortirani?)


Vjerojatno mislis na tranzitivnu operaciju. Wink

Ja bih to tvrdom islom:

Kod:
for(i = 1; i <= n; i++)
  for(j = 1; j <= n; j++)
    for(k = 1; k <= n; k++)
      if ((i,j) € R i (j,k)€ R i NIJE (i,k)€R) return 0;
return 1;


Ili, sitno optimizirano:

Kod:
for(i = 1; i <= n; i++)
  for(j = 1; j <= n; j++)
    if ((i,j) € R)
      for(k = 1; k <= n; k++)
        if ((j,k)€ R i NIJE (i,k)€R) return 0;
return 1;


Sorry, ne znam napamet kako se zovu funkcije, ali i ovo bi trebalo pomoci (€ mi je pripadnost relaciji). Wink

Pod b) (uz pretpostavku da je R relacija ekvivalencije; dakle, to ne provjeravamo):

Kod:
for(i = 1; i <= n; i++) {
  LISTA = prazna; (moze i stog ili bilo sto drugo za cuvanje niza elemenata)
  for(j = 1; j <= n; j++)
    if ((i,j) € R)
      if (j<i) break; else dodaj j u listu LISTA;
  if (LISTA nije prazna) ispisi listu LISTA;
}


Wave



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Zvone
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 07. 2003. (13:09:44)
Postovi: (9D)16
Sarma = la pohva - posuda
67 = 74 - 7

PostPostano: 0:37 ned, 12. 2. 2006    Naslov: Citirajte i odgovorite

[quote]Sorry, ne znam napamet kako se zovu funkcije, ali i ovo bi trebalo pomoci (€ mi je pripadnost relaciji).[/quote]
Nazalost bas zbog ovog (po meni) propusta u definiciji atp-a RELATION stvar se jos mrvicu zakomplicira. Naime, u definiciji atp-a _ne postoji_ funkcija poput in_relation(RELATION R, domain1 a, domain2 b) koja vraca 1 ako su a i b u relaciji R, a 0 ako nisu. Zbog toga trebamo sami napisati nesto slicno:
[code:1]int in_relation (RELATION R, domain1 a, domain2 b)
{
SET temp; // elementtype od ovog set-a je domain2
COMPUTE2 (R, a, &temp);
if (MEMBER(b, temp))
return 1;
else
return 0;
}[/code:1]
i onda umjesto if (aRb) pisati if (in_relation(R, a, b)).

Cini mi se da se ljudi najvise boje relacija bas zbog toga sto su u definiciji atp-a kripticne COMPUTE1 i COMPUTE2 umjesto puno jednostavnije funkcije in_relation...
(npr. COMPUTE2(RELATION R, domain1 a, SET* S) postavlja *S=[latex]\{b\in domain2\;:\;(a,\;b)\in R\}[/latex])
Citat:
Sorry, ne znam napamet kako se zovu funkcije, ali i ovo bi trebalo pomoci (€ mi je pripadnost relaciji).

Nazalost bas zbog ovog (po meni) propusta u definiciji atp-a RELATION stvar se jos mrvicu zakomplicira. Naime, u definiciji atp-a _ne postoji_ funkcija poput in_relation(RELATION R, domain1 a, domain2 b) koja vraca 1 ako su a i b u relaciji R, a 0 ako nisu. Zbog toga trebamo sami napisati nesto slicno:
Kod:
int in_relation (RELATION R, domain1 a, domain2 b)
{
    SET temp; // elementtype od ovog set-a je domain2
    COMPUTE2 (R, a, &temp);
    if (MEMBER(b, temp))
        return 1;
    else
        return 0;
}

i onda umjesto if (aRb) pisati if (in_relation(R, a, b)).

Cini mi se da se ljudi najvise boje relacija bas zbog toga sto su u definiciji atp-a kripticne COMPUTE1 i COMPUTE2 umjesto puno jednostavnije funkcije in_relation...
(npr. COMPUTE2(RELATION R, domain1 a, SET* S) postavlja *S=)


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Strukture podataka i algoritmi Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan