Mailinglisten-Archive |
>wie kann es ralisiert werden das man ein verhältnis setzen kann zb
>banner1=10 banner2=5 banner3=3 mal anzeigen ?
>hat dazu einer ne idee ?
Ich hab' das mal so realisiert...
$sum=0;
$haeufigkeit=array(10,5,3);
for($i=0;$i<count($haeufigkeit);$i++)
$bounds[$i]=$sum;
$sum+=$haeufigkeit[$i];
}
...
$zufall=rand(0,$sum);
$i=-1;
while($bounds[++$i]<$zufall);
$i ist dann die Nummer des Banners. Wenn's nicht viele Banner oder krumme
Verhältnisse der Wahrscheinlichkeiten sind (z.B. 57827:36463:389423 ;-) ), dann
kannst du natürlich auch hingehen und das folgendemaßen machen:
$haeufigkeit=array(10,5,3);
$sum=0;
for($i=0;$i<count($haeufigkeit);$i++) {
$sum+=$haeufigkeit[$i];
for($j=0;$j<$haeufigkeit[$i];$j++)
$foo[]=$i;
}
...
$zufall=rand(0,$sum);
$i=$foo[$zufall];
$i enthält dann wieder die Bannernummer.
Alles, wie hier ja üblich, nicht getestet! ;-) Vielleicht läuft's ja dennoch.
Chris
php::bar PHP Wiki - Listenarchive