Sparing w Programowaniu Politechnika Poznańska, 24.02.2007 |
Zadanie C - Kości zostały rzucone |
Każdy kto kiedyś był dzieckiem grywał w takie gry jak chińczyk. Inni, którzy nadal mają w sobie coś z dziecka lubują się w grach bitewnych lub RPG. Wspólną cechą wielu z tych gier są kości, których ścianki reprezentują jakieś liczby. I tak w chińczyku i w kasynach używa się klasycznych kości D6, to znaczy, że ścianki tych kości mają odpowiednio wartości 1, 2, 3, 4, 5, 6. Inne kości często spotykane w grach RPG to D4, D8, D10, D12, D20.
Załóżmy, że mamy do czynienia ze wszystkimi kostkami Dp, gdzie p może być od 1 do 50. Oczywiście wartości ścianek na kostce o ustalonym p są kolejno 1, 2, 3 ... p. Przy każdym rzucie taką kością prawdopodobieństwo wystąpienia dowolnej ze ścianek jest 1/p (takie samo dla każdej ścianki).
Sytuacja komplikuje się, kiedy wykonujemy więcej niż jeden rzut kostką. Na przykład rzut 2D6 (2 kości D6) daje sumę oczek z zakresu 2...12. Jednakże prawdopodobieństwo wystąpienia każdej z liczb w tym zakresie nie jest jednakowe. Prawdopodobieństwo, że suma jest 2 wynosi 1/36, dla 3 jest to 2/36 itd.
Zadaniem będzie określenie prawdopodobieństwa uzyskania zadanej sumy w zadanej liczbie rzutów zadaną kością.
W pierwszej linii wejścia podana będzie liczba d (1 ≤ d ≤ 50) określająca liczbę przypadków testowych.
Każda linia wejścia zawiera 3 liczby całkowite: F (liczba ścianek na kości, 1 ≤ F ≤ 50), N (liczba wykonywanych rzutów kością 0 ≤ N ≤ 50) oraz S (oczekiwana suma, dla której wyliczone zostanie prawdopodobieństwo, 0 < S ≤ 4000).
Dla każdej linii wejścia na wyjściu ma się pojawić linia w postaci a/b (gdzie b=FN), będąca prawdopodobieństwem uzyskania sumy S.
Wejście3 6 2 10 6 2 5 6 3 13 |
Wyjście3/36 4/36 21/216 |