π ΠΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠ΅ΠΊ Π² ΠΏΠΈΡΠΎΠ½Π΅: Π±Π΅ΡΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ Π³Π°ΠΉΠ΄ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² π
Π§ΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠ΅ΠΊ Π² ΠΏΠΈΡΠΎΠ½Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ sys ΠΈ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ setrecursionlimit(). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
import sys
sys.setrecursionlimit(10000)
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ Π² 10000. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠ΅ΠΊ Π² Python?
Π‘ΡΠ΅ΠΊ - ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ "ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΠΎΡΠ΅Π», ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΡΠ΅Π»" (LIFO). Π Python ΡΡΠ΅ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΡΠΈΠ°Π½ΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° Π² Python:
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ sys.setrecursionlimit()
ΠΠΎΠ΄ΡΠ»Ρ sys Π² Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ setrecursionlimit(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½Π° ΡΠ°Π²Π½Π° 1000, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠ΅Π΄Π΅Π». ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌΠΈ ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π³Π»ΡΠ±ΠΎΠΊΠ°Ρ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ RuntimeError.
import sys
sys.setrecursionlimit(2000)
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠΈ
ΠΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ. ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
print(factorial(10))
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π²Π½Π΅ ΡΡΠ΅ΠΊΠ°
ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°. ΠΠΌΠ΅ΡΡΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠ΅ΠΊΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π±Π΅Π· ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΠ΅ΠΊΠ°.
data = [] # ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ
for i in range(1, 1000001):
data.append(i)
print(data)
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π² Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΠ΅ΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ setrecursionlimit() ΠΌΠΎΠ΄ΡΠ»Ρ sys, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠΈΡΡ ΡΠ°Π·ΡΠΌΠ½ΡΠ΅ ΠΏΡΠ΅Π΄Π΅Π»Ρ. ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΠ°ΡΡ Π·Π°Π΄Π°ΡΠΈ.