Skip to content

Instantly share code, notes, and snippets.

@jlpoveda
Created November 7, 2012 11:06
Show Gist options
  • Save jlpoveda/4030887 to your computer and use it in GitHub Desktop.
Save jlpoveda/4030887 to your computer and use it in GitHub Desktop.
Emular una función de probabilidad
// Array con probabilidades
$arrayProbabilities = (
20,
20,
10,
1,
20,
10
)
// Generamos un número entre 0 y la probabilidad más alta
$probability = rand(0, max($arrayProbabilities));
$numElements = (count($arrayProbabilities)-1);
do {
// Generamos un número entre 0 y el número de elementos del array
$element = rand(0, $numElements);
// Si la probabilidad obtenida anteriormente es mayor que la probabilidad que aparezca ese elemento,
// se vuelve a calcular el elemento, hasta que obtengamos un elemento con una probabilidad inferior
} while ($probability > $arrayProbabilities[$element]);
echo $element;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment