[ p3j4 @ 25.03.2006. 01:09 ] @
Trebam da uradim analizu ucestalosti, tj. ponavljanja podataka jednog fajla sa preko 9000 upisa (jedan upis po redu) u svrhe izrade i analize statistike.

Podaci su brojevi, koji nisu svi iste duzine.

Znaci, trebam da utvrdim koliko se neki brojevi puta ponavljaju u listi, zatim shodno tome da utvrdim kolika je ucestalost ponavljanja...

npr.:
samo jednom - neki %
dva puta - neki %
tri puta - neki %
itd.

Sami brojevi koji se ponavljaju nisu mnogo bitni, vec globalna ucestalost ponavljanja koju cu da izrazim u %.

Nadam se da sam dobro objasnio i da me razumete.


Imam problem oko algoritma. Ono sto meni prvo pada na pamet je da uradim jednu petlju koja bi isla red po red i proveravala ucitan zapis sa svih 9000 i tako dok ne zavrsi. Ono sto me kod tog resenja brine je broj upisa, koji je, kao sto rekoh preko 9000, a sto me navodi na pomisao - da li to uopste raditi u PHP-u? Ima li mozda neko elegantnije resenje za ovo sto meni treba? Trazim dobre ideje i smernice, a ne gotovo resenje. Hvala :-)

[ SmilieBG @ 25.03.2006. 09:28 ] @
Posto mi je matis slaba strana, gotovo sigurno sam pogresno razumeo, ali da probam. Ja bi to ovako resio, ako imas mogucnosti za to (mysql konkretno):

ako mozes da ubacis podatke u jednu tabelu, sa tim da taj fajl izgleda ovako:

1
1
2
3
2
1
3
4
6
itd..

onda uradis sledeci query:

SELECT broj, count(*) as times FROM tabela GROUP BY broj;

ovo ce ti grupisati sve brojeve i dati koliko puta se svaki broj ponavlja u tih 9000 zapisa. I to ce ovako izgledati:

BROJ | TIMES
1 145
2 263
3 470
itd...

Zatim napravis jednu petlju i delis koliko se svaki broj %-ualno nalazi u 9000 i to je to... Ovo naravno, ako mozes da ih sibnes u bazu ;)

Poz,
Sale
[ p3j4 @ 27.03.2006. 10:11 ] @
Ne ne ne... odlicno si ti mene razumeo, to je bas ono sto meni treba, a posto mysql nije problem tako cu i da uradim.

Hvala Smajli ;-)