



from itertools import product



def    __lowerCamelCase						(      _lowercase			,       _lowercase	)   ->    list[int]:
							UpperCAmelCase  :	Any							  =	sides_number
							UpperCAmelCase  :	List[Any]							  =	max_face_number * dice_number
							UpperCAmelCase  :	int							  =	[0] * (max_total + 1)

							UpperCAmelCase  :	str							  =	1
							UpperCAmelCase  :	Any							  =	range(_lowercase			,       max_face_number + 1	)
							for dice_numbers in product(_lowercase			,       repeat=_lowercase	):
														UpperCAmelCase  :	Union[str, Any]							  =	sum(_lowercase	)
														totals_frequencies[total] += 1

							return totals_frequencies



def    __lowerCamelCase						(      )   ->    float:
							UpperCAmelCase  :	str							  =	total_frequency_distribution(
							    sides_number=4			,       dice_number=9	)
							UpperCAmelCase  :	Optional[int]							  =	total_frequency_distribution(
							    sides_number=6			,       dice_number=6	)

							UpperCAmelCase  :	List[Any]							  =	0
							UpperCAmelCase  :	List[Any]							  =	9
							UpperCAmelCase  :	Dict							  =	4 * 9
							UpperCAmelCase  :	Dict							  =	6
							for peter_total in range(_lowercase			,       max_peter_total + 1	):
														peter_wins_count += peter_totals_frequencies[peter_total] * sum(
														    colin_totals_frequencies[min_colin_total:peter_total]	)

							UpperCAmelCase  :	str							  =	(4**9) * (6**6)
							UpperCAmelCase  :	Optional[Any]							  =	peter_wins_count / total_games_number

							UpperCAmelCase  :	Tuple							  =	round(_lowercase			,       ndigits=7	)

							return rounded_peter_win_probability


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






'''simple docstring'''




from ...utils import is_torch_available, is_transformers_available


if is_transformers_available() and is_torch_available():
							from .pipeline_vq_diffusion import LearnedClassifierFreeSamplingEmbeddings, VQDiffusionPipeline

