kostenloser Webspace werbefrei: lima-city


prozent chance in php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    animeuniversum

    animeuniversum hat kostenlosen Webspace.

    Wie ref="/tag/mache">mache ich ,dass z.b zu 90% die zahl 1 kommt und zu 10% die zahl 6

    mit
    mt_rand(1,6)
    geht das ja schlecht weil alle die selben chance haben
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Habe diesen Script für deine Bedürfnisse angepasst, sollte selbsterklärend sein, zumindestens die Zuweisung der Wahrscheinlichkeiten. Diese müssen im Array immer zusammengerechnet 1 ergeben (0.9 + 0.1 hier):

    function dw_rand ($space, $errval = false) {
     $res = 1000000000;
     $rn = mt_rand(0, $res - 1);
    
     foreach ($space as $element => $probability) {
      $psum += $probability * $res;
      if ($psum > $rn) return $element;
     }
    
    $number[1] = 0.9;
    $number[6] = 0.1;
    
     return $errval;
    }
    
    echo dw_rand($number);
  4. Das vorgeschlagene Script funktioniert nicht aufgrund eines Fehlers in der Reihenfolge.

    Das richtige Script lautet so:
    function dw_rand ($space, $errval = false) {
        $res = 1000000000;
        $rn = mt_rand(0, $res - 1);
    
        foreach ($space as $element => $probability) {
            $psum += $probability * $res;
            if ($psum > $rn) return $element;
        }
        return $errval;
    }
    
    $number[1] = 0.9;
    $number[6] = 0.1;
    echo dw_rand($number);


    Beitrag zuletzt geändert: 19.6.2013 19:55:34 von tobiworlds
  5. Danke für die Blumen, es handelt sich hierbei um einen kleinen Fehler meinerseits, da vorher die Array Zuweisung vor der Definition der Funktion stand ich beides aber tauschen wollte und in diesem Zug ein kleines Fauxpas passiert ist und ich das Funktionsende übersehen habe.

    Wohl heute mit dem falschen Fuß aufgestanden, so etwas kann man auch anders bzw. nicht so abwertend ausdrücken.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!