Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Zadanie 1

Janek wygenerował losowo 1000 par liczb całkowitych, oznaczających ruchy pewnej cząsteczki w cieczy. Poprosił cię o wyliczenie wskazanych statystyk na jej temat.

W pliku ruchy.txt znajduje się 1000 wierszy, w każdym wierszu po dwie liczby oddzielone spacją: pierwsza z nich oznacza ruch cząsteczki w poziomie, druga zaś – jej ruch w pionie. Liczby te zawierają się w przedziale < 30 ,   30 >.

Pierwsza liczba oznacza ruchy w lewo bądź w prawo: -6 oznacza ruch o 6 jednostek w lewo, natomiast 5 – przemieszczenie o 5 jednostek w prawo.

Druga liczba w wierszu oznacza ruchy do góry bądź w dół: -10 oznacza ruch 10 jednostek w dół, natomiast 22 – przemieszczenie o 22 jednostki w górę.

W obu przypadkach 0 oznacza brak ruchu w danym kierunku.

R11bZ0vpn5WCf

Przycisk do pobrania pliku TXT z kodem źródłowym.

Plik TXT o rozmiarze 6.09 KB w języku polskim

Cząsteczka rozpoczyna swój ruch w położeniu początkowym ( x , y ) = ( 1000 , 1000 ).

Janek poprosił cię o wyliczenie średniej odległości, którą cząsteczka pokonuje w jednym ruchu oraz o podanie najmniejszej odległości, jaka dzieliła ją od punktu ( 0 ,   0 ).

Napisz program, który dla pliku ruchy.txt wyliczy średnią odległość, jaką cząsteczka pokonuje w jednym ruchu oraz poda najmniejszą odległość, jaka dzieliła ją od punktu ( 0 ,   0 ). Wyniki zapisz do pliku wynik.txt, w osobnych liniach, zaokrąglone do trzech miejsc po przecinku.

Do oceny oddajesz:

  • plik wynik.txt zawierający odpowiedź do zadania – dwie liczby w osobnych wierszach, zaokrąglone do trzech miejsc po przecinku: w pierwszym wierszu jest liczba oznaczająca średnią odległość pokonaną przez cząsteczkę w jednym ruchu, w drugim – liczba oznaczająca najbliższą odległość cząsteczki od punktu ( 0 ,   0 )

  • plik(i) z komputerową realizacją zadania (kodem programu).

Przedstaw rozwiązanie w wybranym języku programowania: C++, Java lub Python. Odpowiedź dla danych z pliku znajdziesz pod omówieniem pseudokodupseudokodpseudokodu.

Rozwiązanie

Rozwiązanie zadania przedstawimy w postaci pseudokodu.

Na początku wczytamy dane z pliku. Następnie, po każdym ruchu, będziemy dodawać współrzędne do zmiennych oraz sprawdzać, w jakim położeniu od punktu ( 0 ,   0 ) się znajdujemy. Na koniec obliczymy średnią odległość pokonywaną w jednym ruchu i wpiszemy odpowiedzi do pliku wynikowego.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. ruchy otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wpisz pierwszą liczbę z wiersza z pliku cudzysłów ruchy kropka txt cudzysłów. Linia 3. ruchy otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wpisz drugą liczbę z wiersza z pliku cudzysłów ruchy kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów ruchy kropka txt cudzysłów. Linia 6. położenie podkreślnik x ← minus 1000. Linia 7. położenie podkreślnik y ← minus 1000. Linia 9. najlepsza podkreślnik odległość ← pierwiastek otwórz nawias okrągły pot otwórz nawias okrągły położenie podkreślnik x przecinek 2 zamknij nawias okrągły plus pot otwórz nawias okrągły położenie podkreślnik y przecinek 2 zamknij nawias okrągły zamknij nawias okrągły. Linia 10. średni podkreślnik ruch ← 0. Linia 12. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 13. średni podkreślnik ruch ← średni podkreślnik ruch plus pierwiastek otwórz nawias okrągły pot otwórz nawias okrągły ruchy otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy przecinek 2 zamknij nawias okrągły plus pot otwórz nawias okrągły ruchy otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy przecinek 2 zamknij nawias okrągły zamknij nawias okrągły. Linia 14. położenie podkreślnik x ← położenie podkreślnik x plus ruchy otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy. Linia 15. położenie podkreślnik y ← położenie podkreślnik y plus ruchy otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy. Linia 16. najlepsza podkreślnik odległość ← min otwórz nawias okrągły najlepsza podkreślnik odległość przecinek pierwiastek otwórz nawias okrągły pot otwórz nawias okrągły położenie podkreślnik x przecinek 2 zamknij nawias okrągły plus pot otwórz nawias okrągły położenie podkreślnik y przecinek 2 zamknij nawias okrągły zamknij nawias okrągły. Linia 18. średni podkreślnik ruch ← średni podkreślnik ruch prawy ukośnik 1000. Linia 20. zaokrąglij średni podkreślnik ruch do 3 miejsc po przecinku. Linia 21. zaokrąglij najlepsza podkreślnik odległość do 3 miejsc po przecinku. Linia 23. wpisz średni podkreślnik ruch do pliku cudzysłów wynik kropka txt cudzysłów. Linia 24. przejdź do następnej linii w pliku cudzysłów wynik kropka txt cudzysłów. Linia 25. wpisz najlepsza podkreślnik odległość do pliku cudzysłów wynik kropka txt cudzysłów.
Ważne!

W pseudokodzie wykorzystaliśmy operatory pierwiastek, pot oraz min.

  • pierwiastek(x) – zwraca wartość pierwiastka liczby x,

  • pot(a,b) – zwraca wartość liczby a podniesionej do potęgi b,

  • min(a,b) – zwraca mniejszą wartość z dwóch liczb: a i b.

Odpowiedź

Poprawna odpowiedź dla danych z pliku ruchy.txt znajduje się w pliku:

R1Pj2V1sT50XX

Przycisk do pobrania pliku TXT z kodem źródłowym.

Plik TXT o rozmiarze 13.00 B w języku polskim

Słownik

metoda Monte Carlo
metoda Monte Carlo

służy do modelowania matematycznego procesów, które są zbyt złożone, aby dawały dokładne wyniki; opiera się na losowaniu wielkości charakteryzujących proces

odchylenie standardowe
odchylenie standardowe

miara zmienności, wskazująca jak szeroko rozrzucone są wartości względem średniej arytmetycznej dla pojedynczej próby (serii danych)

pseudokod
pseudokod

sposób zapisania algorytmu podobny do języka programowania

rozkład dwumianowy
rozkład dwumianowy

dyskretny rozkład prawdopodobieństwa opisujący liczbę sukcesów w ciągu niezależnych prób (zwanych próbami Bernoulliego), z których każda ma jednakowe prawdopodobieństwo sukcesu

rozkład normalny
rozkład normalny

jeden z najważniejszych w statystyce rozkładów prawdopodobieństwa; definicja jego funkcji gęstości jest następująca:

f μ , σ ( x ) = 1 σ 2 π exp ( ( x μ ) 2 2 σ 2 )