




'''simple docstring'''


from math import factorial


def     SCREAMING_SNAKE_CASE							(   a_						:				int					,       a_						:				int					,       a_						:				float      ):
  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(snake_case__					,       snake_case__      ) or not isinstance(snake_case__					,       snake_case__      ):
    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'      )
  __a								=       (prob**successes) * ((1 - prob) ** (trials - successes))
  # Calculate the binomial coefficient: n! / k!(n-k)!
  __a								=       float(factorial(snake_case__      )      )
  coefficient /= factorial(snake_case__      ) * 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))





"""simple docstring"""


from typing import TYPE_CHECKING

from ....utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


_lowercase				 =					{
    '''configuration_mctct''': ['''MCTCT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''MCTCTConfig'''],
    '''feature_extraction_mctct''': ['''MCTCTFeatureExtractor'''],
    '''processing_mctct''': ['''MCTCTProcessor'''],
}


try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase				 =					[
		    '''MCTCT_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''MCTCTForCTC''',
		    '''MCTCTModel''',
		    '''MCTCTPreTrainedModel''',
		]


if TYPE_CHECKING:
		from .configuration_mctct import MCTCT_PRETRAINED_CONFIG_ARCHIVE_MAP, MCTCTConfig
		from .feature_extraction_mctct import MCTCTFeatureExtractor
		from .processing_mctct import MCTCTProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_mctct import MCTCT_PRETRAINED_MODEL_ARCHIVE_LIST, MCTCTForCTC, MCTCTModel, MCTCTPreTrainedModel

else:
		import sys

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