Temat 11: Generatory
Wstecz; Ostatnia modyfikacja: 11.04.2015
def squares(a,b):
for i in range(a,b):
print("before yield: " + str(i))
yield i*i
print("after yield: " + str(i))
for s in squares(1,6):
print(s)
Przykład: generator dla liczb Fibonacciego.
def fib():
x = 0
y = 1
i = 0
while True:
z = x+y
x = y
y = z
i += 1
yield(z)
Ćwiczenie 2: Wykorzystaj powyższy generator do wypisania wszystkich liczb Fibonacciego mniejszych niż 10000.
Ćwiczenie 3: napisz generator liczb pseudolosowych wykorzystując następujący wzór:
$$I_{j+1} = (a\cdot I_j + c)\ mod\ m$$
Więcej na temat tego generatora: wiki
oraz RANDU wiki.