

'''simple docstring'''

from __future__ import annotations

import random







class lowerCamelCase      :
				snake_case_           =   6

				def __init__(					self   )						->       Tuple:
					snake_case							 =				list(range(1,	Dice.NUM_SIDES + 1   )   )






				def 				_lowerCamelCase						(					self   )						->       List[Any]:
					return random.choice(self.sides   )

def     __magic_name__       ( A					,   A = 2							)			->		list[float]:
	snake_case							 =				[Dice() for i in range(A							)]
	snake_case							 =				[0] * (len(A							) * Dice.NUM_SIDES + 1)
	for _ in range(A							):
		count_of_sum[sum(dice.roll() for dice in dices							)] += 1
	snake_case							 =				[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()








'''simple docstring'''

lowerCAmelCase_						   =			{0: [1, 2], 1: [0, 3], 2: [0], 3: [1], 4: [5, 6], 5: [4, 6], 6: [4, 5]}

lowerCAmelCase_						   =			{0: [1, 2, 3], 1: [0, 3], 2: [0], 3: [0, 1], 4: [], 5: []}

def     __magic_name__       ( A					,   A					,   A							)			->		list:
	snake_case							 =				True
	snake_case							 =				[]

	for neighbour in graph[vert]:
		if not visited[neighbour]:
			connected_verts += dfs(A					,   A					,   A							)

	return [vert, *connected_verts]

def     __magic_name__       ( A							)			->		list:
	snake_case							 =				len(A							)
	snake_case							 =				graph_size * [False]
	snake_case							 =				[]

	for i in range(A							):
		if not visited[i]:
			snake_case							 =				dfs(A					,   A					,   A							)
			components_list.append(A							)

	return components_list


if __name__ == "__main__":
						import doctest

						doctest.testmod()





