Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Potreboval by som algoritmus, ktorým by sa dala porovnať množina Z s X množinami, kde X = 2 až 10 000 000
Pričom, každá množina (X,Z) by obsahovala Y hodnot (prvkov), kde Y = 1 až nekonecno
Pričom by mali byť nasledne množiny X zostupne primárne podla počtu zhodných hodnot (prvkov) a pri rovnakej zhode, čo sa týka počtu hodnot (prvkov), by sekundárne rozhodovalo akú percentuálnu časť množiny X tvoria zhodné hodnoty (prvky) s porovnávanou množinou Z.
Nedokazem to vyriesit, ak sa to niekomu podari, mozno to nieje ani zlozite, bol by som velmi vdacny.
Offline
Ahoj,
co znamená (X,Z) - je to dvojice, tj. množina obsahující dva prvky X,Z a nebo spíš sjednocení prvků mnžin X a Z a nebo něco jiného?
Millos napsal(a):
Pričom by mali byť nasledne množiny X zostupne primárne podla ...
Věta je neúplná - co se s množinami X má udělat? Setřídit?
Možná by bylo vhodé X,Z reprezentovat jako setříděný seznam prvků (definuj na X,Z nějaké uspořádání a podle něj proveď setřídění).
Offline
↑ check_drummer:
Mnozina Z je len jedna tu porovnavame s mnozinami X1 až Xw (w = 1 až 10 000 000)
Vysledok by mal byt zoradeny na prvom mieste Xw, ktorej prienik so Z = vsetky prvky ktore obsahuje Z
Druhe bude take Xw kde prienik so Z bude 9 z 10 prvkov Z atd.
Zároven ak prienikom mnozin Xw1, Xw3, Xw5 so Z bude rovnaky pocet prvkov, o lepsom umiestneni bude rozhodovat to aku precentualnu časť prvkov jednotlivých množín tvorí prienik, čím výššie percento, tým vyššie umiestnenie. Spomeniem, ze mnoziny majú rozny pocet prvkov.
Offline
Algoritmem se toho moc dat vymyslet nebude, ten bude vicemene stejny. Roli tam budou hrat datove struktury. Zalezi docela na charakteru tech dat v mnozinach, ale treba pro zacatek bych zacal s hashovaci tabulkou, kde klice budou vsechny prvky pres sjedoceni vsech mnozin. A hodnotou by mohla byt treba dalsi hashovaci tabulka, ktera bude obsahovat mnoziny, ve kterych se dany prvek naleza.
Pak by melo jit v konstantnim case zjistit, jestli mnozina X obsahuje prvek y.
Offline
↑ Jookyn:
Ahoj, nejsem si jist, zda to není zbytečně složité. Možná by stačilo sestrojit hashovací tabulku jen pro Z a pak pro každý prvek z X otestovat, zda prvek v Z je či nikoli (v konstantním čase).
Offline
↑ check_drummer:
Jasne, je to tak, nejak jsem se ztratil v tom zadani a modeloval to na trochu jiny problem...
Offline
Stránky: 1