Leggyakoribb számsor keresése egy számsorhalmazban
Sziasztok!
Van egy problémám amit nem tudok megoldani:
Azt szeretném megcsinálni, hogy van egy két dimenziós tömböm, pl:
3,4,5,6,7,8,9,10,11
3,4,5,6,12,22,23
1,2,3,4,5,6,7,8,9
20,21,22,23,24,25,26,27,8
Az lenne a feladat, hogy keressük ki azt a számsorrészletet melyek a legtöbbször szerepelnek, úgy, hogy a lehető legtöbb sorban benne van.
A példámban pl a megoldás az a 3,4,5,6 mert ez minden sorban szerepel(bár nem kell minden sorban szerepelnie).
Bármilyen segítség jól jön, mert nem tudom megcsinálni:(
■ Van egy problémám amit nem tudok megoldani:
Azt szeretném megcsinálni, hogy van egy két dimenziós tömböm, pl:
3,4,5,6,7,8,9,10,11
3,4,5,6,12,22,23
1,2,3,4,5,6,7,8,9
20,21,22,23,24,25,26,27,8
Az lenne a feladat, hogy keressük ki azt a számsorrészletet melyek a legtöbbször szerepelnek, úgy, hogy a lehető legtöbb sorban benne van.
A példámban pl a megoldás az a 3,4,5,6 mert ez minden sorban szerepel(bár nem kell minden sorban szerepelnie).
Bármilyen segítség jól jön, mert nem tudom megcsinálni:(
metszetek
metszet
TreeSet
az én verzióm
először is kitalálnék vmi módszert, ami alapján mérni lehet, hogy egy számsor mennyire jó. ahogy látom két kritérium van amit kezelni kell, az egyik a számsor hossza (n), a másik hogy hány sorban szerepel (m). ezekből kell kialakítani egy függvényt, ami meghatározza egy számsor 'jóságát' :) pl. n x m az egyszerűség kedvéért, de lehet mindenféle varázslatot belevinni, attól függően, hogy neked mi számít. tehát az első lépés egy jóságszámítófüggvény kialakítása.
ezek után venném a sorozat első számát, kiszámítanám a hozzá tartozó jóságértéket (x), hozzácsapnám a második számot, kiszámítanám ily módon is a két számból álló sorozat jóságértéket (y). ha x > y zsákutcában vagyunk, továbbmennék a második számmal kezdődő sorozatra, ellenkező esetben pedig hozzácsapnám a sorozathoz a harmadik számot és a három számból álló sorozatra is kiszámolnám a dolgot.
és így szépen végigmennék a számokon mindenhol növelve a sorozat hosszát a lehető legnagyobbra, mindaddig, amíg a jóságérték nem csökken. és mindig tárolnám az éppen legnagyobb jóságértékkel bíró sorozato(ka)t.
vhogy így csinálnám a dolgot.
a kód ami vmi hasonlót csinál elvileg, bár nem futott egyszer sem..
aha
Mindenestre köszi a választ, nagyon ötletes;)
egy verzió
1 hosszú dolog szerepel 4 sorban. 1x4 = 4
2 hosszú 3 sorban. 2x3 = 6
3 hosszú 4 sorban 3x4 = 12
de az is lehet, hogy a hosszabb az jobb, vagy a több sor is többet ér.
ilyenkor egy exponenciális függvényt használhatsz.
n - sorozat hossza
m - sorok száma, amiben szerepel a sorozat
n x 2^m - itt a szereplő sorok száma nagyobb hangsúllyal van jelen
3^n x 2^m - mindenből jobb a hosszabb, sorozat hossz hangsúlyosabb, mint a sorok száma
a lényeg, hogy lehet ám olyan függvényt is csinálni a jóságra, ami nem a sorozatban szereplő számok értékére vonatkozik ;)