Rzuty kostką z ziarnem

Zadanie 21 z 21 · rozdział 9Trudność: 1 z 3listyrandomzliczanie

Treść zadania

Zasymuluj n rzutów sześcienną kostką do gry i policz, ile razy wypadła każda liczba oczek.

Wczytaj ziarno i n. Ustaw ziarno generatora liczb losowych instrukcją random.seed(ziarno), a następnie wykonaj n rzutów — każdy to jedno wywołanie random.randint(1, 6). Wyniki zliczaj w liście sześciu liczników.

Dane wejściowe

  • 1. linia: liczba całkowita ziarno
  • 2. linia: liczba rzutów n

Dane wyjściowe

Sześć linii w formacie oczka: liczba, dla oczek od 1 do 6 po kolei — np. 3: 1 oznacza, że trójka wypadła raz.

Ograniczenia

  • $n \ge 0$

Uwagi

  • Moduł random (dołączany instrukcją import random) losuje liczby. random.randint(a, b) zwraca losową liczbę całkowitą od a do b włącznie.
  • Liczby z komputera są tak naprawdę pseudolosowe: wylicza je wzór, który zaczyna od pewnej wartości początkowej — ziarna. Po random.seed(ziarno) z tym samym ziarnem zawsze otrzymasz ten sam ciąg liczb. Dzięki temu wynik programu da się sprawdzić automatycznie.
  • Aby otrzymać dokładnie te same wyniki co sprawdzarka, wywołaj random.randint(1, 6) dokładnie n razy, po jednym razie na rzut, i nie losuj nic innego.
  • [0] * 6 tworzy listę sześciu zer [0, 0, 0, 0, 0, 0]. Wygodnie jest liczyć k oczek w elemencie o indeksie k - 1.

Przykład

Wejście
42
10
Wyjście
1: 3
2: 3
3: 1
4: 0
5: 0
6: 3

Dla ziarna 42 kolejne rzuty to: 6, 1, 1, 6, 3, 2, 2, 2, 6, 1.

Potrzebujesz teorii?

Zasady obowiązujące w rozdziale 9

Zadania w tym rozdziale ćwiczą podstawowe operacje na listach: wczytywanie, przechodzenie pętlą, modyfikowanie elementów, wyszukiwanie i zliczanie.

Konwencje wspólne:

  • Każde zadanie (i każdy podpunkt) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
  • Lista na wejściu zajmuje dwie linie: w 1. linii jest liczba elementów n, a w 2. linii — n liczb oddzielonych pojedynczymi spacjami. Dodatkowe dane (np. szukany klucz) są w kolejnych liniach, po jednej wartości w linii.
  • Taką listę wczytasz np. tak:
    ```python
    n = int(input())
    lista = [int(x) for x in input().split()]
    `
  • Gdy wynikiem jest lista, wypisz ją instrukcją print(lista). Python wypisze ją w nawiasach kwadratowych, z elementami oddzielonymi przecinkiem i spacją, np. [4, 10, 8]. Pusta lista to [].
  • Jeśli zadanie mówi „oddzielone spacją” — użyj pojedynczej spacji.
  • Indeksy elementów liczymy od 0.
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
1
0
Oczekiwane wyjście
1: 0
2: 0
3: 0
4: 0
5: 0
6: 0

Test 2

Nie uruchomiono
Wejście
7
1
Oczekiwane wyjście
1: 0
2: 0
3: 1
4: 0
5: 0
6: 0

Test 3

Nie uruchomiono
Wejście
2024
12
Oczekiwane wyjście
1: 0
2: 3
3: 2
4: 2
5: 2
6: 3

Test 4

Nie uruchomiono
Wejście
0
60
Oczekiwane wyjście
1: 9
2: 6
3: 12
4: 11
5: 12
6: 10

Test 5

Nie uruchomiono
Wejście
5
100
Oczekiwane wyjście
1: 17
2: 22
3: 19
4: 15
5: 12
6: 15
Uruchom z własnymi danymi