






'''simple docstring'''




from itertools import product

def 					__lowercase						(			__lowercase   ,  __lowercase       )       ->						list[int]:

      '''simple docstring'''


      _A			     =	sides_number
      _A			     =	max_face_number * dice_number
      _A			     =	[0] * (max_total + 1)

      _A			     =	1
      _A			     =	range(__lowercase   ,  max_face_number + 1       )
      for dice_numbers in product(__lowercase   ,  repeat=__lowercase       ):
            _A			     =	sum(__lowercase       )
            totals_frequencies[total] += 1

      return totals_frequencies

def 					__lowercase						(			)       ->						float:

      '''simple docstring'''


      _A			     =	total_frequency_distribution(
          sides_number=4   ,  dice_number=9       )
      _A			     =	total_frequency_distribution(
          sides_number=6   ,  dice_number=6       )

      _A			     =	0
      _A			     =	9
      _A			     =	4 * 9
      _A			     =	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]       )

      _A			     =	(4**9) * (6**6)
      _A			     =	peter_wins_count / total_games_number

      _A			     =	round(__lowercase   ,  ndigits=7       )

      return rounded_peter_win_probability


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











from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


__UpperCamelCase					:       Optional[Any]    					=      {
    "configuration_jukebox": [
        "JUKEBOX_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "JukeboxConfig",
        "JukeboxPriorConfig",
        "JukeboxVQVAEConfig",
    ],
    "tokenization_jukebox": ["JukeboxTokenizer"],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__UpperCamelCase					:       Tuple    					=      [
		    "JUKEBOX_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "JukeboxModel",
		    "JukeboxPreTrainedModel",
		    "JukeboxVQVAE",
		    "JukeboxPrior",
		]

if TYPE_CHECKING:
		from .configuration_jukebox import (
		    JUKEBOX_PRETRAINED_CONFIG_ARCHIVE_MAP,
		    JukeboxConfig,
		    JukeboxPriorConfig,
		    JukeboxVQVAEConfig,
		)
		from .tokenization_jukebox import JukeboxTokenizer

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_jukebox import (
				    JUKEBOX_PRETRAINED_MODEL_ARCHIVE_LIST,
				    JukeboxModel,
				    JukeboxPreTrainedModel,
				    JukeboxPrior,
				    JukeboxVQVAE,
				)

else:
		import sys

		__UpperCamelCase					:       List[Any]    					=      _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)

