

from __future__ import annotations

import random






class 		__magic_name__ :
     UpperCamelCase_     :List[str]									=	6






     def __init__(							self     )->			List[str]:
         UpperCamelCase_          =		list(range(1						,		Dice.NUM_SIDES + 1     )     )






     def      UpperCAmelCase_							(							self     )->			Dict:
         return random.choice(self.sides     )




def        lowerCAmelCase(	SCREAMING_SNAKE_CASE_       ,		SCREAMING_SNAKE_CASE_ = 2       )->		list[float]:



    """simple docstring"""






    UpperCamelCase_          =		[Dice() for i in range(SCREAMING_SNAKE_CASE_       )]
    UpperCamelCase_          =		[0] * (len(SCREAMING_SNAKE_CASE_       ) * Dice.NUM_SIDES + 1)
    for _ in range(SCREAMING_SNAKE_CASE_       ):
        count_of_sum[sum(dice.roll() for dice in dices       )] += 1
    UpperCamelCase_          =		[round((count * 1_0_0) / 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 typing import Callable




def        lowerCAmelCase(	SCREAMING_SNAKE_CASE_       )->		List[Any]:



    """simple docstring"""






    def wrapper(SCREAMING_SNAKE_CASE_       ):
        UpperCamelCase_          =		function_with_docstring.__doc__
        return target_function

    return wrapper
