from math import factorial




def       __lowerCAmelCase      (						A_   : int						,	A_   : int						,	A_   : float					)    ->  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(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 OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


a_							=      {
    """configuration_altclip""": [
        """ALTCLIP_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """AltCLIPConfig""",
        """AltCLIPTextConfig""",
        """AltCLIPVisionConfig""",
    ],
    """processing_altclip""": ["""AltCLIPProcessor"""],
}

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       a_							=      [
           """ALTCLIP_PRETRAINED_MODEL_ARCHIVE_LIST""",
           """AltCLIPPreTrainedModel""",
           """AltCLIPModel""",
           """AltCLIPTextModel""",
           """AltCLIPVisionModel""",
       ]


if TYPE_CHECKING:
       from .configuration_altclip import (
           ALTCLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
           AltCLIPConfig,
           AltCLIPTextConfig,
           AltCLIPVisionConfig,
       )
       from .processing_altclip import AltCLIPProcessor

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_altclip import (
                  ALTCLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
                  AltCLIPModel,
                  AltCLIPPreTrainedModel,
                  AltCLIPTextModel,
                  AltCLIPVisionModel,
              )


else:
       import sys

       a_							=      _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)



