Pereiti prie turinio

Rekomenduojami pranešimai

Raktiniai žodžiai: grafas, paieška gilyn (DFS).

Pirdunai KTU profesoriai, sita uzduoti duoda metai is metu pirmam kurse, nors diskreciaja matematika mokomes ir grafus paciupent gaunam tik antram kurse :) Praktiskai kiekvienas gaves sita uzduoti labai prasikankina. Pats dabar grafus pradejau mokytis tai lengvesne atrodo uzduotis nei pries lygiai metus :)

Redagavo hafnis1324
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šis uždavinys ko gero iš Kazicko konkurso, kuriame dalyvauja mokiniai nuo 9 klasės. Todėl neįsivaizduokit kad čia kažkas stebuklingo, viskas pakankamai elementaru.

Ne stebuklinga, bet is patirties sakau, kad mano kurso 50% zmoniu, kuriems reikejo atlikti sita uzduoti, to padaryti neiseijo :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal galite kas nors užvest ant kelio and bent paaiškint pirmakursiui kaip man čia pritaikyt tuos grafus? Ar turiu nusiskaityti viršūnes ir briaunas į atskyras klases? Ar turėčiau naudoti atskyrus masyvus vienos klasės viduje briaunom ir viršūnėm? Nes pakolkas tai viską nuskaičiau į vieną klasę. C++ pradėjau vos nuo rugsėjo, prieš tai programavau paskaliu, tad pasistenkit būt kuo paprastesni.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Paisdarai iš tų visų miestų grafų taškus, po to sujungi (nu čia jau neaiškinsiu, ne į filologiją įstojai kad nepadarytum). Tada pasigooglini apie tokį metodą *Depth first search*, pritaikai jį iš tavo pradinio taško ir valio.

Grafų taškus? Turi omeny jų viršūnes sudėt į atskyrus masyvus?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Masyvo tai nelabai tau čia reikia. Pasidarai kiekvienam miestui po kokį nors tai objektą (gali objektą daryti, jeigu nori labiau C, tai struktūrą, skirtumo jokio), objekte turi parametrus kaip pavadinimas ir rodyklės į kitus tokius objektus (kokį masyvą šitam pasidaryk), su rodyklėm dar kaip nors paraleliškai saugok atstumą (referencui, šitas dalykas vadinamas svoriu, gal rasi kur minint tokį dalyką). Tada kai turi kiekvienam miestui po kokį nors objektą, pradedi pagal tą grafiką kur turi, sujunginėti tas rodykles (čia vėl, krūvos metodų yra, susirasi internete koks labiau patiks).

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Masyvo tai nelabai tau čia reikia. Pasidarai kiekvienam miestui po kokį nors tai objektą (gali objektą daryti, jeigu nori labiau C, tai struktūrą, skirtumo jokio), objekte turi parametrus kaip pavadinimas ir rodyklės į kitus tokius objektus (kokį masyvą šitam pasidaryk), su rodyklėm dar kaip nors paraleliškai saugok atstumą (referencui, šitas dalykas vadinamas svoriu, gal rasi kur minint tokį dalyką). Tada kai turi kiekvienam miestui po kokį nors objektą, pradedi pagal tą grafiką kur turi, sujunginėti tas rodykles (čia vėl, krūvos metodų yra, susirasi internete koks labiau patiks).

Dėkui :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Masyvo tai nelabai tau čia reikia. Pasidarai kiekvienam miestui po kokį nors tai objektą (gali objektą daryti, jeigu nori labiau C, tai struktūrą, skirtumo jokio), objekte turi parametrus kaip pavadinimas ir rodyklės į kitus tokius objektus (kokį masyvą šitam pasidaryk), su rodyklėm dar kaip nors paraleliškai saugok atstumą (referencui, šitas dalykas vadinamas svoriu, gal rasi kur minint tokį dalyką). Tada kai turi kiekvienam miestui po kokį nors objektą, pradedi pagal tą grafiką kur turi, sujunginėti tas rodykles (čia vėl, krūvos metodų yra, susirasi internete koks labiau patiks).

Kaip suprasti "Pasidarai kiekvienam miestui po kokį nors tai objektą"? Juk aš nežinau kokie ir kiek tų miestų bus. Sorry, kad tokie buki mano klausimai, tiesiog nesu aš labai pežengęs

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip suprasti "Pasidarai kiekvienam miestui po kokį nors tai objektą"? Juk aš nežinau kokie ir kiek tų miestų bus. Sorry, kad tokie buki mano klausimai, tiesiog nesu aš labai pežengęs

Susikuri standartine klase (ar struktura, nors struktura irgi klase, tik fieldai pagal nutylejima public)saugot miesto duomenims ir prisikuri tiek skirtingu objektu, kiek rasi skirtingu miestu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Susikuri standartine klase (ar struktura, nors struktura irgi klase, tik fieldai pagal nutylejima public)saugot miesto duomenims ir prisikuri tiek skirtingu objektu, kiek rasi skirtingu miestu.

