Variables aleatorias binomiales

En esta publicación, discutiremos las variables aleatorias binomiales.
Prerrequisito: Variables aleatorias 
Un tipo específico de variable aleatoria discreta que cuenta con qué frecuencia ocurre un evento particular en un número fijo de intentos o intentos. 
Para que una variable sea una variable aleatoria binomial, se deben cumplir TODAS las siguientes condiciones: 
 

  1. Hay un número fijo de ensayos (un tamaño de muestra fijo).
  2. En cada prueba, el evento de interés ocurre o no.
  3. La probabilidad de ocurrencia (o no) es la misma en cada prueba.
  4. Los juicios son independientes entre sí.

Notaciones Matemáticas 
 

n = number of trials
p = probability of success in each trial
k = number of success in n trials

Ahora tratamos de encontrar la probabilidad de k éxito en n intentos.
Aquí la probabilidad de éxito en cada prueba es p independiente de otras pruebas. 
Entonces, primero elegimos k ensayos en los que habrá un éxito y en el resto nk ensayos habrá un fracaso. El número de formas de hacerlo es 
 

Dado que todos los n eventos son independientes, la probabilidad de k éxito en n intentos es equivalente a la multiplicación de la probabilidad de cada intento.
Aquí es k éxito y nk fracasos, por lo que la probabilidad de que cada manera logre k éxito y nk fracaso es 
 

Por lo tanto, la probabilidad final es 
 

(number of ways to achieve k success
 and n-k failures)
 *
(probability for each way to achieve k
 success and n-k failure)

Entonces la probabilidad de variable aleatoria binomial viene dada por: 
 

Sea X una variable aleatoria binomial con el número de intentos ny la probabilidad de éxito en cada intento sea p. 
El número esperado de éxitos está dado por 
 

E[X] = np

La varianza del número de éxitos está dada por 
 

Var[X] = np(1-p)

Ejemplo 1 : considere un experimento aleatorio en el que se lanza una moneda sesgada (probabilidad de cara = 1/3) 10 veces. Encuentre la probabilidad de que el número de caras que aparezcan sea 5.
Solución: 
 

Let X be binomial random variable 
with n = 10 and p = 1/3
P(X=5) = ?

 

 

Aquí está la implementación para el mismo 
 

C++

// C++ program to compute Binomial Probability
#include <iostream>
#include <cmath>
using namespace std;
  
// function to calculate nCr i.e., number of 
// ways to choose r out of n objects
int nCr(int n, int r)
{
    // Since nCr is same as nC(n-r)
    // To decrease number of iterations
    if (r > n / 2)
        r = n - r;
  
    int answer = 1;
    for (int i = 1; i <= r; i++) {
        answer *= (n - r + i);
        answer /= i;
    }
  
    return answer;
}
  
// function to calculate binomial r.v. probability
float binomialProbability(int n, int k, float p)
{
    return nCr(n, k) * pow(p, k) *
                pow(1 - p, n - k);
}
  
// Driver code
int main()
{
  
    int n = 10;
    int k = 5;
    float p = 1.0 / 3;
  
    float probability = binomialProbability(n, k, p);
  
    cout << "Probability of " << k;
    cout << " heads when a coin is tossed " << n;
    cout << " times where probability of each head is " << p << endl;
    cout << " is = " << probability << endl;
}

Java

// Java program to compute Binomial Probability
  
import java.util.*;
  
class GFG
{
    // function to calculate nCr i.e., number of 
    // ways to choose r out of n objects
    static int nCr(int n, int r)
    {
        // Since nCr is same as nC(n-r)
        // To decrease number of iterations
        if (r > n / 2)
            r = n - r;
      
        int answer = 1;
        for (int i = 1; i <= r; i++) {
            answer *= (n - r + i);
            answer /= i;
        }
      
        return answer;
    }
      
    // function to calculate binomial r.v. probability
    static float binomialProbability(int n, int k, float p)
    {
        return nCr(n, k) * (float)Math.pow(p, k) * 
                        (float)Math.pow(1 - p, n - k);
    }
      
    // Driver code
    public static void main(String[] args)
    {
        int n = 10;
        int k = 5;
        float p = (float)1.0 / 3;
      
        float probability = binomialProbability(n, k, p);
          
        System.out.print("Probability of " +k);
        System.out.print(" heads when a coin is tossed " +n);
        System.out.println(" times where probability of each head is " +p);
        System.out.println( " is = " + probability );
    }
}
  
/* This code is contributed by Mr. Somesh Awasthi */

Python3

# Python3 program to compute Binomial 
# Probability
  
