Kezdőoldal » Számítástechnika » Programozás » Jól értem a műveletigényt?

Jól értem a műveletigényt?

Figyelt kérdés

Definiáltuk az Ordót, Théta-t és Omega-t, de nem tudom, hogy jól értem-e hogyan kell műveletigény számításoknál használni.


Szóval az Ordó az az algoritmus futásidejének a felső korlátja avagy másképpen fogalmazva a legrosszabb futásidőt jellemzi. Szóval ha az a feladat, hogy számoljuk ki a legrosszabb futásidőt, akkor csak annyi az Ordó, hogy odaírom a számolás végére, hogy O(n^2) például (ha n^2-es a futásidő)? Tehát azt nem nekem kell kitalálnom, hogy amit számoltam az Ordó, Théta vagy Omega-e?



2022. febr. 15. 15:03
1 2
 1/11 A kérdező kommentje:
És ugyanígy, ha legjobb esetet kell számolni, akkor az mindig Omega({valami}) lesz?
2022. febr. 15. 15:04
 2/11 anonim ***** válasza:
58%

"Szóval ha az a feladat, hogy számoljuk ki a legrosszabb futásidőt, akkor csak annyi az Ordó, hogy odaírom a számolás végére, hogy O(n^2) például (ha n^2-es a futásidő)? Tehát azt nem nekem kell kitalálnom, hogy amit számoltam az Ordó, Théta vagy Omega-e?"


Nyilvan tudnod kell, hogy mit szamolsz, kulonben nem tudnad kiszamolni. Azt irod a szamolas vegere, amit szamoltal.

2022. febr. 15. 15:11
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:
Az a feladat, hogy meg le van írva az algoritmus (szövegesen vagy pszeudo kóddal) és számoljuk ki a legrosszabb esetben a műveletigényét. (futásidőt elírtam)
2022. febr. 15. 15:13
 4/11 anonim ***** válasza:
Akkor nagy ordot kell szamolnod.
2022. febr. 15. 15:15
Hasznos számodra ez a válasz?
 5/11 A kérdező kommentje:
Eddig értem, de ha ezek fix jelölések, akkor mire jók tulajdonképpen? Miért kellett matematikailag definiálni, levezetni, sőt miért kell tudni majd ZH-ban beugróként levezetni részletesen, hogy mi az az ordó, théta, omega? Ha annyit mondok, hogy ordó a legrosszabb eset műveletigénye, akkor az miért nem elég? Szerintem mindenki megérti definiálás nélkül is.
2022. febr. 15. 15:21
 6/11 A kérdező kommentje:

De nem tudom érthető-e mire akarok kilyukadni.


Ordó definiálásánál ilyenek vannak, hogy f(x), g(x), c, x0, stb. Ehhez képest feladatmegoldásban csak annyit írunk, hogy O(n^2)... Se f(x), se g(x), se c, se x0, csak egy fix jelölés.

2022. febr. 15. 15:23
 7/11 anonim ***** válasza:
82%

Azert, mert ha azt mondod, hogy a legrosszabb eset muveletigenye, akkor nincs definialva sem a legrosszabb eset, sem a muveletigeny.

Ha azt mondod, hogy nagy ordo, akkor egyertelmu, hogy aszimptotikus komplexitasrol van szo es elhagyhato pl. a konstans faktor, ami elobbibol nem derul ki.

2022. febr. 15. 15:28
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:
0%

Nem, nem érted jól. f = O(g) azt jelenti, hogy elég nagy n-re f felvett értékei kisebbek g értékeinek valahányszorosainál. A jelölés akkor alkalmazható, ha egy függvény pontos értékére nem vagyunk kíváncsiak, csak nagyságrendjére (illetve annak felső korlátjára). Például ha f(n) = (3/2)n^2 + (5/6)n + 42, akkor megtehetjük, hogy csak annyit adunk meg, hogy O(n^2).

Ennek idáig nincs köze algoritmusokhoz. Nem lehet úgy defniálni hogy "legrosszabb esetének műveletigénye", mert f és g mezei függvények, nincs sem legrosszabb esetük, sem műveletigényük.

Amúgy de, neked kéne kitalálnod, hogy a három jelölés közül melyiket kell alkalmazni, de ha ennyire nem érted a definíciókat, akkor ez nem fog menni. Írj mindig ordót, az a ZH-feladatok 80%-ában helyes lesz.

2022. febr. 16. 15:05
Hasznos számodra ez a válasz?
 9/11 A kérdező kommentje:
Utolsó, köszi, bár még így sem teljesen világos. Amikor műveletigényt számolunk, akkor el kell dönteni (ha a feladat nem kéri külön), hogy melyik esettel számolunk, a legjobbal, a legrosszabbal vagy az átlagossal... Az én értelmezésemben, ha a legrosszabb esettel számolok, akkor az az Ordó, mert az definiálja ezt az esetet. Olyan nincs, hogy kiszámolok vaktában egy esetet és utólag találom ki, hogy az ordó, théta vagy omega esete (pl. egy értéket keresünk, akkor már a legelején eldöntöm a számolásnál, hogy elsőre találom meg a keresett értéket vagy legutoljára, tehát már itt eldől, hogy melyiket számolom)... Vagy van ilyen csak még nem vettük?
2022. febr. 16. 16:08
 10/11 anonim ***** válasza:

Nincs logikai megfeleltetés a három műveletigény és a három jelölés között, csak annyi, hogy tipikusan melyiknél melyiket alkalmazzuk. Nincs olyan szabály, hogy az egyiknél csak egyiket alkalmazhatjuk.

Például kupacrendezésnél először megállapítjuk, hogy egy n*log n nagyságrendű függvény felső korlátja a legrosszabb költségnek, ezt O-val vonatkoztathatjuk a költségre, vagyis azt írjuk fel (MT(n)-nel jelölöm a legrosszabb költséget), hogy MT(n) = O(n*log(n)). Egy másik gondolat mutatja, hogy egy szintén n*log(n) nagyságrendű függvény alsó korlátja a műveletigénynek; ezúttal azt kell írnom, hogy MT(n) = Ω(n*log(n)). Elő is állt egy helyzet, amelyben Ω-jelölést alkalmazunk, pedig még mindig a legrosszabb költségről van szó. A kettőt összevonva írhatom a végeredményt, miszerint MT(n) = Θ(n*log(n)), így már mindhárom jelölést alkalmaztam ugyanarra a költségfogalomra és haszna is volt: több információt nyertünk az algoritmusról.

Valóban az Ordó hordozza az információ lényegét legrosszabb esetben, ettől még logikailag felírhatunk összefüggést a másik két jelöléssel is, sőt időnként fontos is mint a példa mutatja.

2022. febr. 16. 19:33
Hasznos számodra ez a válasz?
1 2

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!