Space Python Ładowanie Pythona…

Symulacja z ziarnem

Napisz kodŁatwy 2 etapy

Zanim zespół zaufa nowemu filtrowi zakłóceń, chce rzucić w niego zakłóceniami z symulacji: 100 odczytów, każdy z 5% szans, że coś pójdzie nie tak. Losowe dane łatwo zrobić. Kłopot zaczyna się wtedy, gdy test raz nie przechodzi, a przy kolejnym uruchomieniu już tak.

Spraw, żeby symulacja była losowa, ale za każdym razem tak samo losowa.

Ustaw ziarno random na 42. Potem dla każdego ze 100 odczytów licz zakłócenie, gdy random.random() < 0.05, i wypisz ich liczbę:

Zakłócenia w 100 odczytach: 7

Wywołuj random.random() dokładnie raz na odczyt, po ustawieniu ziarna: sprawdzenie oczekuje dokładnie tej liczby, a każda inna kolejność wywołań da inną.

Dokładna liczba

Ukończ etap 1, aby odblokować ten etap.

Dla każdego zakłócenia wybierz jego rodzaj przez random.choice(KINDS), zaraz po sprawdzeniu, które je wykryło, policz rodzaje w słowniku by_kind i wypisz je posortowane po liczbie wszystkich zakłóceń:

Zakłócenia w 100 odczytach: 5
DROPOUT: 3
SPIKE: 2

Wywołuj random.choice() tylko dla zakłóceń. Spójrz na sumę: to już nie 7.

Powtarzalne rodzaje
Nie jesteś zalogowany, więc postęp zostaje tylko w tej przeglądarce. Zaloguj się, aby go zapisać i korzystać z podpowiedzi oraz rozwiązań.

Podpowiedzi

Import modułów systemowych

import-modulow-systemowych.py
# Moduł to skrzynka z narzędziami, którą ktoś już zbudował i przetestował za Ciebie

# Zwykły import wczytuje cały moduł
import sys
import platform
import math

# from ... import wczytuje tylko jedno narzędzie
from math import sqrt

# as nadaje modułowi krótszy przydomek
import random as rng

# Przy zwykłym imporcie: nazwa modułu, kropka, potem narzędzie
print("Wersja Pythona:", platform.python_version())
print("System:", platform.system())
print("Python mieszka w:", sys.executable)

# math zawiera stałe, których nie chciałbyś wpisywać z pamięci
radius_km = 6371
print("Obwód Ziemi:", round(2 * math.pi * radius_km), "km")

# sqrt przyszło samo, więc nie potrzebuje kropki przed sobą
print("Pierwiastek kwadratowy z 9:", sqrt(9))

# rng to po prostu przydomek dla random
print("Losowy dzień roku marsjańskiego:", rng.randint(1, 687))
Otwórz cały przykład
script.py
PythonWiersz 1, kol. 1Spacje: 4
Ładowanie środowiska Pythona…

Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].