php prozentuale chance

Dies ist wirklich mehr eine Frage der Einstellung ist, aber ich bin präsentiert es in php.

Nehmen wir an, wir hatten eine Liste von vier Prozentwerte geben ein Ereignis eintreten wird, auf iteration.

array=('walk the dog'=>.25,'read the paper'=>.25,'drink coffee'=>.0,'listen to music'=>.50)

(Tasten sind nur tests - in der Praxis ist dies noch in einem Strategie-Muster gilt, dass unterschiedliche Methoden, um ein Objekt aus chance mit call_user_func())

In einer Schleife, was wäre der beste Weg, um wählen Sie eine der folgenden Ereignisse per random-Auswahl angepasst, wobei Sie Ihre jeweiligen Gewichtungen zu berücksichtigen (DH für diese spezielle Konfiguration, es wird viel Musik gehört und nicht viel Kaffee Trank)

Derzeit habe ich so etwas wie:

for($i=1;$i<=3;$i++){
  $rand = 1/rand(1,10);
  //choose from the list
}

Aber dies würde erfordern, die Zuordnung der Prozentsätze zu Wertebereichen (50-100% geworden Sie Musik hören, 0-25% mit dem Hund spazieren und 25-50 Lesen der Zeitung), weil der 'Wert' für die iteration berechnet wird als Gleitkommazahl zwischen 0 und 1. Diese Art von änderungen, die die Art und Weise der Prozentsätze erfasst werden müssen.

Gibt es irgendeine Art von Ansatz, dass würde die Erhaltung der Identität, der Werte wie die Reale Wahrscheinlichkeit, dass Sie gewählt werden sollten, sondern als Bereiche? Es würde definitiv machen den code mehr konfigurierbar, da ich auf diese Werte einstellbar. Bitte lassen Sie mich wissen, wenn ich habe zu vage.

  • Ja genau.
  • Es gibt 4 Elemente in Ihrer Liste btw, nicht drei.
  • bearbeitet 😉
Schreibe einen Kommentar