π ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Π² Python: ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π³Π°ΠΉΠ΄ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
def fibonacci(n):
fib_list = [0, 1]
while len(fib_list) < n:
fib_list.append(fib_list[-1] + fib_list[-2])
return fib_list
n = int(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²: "))
result = fibonacci(n)
print(result)
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ fibonacci, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ n - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ. ΠΠ½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΏΠΈΡΠΎΠΊ fib_list ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ [0, 1], ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π² ΡΠΈΠΊΠ»Π΅ while Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠΊΠ° Π΄Π»ΠΈΠ½Π° ΡΠΏΠΈΡΠΊΠ° Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ n. ΠΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΌΠΌΠ° Π΄Π²ΡΡ
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄, ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Π² Python
Π‘ΠΏΠΈΡΠΎΠΊ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ - ΡΡΠΎ ΡΠΈΡΠ»ΠΎΠ²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΌΠΌΠΎΠΉ Π΄Π²ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠΈΡΠ΅Π». ΠΠΎΡ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π°
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
def fib_list(n):
fib_sequence = [0, 1] # ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
while len(fib_sequence) < n: # ΠΠΎΠΊΠ° Π΄Π»ΠΈΠ½Π° ΡΠΏΠΈΡΠΊΠ° ΠΌΠ΅Π½ΡΡΠ΅ n
next_number = fib_sequence[-1] + fib_sequence[-2] # Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π²Π½ΠΎ ΡΡΠΌΠΌΠ΅ Π΄Π²ΡΡ
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΠΈΡΠ΅Π»
fib_sequence.append(next_number)
return fib_sequence
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΡΠ΅Π» Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ:
result = fib_list(10) # ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ 10 ΡΠΈΡΠ»Π°ΠΌΠΈ
print(result)
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ 10 ΡΠΈΡΠ»Π°ΠΌΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
def fib_number(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fib_number(n-1) + fib_number(n-2)
def fib_list(n):
return [fib_number(i) for i in range(n)]
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ fib_list Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΈΡΠ΅Π» Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ:
result = fib_list(10) # ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ 10 ΡΠΈΡΠ»Π°ΠΌΠΈ
print(result)
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ 10 ΡΠΈΡΠ»Π°ΠΌΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
def fib_generator(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
result = list(fib_generator(10)) # ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ 10 ΡΠΈΡΠ»Π°ΠΌΠΈ
print(result)
ΠΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ fib_generator, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΡΠ»Ρ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ list.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Π² Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ. Π£Π΄Π°ΡΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ!