Przeanalizuj zawartość wykresu i wskaż kod, którego użyto do jego wygenerowania:
R1eYZszRD1rda
Linia 1. kratka kod 1.
Linia 2. def obliczenia otwórz nawias okrągły start dwukropek int znak równości 0 przecinek koniec dwukropek int znak równości 301 zamknij nawias okrągły dwukropek.
Linia 3. from math import sin przecinek pi przecinek radians.
Linia 4. import matplotlib kropka pyplot as plt.
Linia 6. def r otwórz nawias okrągły i zamknij nawias okrągły dwukropek.
Linia 7. return sin otwórz nawias okrągły radians otwórz nawias okrągły float otwórz nawias okrągły i zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły.
Linia 9. X znak równości otwórz nawias kwadratowy x for x in range otwórz nawias okrągły start przecinek koniec zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 10. Y znak równości otwórz nawias kwadratowy r otwórz nawias okrągły q zamknij nawias okrągły for q in X zamknij nawias kwadratowy.
Linia 11. Z znak równości otwórz nawias kwadratowy sin otwórz nawias okrągły q zamknij nawias okrągły for q in X zamknij nawias kwadratowy.
Linia 13. plt kropka scatter otwórz nawias okrągły X przecinek Y zamknij nawias okrągły.
Linia 14. plt kropka scatter otwórz nawias okrągły X przecinek Z zamknij nawias okrągły.
Linia 15. plt kropka grid otwórz nawias okrągły True zamknij nawias okrągły.
Linia 16. plt kropka show otwórz nawias okrągły zamknij nawias okrągły.
Linia 18. kratka wykonanie.
Linia 19. obliczenia otwórz nawias okrągły 1 przecinek 310 zamknij nawias okrągły.
Linia 1. kratka kod 2.
Linia 2. def obliczenia otwórz nawias okrągły start dwukropek int znak równości 0 przecinek koniec dwukropek int znak równości 301 zamknij nawias okrągły dwukropek.
Linia 3. from math import sin przecinek pi przecinek radians.
Linia 4. import matplotlib kropka pyplot as plt.
Linia 6. def r otwórz nawias okrągły i zamknij nawias okrągły dwukropek.
Linia 7. return sin otwórz nawias okrągły radians otwórz nawias okrągły float otwórz nawias okrągły i zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły.
Linia 9. X znak równości otwórz nawias kwadratowy x for x in range otwórz nawias okrągły start przecinek koniec zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 10. Y znak równości otwórz nawias kwadratowy r otwórz nawias okrągły q zamknij nawias okrągły for q in X zamknij nawias kwadratowy.
Linia 11. Z znak równości otwórz nawias kwadratowy sin otwórz nawias okrągły q zamknij nawias okrągły for q in X zamknij nawias kwadratowy.
Linia 13. plt kropka scatter otwórz nawias okrągły X przecinek Y zamknij nawias okrągły.
Linia 14. plt kropka scatter otwórz nawias okrągły X przecinek Z zamknij nawias okrągły.
Linia 15. plt kropka grid otwórz nawias okrągły True zamknij nawias okrągły.
Linia 16. plt kropka show otwórz nawias okrągły zamknij nawias okrągły.
Linia 18. kratka wykonanie.
Linia 19. obliczenia otwórz nawias okrągły 0 przecinek 301 zamknij nawias okrągły.
Linia 1. kratka kod 3.
Linia 2. def obliczenia otwórz nawias okrągły start dwukropek int znak równości 0 przecinek koniec dwukropek int znak równości 301 zamknij nawias okrągły dwukropek.
Linia 3. from math import sin przecinek pi przecinek radians.
Linia 4. import matplotlib kropka pyplot as plt.
Linia 6. def r otwórz nawias okrągły i zamknij nawias okrągły dwukropek.
Linia 7. return sin otwórz nawias okrągły float otwórz nawias okrągły i zamknij nawias okrągły zamknij nawias okrągły.
Linia 9. X znak równości otwórz nawias kwadratowy x for x in range otwórz nawias okrągły start przecinek koniec zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 10. Y znak równości otwórz nawias kwadratowy r otwórz nawias okrągły q zamknij nawias okrągły for q in X zamknij nawias kwadratowy.
Linia 11. Z znak równości otwórz nawias kwadratowy sin otwórz nawias okrągły q zamknij nawias okrągły for q in X zamknij nawias kwadratowy.
Linia 13. plt kropka scatter otwórz nawias okrągły X przecinek Y zamknij nawias okrągły.
Linia 14. plt kropka scatter otwórz nawias okrągły X przecinek Z zamknij nawias okrągły.
Linia 15. plt kropka grid otwórz nawias okrągły True zamknij nawias okrągły.
Linia 16. plt kropka show otwórz nawias okrągły zamknij nawias okrągły.
Linia 18. kratka wykonanie.
Linia 19. obliczenia otwórz nawias okrągły 0 przecinek 301 zamknij nawias okrągły.
R1G0vxs3zLKxR
RE1G3qXFfbRtx
Kod 1 jest niepoprawny, ponieważ funkcja obliczenia() jest wywoływana z niewłaściwymi argumentami. Kod 3 jest niepoprawny, ponieważ argument w wywołaniu funkcji sin() nie jest zamieniany na radiany. Poprawny jest kod 2.
11
Pokaż ćwiczenia:
21
Ćwiczenie 2
Ustawiono chodziarza na osi liczbowej w punkcie 0. W każdym ruchu chodziarz porusza się losowo w lewo lub w prawo. Metodą Monte Carlo przeprowadź n symulacji, w których sprawdzisz, w jakim punkcie znalazł się chodziarz po wykonaniu k kroków. Następnie dla każdej pozycji parzystej wypisz słupek ze znaków *, który będzie wizualizował procentowy udział danej pozycji we wszystkich pozycjach końcowych. Każdy znak * ma oznaczać 1 punkt procentowy. Łącznie należy wypisać m znaków *. W celu wylosowania tego samego rozkładu kroków dla każdego wywołania programu posłuż się ziarnem (seed) jako argumentem funkcji losującej.
Działanie programu sprawdź dla n = 100 000, k = 10, m = 100, seed = 3.
Specyfikacja problemu:
Dane:
n – liczba naturalna; liczba symulacji
k – liczba naturalna; liczba wykonanych kroków
m – liczba naturalna; liczba punktów procentowych zaznaczonych za pomocą znaku *, oznaczających procentowy udział pozycji we wszystkich pozycjach końcowych
seed – liczba naturalna; argument funkcji losującej
Wynik:
m znaków *; „wykres” procentowego udziału kolejnych pozycji we wszystkich pozycjach końcowych
Poprawne wyjście dla n = 100 000, k = 10, m = 100, seed = 3 powinno wyglądać następująco:
Linia 1. from random import randint przecinek seed.
Linia 3. def main otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 4. n znak równości 100000.
Linia 5. k znak równości 10.
Linia 6. m znak równości 100.
Linia 7. seed otwórz nawias okrągły 3 zamknij nawias okrągły.
Linia 9. pozycje znak równości otwórz nawias okrągły k asterysk 2 plus 1 zamknij nawias okrągły asterysk otwórz nawias kwadratowy 0 zamknij nawias kwadratowy.
Linia 11. for i in range otwórz nawias okrągły n zamknij nawias okrągły dwukropek.
Linia 12. x znak równości 0 kratka początkowa pozycja.
Linia 13. for j in range otwórz nawias okrągły k zamknij nawias okrągły dwukropek.
Linia 14. kratka losowa liczba minus 1 lub 1.
Linia 15. x plus znak równości randint otwórz nawias okrągły 0 przecinek 1 zamknij nawias okrągły asterysk 2 minus 1.
Linia 16. pozycje otwórz nawias kwadratowy x plus k zamknij nawias kwadratowy plus znak równości 1.
Linia 18. for i in range otwórz nawias okrągły 0 przecinek k asterysk 2 plus 1 przecinek 2 zamknij nawias okrągły dwukropek.
Linia 19. slupek znak równości int otwórz nawias okrągły round otwórz nawias okrągły m asterysk pozycje otwórz nawias kwadratowy i zamknij nawias kwadratowy prawy ukośnik n zamknij nawias okrągły zamknij nawias okrągły.
Linia 20. for j in range otwórz nawias okrągły slupek zamknij nawias okrągły dwukropek.
Linia 21. print otwórz nawias okrągły cudzysłów asterysk cudzysłów przecinek end znak równości cudzysłów cudzysłów zamknij nawias okrągły.
Linia 22. print otwórz nawias okrągły zamknij nawias okrągły.
Linia 24. main otwórz nawias okrągły zamknij nawias okrągły.