nesuprantu, miestai juk jokių duomenų neturi, tik miesto vardą

 

Susikuri standartine klase (ar struktura, nors struktura irgi klase, tik fieldai pagal nutylejima public)saugot miesto duomenims ir prisikuri tiek skirtingu objektu, kiek rasi skirtingu miestu.

pasidarau klasę, sudedu į ją miestų vardus ir kas tada? kur saugot grafų svorius?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

nesuprantu, miestai juk jokių duomenų neturi, tik miesto vardą

 

 

pasidarau klasę, sudedu į ją miestų vardus ir kas tada? kur saugot grafų svorius?

Kaip tai neturi, o tai jungtys su kitais miestais? Cia yra pats svarbiausias dalykas miestui apibudint, koks skirtumas ten tas pavadinimas, gali pasikeist visus i a,b,c... Svarbu i kur gali nukeliaut is jo ir koks atstumas kelio.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip tai neturi, o tai jungtys su kitais miestais? Cia yra pats svarbiausias dalykas miestui apibudint, koks skirtumas ten tas pavadinimas, gali pasikeist visus i a,b,c... Svarbu i kur gali nukeliaut is jo ir koks atstumas kelio.

tai klasėje turi būti miesto vardas ir masyvas su kaimynais miestais?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

tai klasėje turi būti miesto vardas ir masyvas su kaimynais miestais?

Taip. Ir dar kazkur atstumai, kad ir kitam masyve, vienoda tvarka sudeta. Aisku cia viskas priklauso koki sprendimo budo renkiesi, nes sprendziant dabar is tokiu klausimu tai vis dar nera supratimo, kaip sprest.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taip. Ir dar kazkur atstumai, kad ir kitam masyve, vienoda tvarka sudeta. Aisku cia viskas priklauso koki sprendimo budo renkiesi, nes sprendziant dabar is tokiu klausimu tai vis dar nera supratimo, kaip sprest.

na kaip aukščiau sakė žmonės, tai bandysiu naudot tą paiešką į gylį

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Paprasčiausia paieška į plotį ar į gylį čia neveiks, nes reikia rasti ne kelią kuris aplankytų daugiausia miestų, o kelią kuris būtų ilgiausias nesilankant tame pačiame mieste kelis kartus. Šiaip šios problemos sudėtingumas NP, tačiau tavo atveju grafas neturi ciklų, kas šioj situacijoj labai gelbėja. Gali pabandyti įgyvendinti kažką panašaus į http://www.geeksforgeeks.org/find-longest-path-directed-acyclic-graph/

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taip. Ir dar kazkur atstumai, kad ir kitam masyve, vienoda tvarka sudeta. Aisku cia viskas priklauso koki sprendimo budo renkiesi, nes sprendziant dabar is tokiu klausimu tai vis dar nera supratimo, kaip sprest.

o miesto vardus string ar char saugot? Ir išvis koks tarp jų skirtumas? nes bent paskaly, tai aišku, kad vienam simboliui, o string eilutei

 

Paprasčiausia paieška į plotį ar į gylį čia neveiks, nes reikia rasti ne kelią kuris aplankytų daugiausia miestų, o kelią kuris būtų ilgiausias nesilankant tame pačiame mieste kelis kartus. Šiaip šios problemos sudėtingumas NP, tačiau tavo atveju grafas neturi ciklų, kas šioj situacijoj labai gelbėja. Gali pabandyti įgyvendinti kažką panašaus į http://www.geeksforgeeks.org/find-longest-path-directed-acyclic-graph/

blemba aš net tų grafų nesuprantu, nieko dar nesimokėm apie juos, tą paiešką į gylį vos supratau kaip veikia, bet dar net nežinau kaip užrašyt reiks, o tu man dar kažkokių keistų dalykų duodi, kurių aš nėkiek nesuprantu. būkit jūs biški paprastesni, aš dar tik pirmakursis ir dabar esu nebesveikai pasimetęs ar tikrai man čia reikėjo stot :/

 

Paprasčiausia paieška į plotį ar į gylį čia neveiks, nes reikia rasti ne kelią kuris aplankytų daugiausia miestų, o kelią kuris būtų ilgiausias nesilankant tame pačiame mieste kelis kartus. Šiaip šios problemos sudėtingumas NP, tačiau tavo atveju grafas neturi ciklų, kas šioj situacijoj labai gelbėja. Gali pabandyti įgyvendinti kažką panašaus į http://www.geeksforgeeks.org/find-longest-path-directed-acyclic-graph/

o darant tą "paprasčiausią" paiešką į gylį, aš juk galiu saugoti visus kelius kokiam nors masyve ir kai apeinu visus galimus variantus, tada tiesiog iš to masyvo atrenku patį ilgiausią. Ar turi pasiūlyti kažką lengvesnio ar šiaip geresnio?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...