Avatar billede code_freak Nybegynder
26. oktober 2003 - 16:26 Der er 3 kommentarer og
1 løsning

Chance udregning med procent

Jeg er ved at lave et lotteri, til mit WebSpil, og vil gerne gøre det sikkert og godt.
Jeg sidder nu og tænker om hvordan man kan udregne dem bedste "Procent Chance" metaode, f.eks:

Ole køber 5 lodder 5/20 * 100 = 25% chance
Søren køber 2 lodder 2/20 * 100 = 10% chance
Ib køber 8 lodder 8/20 * 100 = 40% chance
Mie køber 5 lodder 5/20 = 25% chance

Så vil Ib have størst chance, men hvordan kan man gøre så de andre stadig kan vinde?

Jeg har tidligere brugt mt_rand(),men ved ikke lige hvordan med mere end 2 verdi'er man kan bruge den.
Avatar billede code_freak Nybegynder
26. oktober 2003 - 16:52 #1
nogen der vil godtage denne?

<?
$index[0][id] = "Ole";
$index[0][tick] = 5;

$index[1][id] = "Ib";
$index[1][tick] = 2;

$index[2][id] = "Fie";
$index[2][tick] = 8;

$index[3][id] = "Mie";
$index[3][tick] = 5;

$fulltick = $index[0][tick] + $index[1][tick] + $index[2][tick] + $index[3][tick];

$index[0][rs] = 0000;
$index[0][re] = $index[0][tick]/$fulltick*10000 + $index[0][rs];

$index[1][rs] = $index[0][re];
$index[1][re] = $index[1][tick]/$fulltick*10000 + $index[1][rs];

$index[2][rs] = $index[1][re];
$index[2][re] = $index[2][tick]/$fulltick*10000 + $index[2][rs];

$index[3][rs] = $index[2][re];
$index[3][re] = $index[3][tick]/$fulltick*10000 + $index[3][rs];

$cindex = 3;
$count = 0;
$rand = mt_rand(0,10000);
while($count <= $cindex){
    if($rand < $index[$count][re] AND $rand > $index[$count][rs]){
        echo $index[$count][id]." is the winner!!";
    }
$count++;
}
?>
Avatar billede code_freak Nybegynder
26. oktober 2003 - 16:58 #2
he lidt kortere :)

<?
$index[0][id] = "Ole";
$index[0][tick] = 86;

$index[1][id] = "Ib";
$index[1][tick] = 1;

$index[2][id] = "Fie";
$index[2][tick] = 5;

$index[3][id] = "Mie";
$index[3][tick] = 6734;

$fulltick = $index[0][tick] + $index[1][tick] + $index[2][tick] + $index[3][tick];

$cindex = 3;
$count = 0;
$rand = mt_rand(0,10000);
while($count <= $cindex){
    $index[$count][rs] = $index[$count-1][re];
    $index[$count][re] = $index[$count][tick]/$fulltick*10000 + $index[$count][rs];
    if($rand <= $index[$count][re] AND $rand > $index[$count][rs]){
        echo $index[$count][id]." is the winner!!";
    }
$count++;
}
?>
Avatar billede code_freak Nybegynder
26. oktober 2003 - 17:35 #3
fik det lavet, og det virker... sender mit svar :)
Avatar billede code_freak Nybegynder
26. oktober 2003 - 17:45 #4
<?
define(MAXCOUNT,5); //Antal spillere

$index[0][id] = "Ole"; //navn
$index[0][tick] = 2; //poletter

$index[1][id] = "Ib"; //navn
$index[1][tick] = 2; //poletter

$index[2][id] = "Fie"; //navn
$index[2][tick] = 2; //poletter

$index[3][id] = "Mie"; //navn
$index[3][tick] = 2; //poletter

$index[4][id] = "Mads"; //navn
$index[4][tick] = 2; //poletter

$index[5][id] = "Pia"; //navn
$index[5][tick] = 2; //poletter

$cindex = MAXCOUNT;
$fulltick = 0; //set samlet antal til 0
$count = 0;
while($count <= $cindex){
    if($index[$count][tick] > 0){ // denne (if) gør at den kun tæller dem der har over 0 poletter
    $fulltick += $index[$count][tick]; // ligger poletter til samlet antal
    }
$count++;
}
$cindex = MAXCOUNT;
$count = 0;
$counted = 0;
echo "<B>".$rand = mt_rand(0,10000)."</B>"; //laver og udskriver randomtallet
while($count <= $cindex){
if($index[$count][tick] !=0) // tæller ikke dem med som ikke har nogen poletter
    {
    echo "<HR>"; // orden =)
    echo $count ." starts ".$index[$count][rs] = $counted; // hvor deltagerens RANGE start er
    echo "<BR>".$count ." ends ".$index[$count][re] = $index[$count][tick]/$fulltick*10000+ $index[$count][rs]; // hvor deltagerens RANGE slut er
    if($rand <= $index[$count][re] AND $rand > $index[$count][rs]) // Ser om randomtallet er indenfor denne deltager
        {
        echo $index[$count][id]." is the winner!!"; // Vis jeg tillykke!!
        }
$counted=$index[$count][re];// gemmer denne slut RANGE så den kan ligges til den næstes start
}
$count++;
}
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester