
from math import factorial






def 						__magic_name__			(   __a      :	int	,		__a      :	int	,		__a      :	float						):



     '''simple docstring'''




     if successes > trials:
          raise ValueError("""successes must be lower or equal to trials"""						)
     if trials < 0 or successes < 0:
          raise ValueError("""the function is defined for non-negative integers"""						)
     if not isinstance(__a	,		__a						) or not isinstance(__a	,		__a						):
          raise ValueError("""the function is defined for non-negative integers"""						)
     if not 0 < prob < 1:
          raise ValueError("""prob has to be in range of 1 - 0"""						)
     UpperCamelCase__				=    (prob**successes) * ((1 - prob) ** (trials - successes))
     # Calculate the binomial coefficient: n! / k!(n-k)!
     UpperCamelCase__				=    float(factorial(__a						)						)
     coefficient /= factorial(__a						) * factorial(trials - successes						)
     return probability * coefficient


if __name__ == "__main__":
    from doctest import testmod

    testmod()
    print('''Probability of 2 successes out of 4 trails''')
    print('''with probability of 0.75 is:''', end=''' ''')
    print(binomial_distribution(2, 4, 0.75))







from typing import TYPE_CHECKING

from ...utils import _LazyModule


lowerCamelCase_						     =					{'''processing_wav2vec2_with_lm''': ['''Wav2Vec2ProcessorWithLM''']}


if TYPE_CHECKING:
    from .processing_wavaveca_with_lm import WavaVecaProcessorWithLM
else:
    import sys

    lowerCamelCase_						     =					_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)





