Szazalekos eloszlas

Moczik Gabor progzmaster at freemail.hu
Sun Sep 4 13:17:06 CEST 2005


Hali!

Olyat kellene csinalnom, hogy folyamatosan mintavetelezek egy jelet, ami 
0..15 erteket vehet fel. Ebbol nekem kell egy tombot feltolteni, ami 
tarolja, hogy milyen a mintak szazalekos elofordulasa, tehat a tomb 0..15 
elemeinek osszege allando kellene legyen.

A kov C programot irtam most, de lathato hogy tetves lassu, mivel szorzas es 
osztas van benne. Azt csinalja, hogy az erkezett mintahoz tartozo tombelemet 
noveli 1-el. Utana megnezi, hogy ezzel a tomb osszege >=100. Ha igen, akkor 
minden tombelemet szazalekosan annyival csokkent, amennyivel az osszeg 
nagyobb volt mint 99. (mivel azt szeretnem hogy max 99 legyen a tomb 
osszege). Van erre valami normalis algoritmus?

// bemeno minta: nindex (0..15 kozott)
// feltoltendo: noise_level[] tomb
noise_level[nindex]++;
noise_sum++;
if (noise_sum>=100) {
     for (ni=0; ni<=15; ni++) {
          noise_level[ni]=((unsigned int)noise_level[ni])*99/noise_sum;
     }
     noise_sum=noise_level[0];
     for (ni=15; ni>0; ni--) {
          noise_sum+=noise_level[ni];
     }
}

-- 
((( Móczik Gábor  )))--((( progzmaster -> @ -> freemail . hu  )))
((( Skype: moczik )))--((( Website: http://www.progzmaster.hu )))




More information about the Elektro mailing list