Foros del Web » Programando para Internet » PHP »

Cálculo de probabilidades

Estas en el tema de Cálculo de probabilidades en el foro de PHP en Foros del Web. Esta vez el problema es matemático... Estoy haciendo unas pruebas para obtener cálculos sobre probabilidades, todo funciona bien hasta que deseo obtener las probabilidades de ...
  #1 (permalink)  
Antiguo 02/04/2017, 20:21
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 10 años, 4 meses
Puntos: 30
Cálculo de probabilidades

Esta vez el problema es matemático...

Estoy haciendo unas pruebas para obtener cálculos sobre probabilidades, todo funciona bien hasta que deseo obtener las probabilidades de acierto si se obtienen x cantidad de numeros acertados de un total de 5.

La fórmula para calcular eso es la siguiente:



Y el resultado que se espera de haber acertado 3 numeros de 5 es el siguiente:



pero a mi me da éste resultado dentro de un bucle para los diferentes aciertos:

Código HTML:
Ver original
  1. 1 aciertos: 1 de 1.1863965751816E-6 -> desconozco el resultado correcto
  2. 2 aciertos: 1 de 0.0005979438738915 -> desconozco el resultado correcto
  3. 3 aciertos: 1 de 0.11121756054382 -> aquí debería de dar 579.76
  4. 4 aciertos: 1 de 6.784271193173 -> desconozco el resultado correcto
  5. 5 aciertos: 1 de 81.411254318076 -> desconozco el resultado correcto

aquí el código:
Código PHP:
Ver original
  1. $jackpot = prob_jackpot($n, $r);
  2.  
  3. $html = '';
  4. for($k = 1; $k <= $r; $k++) {
  5.     $smallest[$k] = prob_smallest($n, $r, $k);
  6.     $html .= '<label>' . $k . ' aciertos: 1 de ' . $smallest[$k] .'</label><br>';
  7. }
  8.  
  9. function factorial($n) {
  10.     if($n < 2)
  11.         return 1;
  12.  
  13.     return $n * factorial($n - 1);
  14. }
  15.  
  16. function prob_jackpot($n, $r) {
  17.     return factorial($n) / (factorial($r) * factorial($n - $r));
  18. }
  19.  
  20. function prob_smallest($n, $r, $k) {
  21.     global $jackpot;
  22.     return ((factorial($r) / (factorial($k) * factorial($r - $k))) * (factorial($n - $r) / (factorial($r - $k) * factorial($n - $r - $k)))) / $jackpot;
  23. }

NOTA: se puede obviar el uso de la función factorial() y sustiuirlo por gmp_fact() (previa habilitación de la extensión para php), pero al hacerlo, los resultados son números enteros.

Última edición por Triby2; 02/04/2017 a las 20:28
  #2 (permalink)  
Antiguo 03/04/2017, 05:19
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Cálculo de probabilidades

Código PHP:
function factorial($n) {
    if(
$n 2)
    {
        return 
1;
    }
    else 
    {
        return 
$n factorial($n 1);
    }
}
//total de números
$n=69;
//aciertos
$k=3;
//intentos
$r=5;

$x = (factorial($r) /( factorial($k) * factorial( ($r-$k) ) ) ) * ( factorial( ($n-$r) ) / ( factorial( ($r-$k) ) * factorial( ($n-$r-$k) ) ) );
$y factorial($n) / ( factorial($r) * factorial( ($n $r) ) );

$probablidad/$y
No sé qué estará mal, a mi me arroja los mismos valores. Luego si tengo tiempo la miro más en profundidad.

Por cierto por qué llamas a la función antes de declararla?
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 03/04/2017 a las 06:11
  #3 (permalink)  
Antiguo 03/04/2017, 07:12
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 10 años, 4 meses
Puntos: 30
Respuesta: Cálculo de probabilidades

Cita:
Iniciado por xerifandtomas Ver Mensaje
No sé qué estará mal, a mi me arroja los mismos valores. Luego si tengo tiempo la miro más en profundidad.

Por cierto por qué llamas a la función antes de declararla?
mmm... buena pregunta, cuando estoy haciendo pruebas no reparo en ese detalle pero el tema es que funciona de todas maneras al no leerse el código de manera lineal como sucede en JS.
  #4 (permalink)  
Antiguo 05/04/2017, 23:50
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 125
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Cálculo de probabilidades

Edito

Esta mal resuelto el wiki parece

Busca distribución hipergeometrica en la web , parece que la formula esta mal
__________________
alquiler gesell

Última edición por acknowledge; 06/04/2017 a las 08:44

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:16.