Zahl Prozentual ausgeben (zufällig)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zahl Prozentual ausgeben (zufällig)

    Hallo zusammen

    Ich habe ein Problem und komme hier nicht weiter. Deshalb möchte ich euch mal um Rat fragen. Folgendes:

    - Ich habe 4 Zahlen bzw. 4 Variablen
    - Diese sollen zufällig ausgegeben werden, allerdings nicht jede Zahl gleich oft.
    Häufigkeit (Beispiel, sollte man beliebig wählen können)

    - Var 1 = 15 %
    - Var 2 = 15 %
    - Var 3 = 30 %
    - Var 4 = 40 %

    Das ganze sollte auch um 1 Variable erweitert werden können.

    Ich habe überlegt, das ganze mit einer Zufallszahl 1-100 und switch oder if/elseif Abfragen zu machen. Aber gibts da nicht sauberere oder einfachere Lösungen...?

  • #2
    Ich glaube deine Lösung ist schon ziemlich gut. Also die zufällig generierte Zahl sagt dann welche Variable genommen wird - je nachdem, in welchem Prozentbereich sie kommt.

    Mathematisch gesehen muss man natürlich noch voraussetzen, dass das ein LaPlace-Versuch ist, was man aber durchaus kann.
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      die prozente ergeben in summe 100, die zufallszahl ist eine zahl im bereich von 1 bis 100.
      also die prozente solange addieren, wie deren summe kleiner als die der zufallszahl ist.

      wenn da jetzt kein grober denkbolzen drinnsteckt, sollte der ansatz passen:
      PHP-Code:
      $vars=array('var1'=>15'$var2'=>15'var3'=>30'var4'=>40);

      $rand=rand(1100);

      $sum=0;
      foreach(
      $vars as $key => $percent)
       {
        
      $sum+=$percent;
        if(
      $sum<$rand)
        continue;
        else
         break;
       }

      echo 
      'Var: '.$key.' Prozent: '.$percent.' Zufallszahl: '.$rand.'<br />'

      Kommentar


      • #4
        Man könnte schon vorher summieren, dann spart man sich das bei der Ermittlung einer neuen Zahl, braucht dort dann nur noch einfache Vergleiche.
        die prozente ergeben in summe 100, die zufallszahl ist eine zahl im bereich von 1 bis 100.
        Beim Hinzufügen eines neuen Wertes muss man dann entweder wieder auf 100% "normalisieren" - oder man wählt stattdessen die Zufallszahl aus dem Bereich 1 bis $gesamtsumme.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Ok ich werde es mal versuchen, danke.
          Das mit dem normalisieren muss man allerdings wirklich regeln. Aber so oft wird das nicht geändert.

          Kommentar

          Lädt...
          X