# function to calculate nCr i.e.,
# number of ways to choose r out
# of n objects
def nCr(n, r):
      
    # Since nCr is same as nC(n-r)
    # To decrease number of iterations
    if (r > n / 2):
        r = n - r;
  
    answer = 1;
    for i in range(1, r + 1):
        answer *= (n - r + i);
        answer /= i;
  
    return answer;
  
# function to calculate binomial r.v.
# probability
def binomialProbability(n, k, p):
  
    return (nCr(n, k) * pow(p, k) * 
                        pow(1 - p, n - k));
  
# Driver code
n = 10;
k = 5;
p = 1.0 / 3;
  
probability = binomialProbability(n, k, p);
  
print("Probability of", k, 
      "heads when a coin is tossed", end = " ");
print(n, "times where probability of each head is", 
                                      round(p, 6));
print("is = ", round(probability, 6));
  
# This code is contributed by mits

C#

// C# program to compute Binomial
// Probability.
using System;
  
class GFG {
      
    // function to calculate nCr
    // i.e., number of ways to 
    // choose r out of n objects
    static int nCr(int n, int r)
    {
          
        // Since nCr is same as
        // nC(n-r) To decrease 
        // number of iterations
        if (r > n / 2)
            r = n - r;
      
        int answer = 1;
        for (int i = 1; i <= r; i++)
        {
            answer *= (n - r + i);
            answer /= i;
        }
      
        return answer;
    }
      
    // function to calculate binomial
    // r.v. probability
    static float binomialProbability(
                  int n, int k, float p)
    {
        return nCr(n, k) * 
                   (float)Math.Pow(p, k)
                * (float)Math.Pow(1 - p,
                                 n - k);
    }
      
    // Driver code
    public static void Main()
    {
        int n = 10;
        int k = 5;
        float p = (float)1.0 / 3;
      
        float probability = 
              binomialProbability(n, k, p);
          
        Console.Write("Probability of "
                                      + k);
        Console.Write(" heads when a coin "
                       + "is tossed " + n);
        Console.Write(" times where "
           + "probability of each head is "
                                      + p);
        Console.Write( " is = "
                           + probability );
    }
}
  
// This code is contributed by nitin mittal.

PHP

<?php
// php program to compute Binomial 
// Probability
  
// function to calculate nCr i.e.,
// number of ways to choose r out
// of n objects
function nCr($n, $r)
{
      
    // Since nCr is same as nC(n-r)
    // To decrease number of iterations
    if ($r > $n / 2)
        $r = $n - $r;
  
    $answer = 1;
    for ($i = 1; $i <= $r; $i++) {
        $answer *= ($n - $r + $i);
        $answer /= $i;
    }
  
    return $answer;
}
  
// function to calculate binomial r.v.
// probability
function binomialProbability($n, $k, $p)
{
    return nCr($n, $k) * pow($p, $k) *
                   pow(1 - $p, $n - $k);
}
  
// Driver code
    $n = 10;
    $k = 5;
    $p = 1.0 / 3;
  
    $probability = 
         binomialProbability($n, $k, $p);
  
    echo "Probability of " . $k;
    echo " heads when a coin is tossed "
                                    . $n;
    echo " times where probability of "
                 . "each head is " . $p ;
    echo " is = " . $probability ;
  
// This code is contributed by nitin mittal.
?>

Javascript

<script>
  
// Javascript program to compute Binomial Probability
  
    // function to calculate nCr i.e., number of 
    // ways to choose r out of n objects
    function nCr(n, r)
    {
        // Since nCr is same as nC(n-r)
        // To decrease number of iterations
        if (r > n / 2)
            r = n - r;
        
        let answer = 1;
        for (let i = 1; i <= r; i++) {
            answer *= (n - r + i);
            answer /= i;
        }
        
        return answer;
    }
        
    // function to calculate binomial r.v. probability
    function binomialProbability(n, k, p)
    {
        return nCr(n, k) * Math.pow(p, k) * 
                        Math.pow(1 - p, n - k);
    }
      
// driver program
        let n = 10;
        let k = 5;
        let p = 1.0 / 3;
        
        let probability = binomialProbability(n, k, p);
            
        document.write("Probability of " +k);
        document.write(" heads when a coin is tossed " +n);
        document.write(" times where probability of each head is " +p);
        document.write( " is = " + probability );
   
 // This code is contributed by code_hunt.
</script>

Producción: 
 

Probability of 5 heads when a coin is tossed 10 times where probability of each head is 0.333333
 is = 0.136565

Referencia
stat200
Este artículo es una contribución de Pratik Chhajer . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *