Python 10. Napisz program który wypisze wygeneruje liste składajaca sie z 20 losowych liczb całkowitych z przedziału
[0; 100), a zatem za pomoca konstrukcji [... for ... in ... if ...] przefiltruje wygenerowana liste
zostawiajac tylko liczby nalezace do ciagu an = 3n + 1, gdzie n 2 Z. Podpowiedz: mozna zaimplementowac
funkcje sprawdzajaca czy liczba spełnia warunek i uzyc ta funkcje w srodku generatora.



Odpowiedź :

Odpowiedź

Napisałam program, który zgodnie z wymogami zadania

  1. generuje listę składającą się z 20 losowych liczb całkowitych z przedziału [0; 100) –  GenerujListę(n, lista_liczb, początek, koniec)
  2. następnie używając –  PrzefiltrujListę(n, lista_liczb) – filtruje wygenerowaną listę pozostawiając tylko liczby należące do ciągu

            [tex]\displaystyle {a_n = 3 \cdot n + 1 ,~~ n \in \mathbb Z}[/tex]

Dodatkowo w programie umieściłam funkcję  WygenerujListę(n, lista_liczb, początek, koniec),  która od razu po losowym wygenerowaniu liczby całkowitej sprawdza czy wygenerowana liczba należy do ciągu i dodaje do listy tylko liczby spełniające powyższy warunek.

Ponieważ użyłam tego samego ziarna (ang. seed) można zobaczyć, że początkowe elementy list są takie same. Początkowe dlatego, że funkcja  WygenerujListę()  od razu generuje listę 20 elementów należących do ciągu.

Powyższy program znajduje się w pierwszym załączniku, a wynik jego działania jest w drugim załączniku. Wynik działania – celowo! – jest zawsze taki sam dzięki ustaleniu wartości ziarna.

W trzecim załączniku umieściłam inną wersję funkcji filtrującej.

Wyjaśnienie

Tam gdzie użyłam  List()  można użyć  [].  Użyłam  List()  aby wyraźniej było widać, że utworzyłam nową pustą listę.

Ponieważ ten program to taki prezent gwiazdkowy jako ziarna (ang. seed)  użyłam daty tegorocznej Wigilii. :) Oczywiście, gdy już wszystko będzie działało należy datę całkowicie usunąć aby zostało tylko  random.seed().

Parametry podane w zadaniu 20, 0, 99 (99 bo podany jest przedział otwarty) występują jako zmienne aby było wiadomo co skąd się wzięło.

Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB