phpbar.de logo

Mailinglisten-Archive

[php] random mit verhältnis...

[php] random mit verhältnis...

Christian von Toerne toerne_(at)_magnetohydrodynamik.iam.uni-bonn.de
Tue, 18 May 1999 14:20:09 +0200


>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