from __future__ import annotations

import random







class __snake_case							:
   lowerCAmelCase_								=				6




   def __init__(       self     :							Any ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= list(range(1			,      Dice.NUM_SIDES + 1 ) )




   def       __a		(       self     :							Optional[Any] ):



     """simple docstring"""






     return random.choice(self.sides )





def       __SCREAMING_SNAKE_CASE    (   __UpperCamelCase       :			int					,	__UpperCamelCase       :			int = 2      )				->   list[float]:







  """simple docstring"""





  SCREAMING_SNAKE_CASE__     				= [Dice() for i in range(__UpperCamelCase      )]
  SCREAMING_SNAKE_CASE__     				= [0] * (len(__UpperCamelCase      ) * Dice.NUM_SIDES + 1)
  for _ in range(__UpperCamelCase      ):
    count_of_sum[sum(dice.roll() for dice in dices      )] += 1
  SCREAMING_SNAKE_CASE__     				= [round((count * 1_00) / num_throws					,	2      ) for count in count_of_sum]
  return probability[num_dice:]  # remove probability of sums that never appear


if __name__ == "__main__":
   import doctest

   doctest.testmod()

from hashlib import mda, shaaaa

__lowerCamelCase     :					Dict				  =						(shaaaa, mda)







class __snake_case							:




   def __init__(       self     :							str			,      _lowercase     :							int = 8 ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= 0B0
     SCREAMING_SNAKE_CASE__     				= size




   def       __a		(       self     :							List[str]			,      _lowercase     :							str ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= self.hash_(_lowercase )
     self.bitarray |= h




   def       __a		(       self     :							int			,      _lowercase     :							str ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= self.hash_(_lowercase )
     return (h & self.bitarray) == h




   def __contains__(       self     :							Union[str, Any]			,      _lowercase     :							str ):



     """simple docstring"""






     return self.exists(_lowercase )




   def       __a		(       self     :							Dict			,      _lowercase     :							int ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= bin(_lowercase )[2:]
     return res.zfill(self.size )




   @property
   def       __a		(       self     :							Tuple ):



     """simple docstring"""






     return self.format_bin(self.bitarray )




   def       __a		(       self     :							Optional[int]			,      _lowercase     :							str ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= 0B0
     for func in HASH_FUNCTIONS:
       SCREAMING_SNAKE_CASE__     				= (
           int.from_bytes(func(value.encode() ).digest()			,      """little""" ) % self.size
       )
       res |= 2**position
     return res




   def       __a		(       self     :							str			,      _lowercase     :							str ):



     """simple docstring"""






     return self.format_bin(self.hash_(_lowercase ) )




   @property
   def       __a		(       self     :							Union[str, Any] ):



     """simple docstring"""






     SCREAMING_SNAKE_CASE__     				= bin(self.bitarray ).count("""1""" )
     return (n_ones / self.size) ** len(_lowercase )
