
from itertools import product




def        __UpperCamelCase					(    lowerCAmelCase__							:    int  ,       lowerCAmelCase__							:    int  ):
 __a			:  List[Any]		    =  sides_number
 __a			:  Optional[Any]		    =  max_face_number * dice_number
 __a			:  List[Any]		    =  [0] * (max_total + 1)

 __a			:  Union[str, Any]		    =  1
 __a			:  List[Any]		    =  range(SCREAMING_SNAKE_CASE__  ,       max_face_number + 1  )
 for dice_numbers in product(SCREAMING_SNAKE_CASE__  ,       repeat=SCREAMING_SNAKE_CASE__  ):
  __a			:  Optional[Any]		    =  sum(SCREAMING_SNAKE_CASE__  )
  totals_frequencies[total] += 1

 return totals_frequencies




def        __UpperCamelCase					(    ):
 __a			:  str		    =  total_frequency_distribution(
     sides_number=4  ,       dice_number=9  )
 __a			:  Tuple		    =  total_frequency_distribution(
     sides_number=6  ,       dice_number=6  )

 __a			:  Optional[int]		    =  0
 __a			:  Any		    =  9
 __a			:  Optional[Any]		    =  4 * 9
 __a			:  Union[str, Any]		    =  6
 for peter_total in range(SCREAMING_SNAKE_CASE__  ,       max_peter_total + 1  ):
  peter_wins_count += peter_totals_frequencies[peter_total] * sum(
      colin_totals_frequencies[min_colin_total:peter_total]  )

 __a			:  Dict		    =  (4**9) * (6**6)
 __a			:  Optional[int]		    =  peter_wins_count / total_games_number

 __a			:  Optional[Any]		    =  round(SCREAMING_SNAKE_CASE__  ,       ndigits=7  )

 return rounded_peter_win_probability


if __name__ == "__main__":
      print(F"""{solution() = }""")


from .glue import GlueDataset, GlueDataTrainingArguments
from .language_modeling import (
    LineByLineTextDataset,
    LineByLineWithRefDataset,
    LineByLineWithSOPTextDataset,
    TextDataset,
    TextDatasetForNextSentencePrediction,
)
from .squad import SquadDataset, SquadDataTrainingArguments
