Ergebnis 1 bis 4 von 4

Thema: Frage zu PHP Script

  1. #1
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.492

    Standard Frage zu PHP Script

    Hallo Community,

    irgendwie werde ich aus diesem Script nicht schlau:
    $probabilities enthält zwei Werte:

    PHP-Code:
    $pInjured[True] = 30
    $pInjured
    [FALSE] = 70 
    Die Nachfolgende Funktion soll wohl eine der beiden Werte auswählen: Denn die Funktion wird wie folgt aufgerufen:
    PHP-Code:
    $injured SimulationHelper::selectItemFromProbabilities($pInjured); 
    PHP-Code:
            /**
         * Picks an item from the specified set (array). The selection is picked randomly, but considering the specified probability.
         * 
         * @param array $probabilities assoc. array with key=value to be returned if item is selected, value=probability (0-100).
         * @return mixed Selected item picked from the specified set.
         */
        
    public static function selectItemFromProbabilities($probabilities) {
            
    $magicNo self::getMagicNumber();
            
            
    $oldBoundary 0;
            foreach (
    $probabilities as $key => $probability) {
                
    $newBounday $oldBoundary $probability;
                
                if (
    $magicNo $oldBoundary && $magicNo <= $newBounday) {
                    return 
    $key;
                }
                
                
    $oldBoundary $newBounday;
            }
            
            
    // return last element, since probabilities are not 100 per cent
            
    return end($probabilities); 
    Nach meinem Verständnis

    wird für jeden übergebenen Wert:
    PHP-Code:
    $newBounday $oldBoundary $probabilitygeneriert
    also 70 und 30

    dann wird der Wert mit der MagicNumber verglichen (z.B. 20)
    PHP-Code:
    if ($magicNo $oldBoundary && $magicNo <= $newBounday) {
                    return 
    $key
    20 > 0 und 20 <= 30 = $key
    20 > 0 und 20 <= 70 = $key

    Beide Bedingungen sind ja erfült.

    In der Kommentierung steht dann:

    Code:
    // return last element, since probabilities are not 100 per cent
    Demzufolge müsste $pInjured[FALSE] = 70 übergeben werden oder sehe ich das falsch?

  2. #2
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.492

    Standard

    Oder wird mittels

    return $key;

    schon nach dem $pInjured[TRUE] korrekt ist die Abfrage beendet?

  3. #3
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von Acta Beitrag anzeigen
    Oder wird mittels

    return $key;

    schon nach dem $pInjured[TRUE] korrekt ist die Abfrage beendet?
    Ja. Das "// return last element, since probabilities are not 100 per cent" ist der Fallback, der zum greift, wenn Du z.B. mit

    PHP-Code:
    $pInjured[True] = 30 
    $pInjured
    [FALSE] = 20 
    arbeitest und die geloste Zufallszahl
    PHP-Code:
    $magicNo self::getMagicNumber(); 
    (z.B.) 70 ergäbe.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  4. #4
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.492

    Standard

    Merci dann ergibt das ganze natürlich auch einen Sinn!

    Die Zufallszahl geht von 1-100.

    Daher der FAllback!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •