Forum » Programiranje » [C++] razpršene matrike
[C++] razpršene matrike
zala ::
Pozdravljeni,
kaj pozna kdo kak link, kjer bi dobila informacije o razpršenih matrikah? Če ima kdo razpršeno matriko že sprogramirano, pa bi blo še boljše
hvala za odgovor,
lep pozdrav
kaj pozna kdo kak link, kjer bi dobila informacije o razpršenih matrikah? Če ima kdo razpršeno matriko že sprogramirano, pa bi blo še boljše
hvala za odgovor,
lep pozdrav
64202 ::
Ce te zanima preprosta implementacija sparse matrik, lahko implementiras s hash-tabelo, kot je predlagal owca. Izvornih kod za hash tabelo je kolikor hoces po netu, pa sploh ni tezko to sam sprogramirat. Sicer obstaja eden (minimalen) hakeljc, hash-tabele so namrec eno-dimenzionalne. Za dostop do elementa obicajno rabis kljuc h(x), kjer je h hash funkcija. En mozen nacin da dobis eno-dimenzionalen kljuc gre takole: h(x) = h(x1) XOR h(x2) XOR (x3) ... XOR h(xn). V tvojem primeru torej h(x) = h(x1) XOR h(x2). Imam obcutek, da bi ta formula morala lepo ohranjati razprsenost prvotne funkcije h.
Uf, sem pomislil pa h(x1) XOR h(x2) ni kaj prida :). Problem je v tem, da je h(x1) XOR h(x2) = h(x2) XOR h(x1), kar zna nastopiti pri zgoraj-desno, spodaj-levo diag. matrikah. Bolje da poguglas :).
Uf, sem pomislil pa h(x1) XOR h(x2) ni kaj prida :). Problem je v tem, da je h(x1) XOR h(x2) = h(x2) XOR h(x1), kar zna nastopiti pri zgoraj-desno, spodaj-levo diag. matrikah. Bolje da poguglas :).
Zgodovina sprememb…
- spremenilo: 64202 ()
zala ::
Hvala za odgovore, ampak meni še vedno ni jasno, kako sprogramirat to matriko(ki mora biti narejena s kazalci).
Kaj je možno dobit kaj še bolj specifičnega?
p.s.: Sem šele 2. letni računalništva na pedagoški fakulteti.
Kaj je možno dobit kaj še bolj specifičnega?
p.s.: Sem šele 2. letni računalništva na pedagoški fakulteti.
slawc ::
poskusi kaj najti tukaj: www.nr.com Numerical recepies in c home page.
Poskusi prdelati verzijo za C v C++.
Poskusi prdelati verzijo za C v C++.
LP,
Slawc
OwcA ::
zala: v katerem delu "sprogramirati" natanko je problem?
Otroška radovednost - gonilo napredka.
zala ::
Kje je problem? Bolje rečeno, kje ga ni. Razpršena matrika bi naj delovala po principu, kot je pokazano na
http://uk.pg.photos.yahoo.com/ph/zalla1...?.dir=/a76f. S kazalci vsepovsod. Oblika pa mora bit:
CGlava {
int vrednost; // stolpec ali vrstica
CGlava* naslednja;
}
CGlava* PrviS;
CGlava* PrviV;
CElement {
int vrednost;
int stolpec;
int vrstica;
CElement* naslednjiVVrsti;
CElement* naslednjiVStolpcu;
}
CMatrika {
CMatrika(aDimenzijaN, aDimenzijaM);
~CMatrika(); // počistiti je potrebno kazalce!
int DajDimenzijoN();
int DajDImenzijoM();
void Vstavi(aVrednost, aI, aJ); // vstavljanje elementa na i,j-to mesto
void Izpis(); // izpis vsebine matrike
CMatrika* Vsota(aMat); // vsota dveh matrik
CMatrika* Produkt(aMat); // produkt dveh matrik
}
Problem je CGlava, ker ne vem, kaj naj z njo.
http://uk.pg.photos.yahoo.com/ph/zalla1...?.dir=/a76f. S kazalci vsepovsod. Oblika pa mora bit:
CGlava {
int vrednost; // stolpec ali vrstica
CGlava* naslednja;
}
CGlava* PrviS;
CGlava* PrviV;
CElement {
int vrednost;
int stolpec;
int vrstica;
CElement* naslednjiVVrsti;
CElement* naslednjiVStolpcu;
}
CMatrika {
CMatrika(aDimenzijaN, aDimenzijaM);
~CMatrika(); // počistiti je potrebno kazalce!
int DajDimenzijoN();
int DajDImenzijoM();
void Vstavi(aVrednost, aI, aJ); // vstavljanje elementa na i,j-to mesto
void Izpis(); // izpis vsebine matrike
CMatrika* Vsota(aMat); // vsota dveh matrik
CMatrika* Produkt(aMat); // produkt dveh matrik
}
Problem je CGlava, ker ne vem, kaj naj z njo.
CCfly ::
Gre za podatkovno strukturo imenovano dvosmerni linearni seznam.
CGlava* PrviS; kaže na prejšnji element matrike
CGlava* PrviV; kaže na naslednji element matrike
CGlava* PrviS; kaže na prejšnji element matrike
CGlava* PrviV; kaže na naslednji element matrike
"My goodness, we forgot generics!" -- Danny Kalev
Gundolf ::
Samo ne CCfly-a poslusat. Jaz ga včasih, a se mi to samo maščuje
Verjetno veš da je 'PrviS' pointer na prvi stlpec in 'PrviV' pointer na prvo vrstico. Morda bi ju le premaknila v definicijo razreda CMatrika CGlava je enostavna, če imas stolpec, potem kaže 'naslednja' na naslednji stolpec, v primeru vrstice pa na naslednjo vrstico. CGlava, ki je del zadnje vrstice ali stolpca ima 'naslednja' postavljen na NULL.
Edino kar ti manjka v 'CGlava' je en pointer na prvi element v stolpcu/vrstici.
Verjetno veš da je 'PrviS' pointer na prvi stlpec in 'PrviV' pointer na prvo vrstico. Morda bi ju le premaknila v definicijo razreda CMatrika CGlava je enostavna, če imas stolpec, potem kaže 'naslednja' na naslednji stolpec, v primeru vrstice pa na naslednjo vrstico. CGlava, ki je del zadnje vrstice ali stolpca ima 'naslednja' postavljen na NULL.
Edino kar ti manjka v 'CGlava' je en pointer na prvi element v stolpcu/vrstici.
BigWhale ::
Matr, sam da je zenska, pa ste takoj vsi sladki pa mehki! ;> Ne bomo ti delal domacih nalog!
Hinavci ;) Naslednji problem, k ga bom mel z HP-UXom, bom postal kot Mirjana
:))
Hinavci ;) Naslednji problem, k ga bom mel z HP-UXom, bom postal kot Mirjana
:))
Vesoljc ::
[naloga][c++][female] ime topica
tkole?
tkole?
Abnormal behavior of abnormal brain makes me normal...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | matematika - pomočOddelek: Šola | 3857 (2912) | lebdim |
» | Generator enkratih geselOddelek: Programiranje | 959 (792) | fiction |
» | Piljenje Leksikona (strani: 1 2 )Oddelek: Znanost in tehnologija | 8810 (4869) | gzibret |
» | Poziv za resevanje resnisnega kriptogramaOddelek: Loža | 1841 (1396) | Brane2 |
» | C++ Project --- v1Oddelek: Programiranje | 1196 (989) | Vesoljc |