Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Programa de probabilidad

Estas en el tema de Programa de probabilidad en el foro de C/C++ en Foros del Web. Hola, Tengo que diseñar un programa que dé la probabilidad de sacar cara C veces al tirar una moneda T veces, asumiendo que 0=<t=<9 y ...
  #1 (permalink)  
Antiguo 31/10/2011, 08:56
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 1
Programa de probabilidad

Hola,

Tengo que diseñar un programa que dé la probabilidad de sacar cara C veces al tirar una moneda T veces, asumiendo que 0=<t=<9 y 0=<c=<t.

Sé que esto se consigue a través de la distribución binomial, pero no acabo de entender cómo diseñar el algoritmo... ¿Alguna idea? Os dejo el enunciado aquí (en catalán):

Calculeu la probabilitat que, tirant una moneda t vegades, surti cara c vegades. Suposeu
que la moneda no està trucada.
Entrada
L’entrada consisteix en dos naturals t i c. Suposeu 0 t 9 i 0 c t.
Sortida
Escriviu, amb quatre decimals, la probabilitat d’obtenir c cares amb t tirades.
Observaci ´o
Si programeu en C++, feu servir el tipus double per fer els c`alculs, i poseu aquestes dues
l´ınies al principi del vostre main():
cout. setf ( ios :: fixed );
cout. precision (4);
  #2 (permalink)  
Antiguo 31/10/2011, 09:56
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Programa de probabilidad

Para calcular eso, hay una formula ya conocida:

Mira wikipedia: http://es.wikipedia.org/wiki/Distribuci%C3%B3n_binomial
  #3 (permalink)  
Antiguo 01/11/2011, 06:47
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Programa de probabilidad

Cita:
Iniciado por sam90 Ver Mensaje
Para calcular eso, hay una formula ya conocida:

Mira wikipedia: [url]http://es.wikipedia.org/wiki/Distribuci%C3%B3n_binomial[/url]
Pero implica el uso de factoriales... Existe alguna función para calcular factoriales? Por que si tengo que hacer una iteración para cada factorial, lo llevo claro.
  #4 (permalink)  
Antiguo 01/11/2011, 08:49
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Programa de probabilidad

Puede meter esa iteracion en una funcion.
Código C:
Ver original
  1. int factorial(int n)
  2. {
  3.     int a = 1,i;
  4.     for (i = 1 ;i <= n ; i ++) a = a * i;
  5.     return a;
  6. }
  #5 (permalink)  
Antiguo 02/11/2011, 03:40
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Programa de probabilidad

Hola!

Usando la función que mencionas, me da 0 todo el rato... Qué he hecho mal? Aquí está el código:

#include <iostream>
#include <cmath>

using namespace std;
int n, k;
int factorial(int);

int main ()
{
int n, k, c;
double p, b;
cin>>n>>k;
p=0,5;
c=n-k;
b=((factorial(n))/(factorial(k)*factorial(c)))*pow(p,k)*pow(1-p,n-k);
cout<<b;

}

int factorial(int n)
{
int a = 1,i;
for (i = 1 ;i <= n ; i ++) a = a * i;
return a;
}
  #6 (permalink)  
Antiguo 02/11/2011, 09:00
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Programa de probabilidad

p = 0,5; asigna 0 a p. Usa el . para doubles.
__________________
Visita mi perfil en LinkedIn

Etiquetas: programa
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 13:06.