π Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π§Π°ΡΡΡ 13: Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ, ΡΠ΅ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π»ΡΡΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python. Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΡΠ΅ΡΠΈΠΌ 10 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ.
Π Π΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΠ° ΡΠ΅Π±Ρ, ΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΅ΡΡΡ ΡΡΠ΄ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ΅ (Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅) ΡΠ΅ΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΡΡΠΎ ΡΡΠ°Π²ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π² ΡΡΠΏΠΈΠΊ. Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ (Π² ΡΠ°ΠΌΡΡ ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ) ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ².
Π‘ΡΠ΅ΠΊ β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°
Π΄Π°Π½Π½ΡΡ
LIFO (last in, first out): ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² Β«ΡΡΠΎΠΏΠΊΡΒ» , ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, β Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ.
Π Π°Π±ΠΎΡΡ ΡΡΠ΅ΠΊΠ° ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π² ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ append
ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ pop
:
stack = [] for i in range(1, 11): stack.append(f'{i}-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ') print(f'+ {i}-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½') for i in stack: print(i, end=" ") print('\n') for i in range(len(stack)): print('Π ΡΡΠ΅ΠΊΠ΅: ', end=" ") for i in stack: print(i, end=" ") print(f'\n{stack.pop()} ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ°')
ΠΡΠ²ΠΎΠ΄:
+ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 10-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 10-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 10-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 10-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ°
Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, β ΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΡΠ΅ΠΉΠΌ β ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΠ°ΠΌΡΡΠΈ, β Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ:
- ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ;
- Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ;
- Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°;
- ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΡΠΎΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ΅ΠΉΠΌΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅, ΠΈ ΡΠ΄Π°Π»ΡΡΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΊΠΎΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΅Π²Π΅ΡΠ½ΠΎΠ΅ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° (stack overflow). ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΡ StackOverflow Π½Π°Π·Π²Π°Π½ ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΡΠ΅ΡΡΡ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ΅ΠΊ Π² ΠΎΠΏΡΡΠ½ΡΡ ΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΠ° ΡΠ΅Π±Ρ, Π½ΠΎ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ:
def recursive(): recursive() recursive()
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° ΠΈ ΠΏΠΎΡΠ»Π΅ 1000 Π±Π΅ΡΠΏΠ»ΠΎΠ΄Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ:
shortest() RecursionError: maximum recursion depth exceeded
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ Π½Π° Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ, Π½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π½Π΅Π»ΡΠ·Ρ β Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ Π²Π½ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΈΡΠΎΠ³Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΌ:
from sys import getrecursionlimit from sys import setrecursionlimit print(getrecursionlimit()) # Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π»ΠΈΠΌΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ setrecursionlimit(2000) # ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π»ΠΈΠΌΠΈΡ Π΄ΠΎ 2000 Π²ΡΠ·ΠΎΠ²ΠΎΠ² print(getrecursionlimit())# Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΡΠΉ Π»ΠΈΠΌΠΈΡ #ΠΡΠ²ΠΎΠ΄: 1000 2000
Π§ΡΠΎΠ±Ρ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½ΡΠ»ΡΡ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π΄Π²Π° ΡΠ»ΡΡΠ°Ρ:
- ΠΡΠ°Π½ΠΈΡΠ½ΡΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
- Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ΅Π±Ρ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΠ΅Π½Ρ ΠΎΠ±Π° ΡΠ»ΡΡΠ°Ρ:
def greetings(st): print(st) if len(st) == 0: # ΠΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return else: # Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ greetings(st[:-1]) greetings('Hello, world!')
ΠΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π»ΠΈΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ 0:
Hello, world! Hello, world Hello, worl Hello, wor Hello, wo Hello, w Hello, Hello, Hello Hell Hel He H
ΠΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΎ ΠΈ Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ, ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΈ ΡΡΠ°Π·Ρ:
def greetings(st): print(st) if len(st) > 0: greetings(st[:-1]) greetings('Hello world!')
Π Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ, ΠΈ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π² ΡΡΠ½ΠΊΡΠΈΡ greetings() ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ, Π΄Π»ΠΈΠ½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΡΠ°Π²Π½ΠΎΠΉ 0.
Π‘ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: ΠΈΡΠ΅ΡΠ°ΡΠΈΡ vs ΡΠ΅ΠΊΡΡΡΠΈΡ
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΠ±ΡΡΠ½ΡΡ
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ
ΡΡΠΎΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ Π±Π΅Π· ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΎΡ
ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π²ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ fib_recursive(n)
ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΉ fib_iter(n)
, ΡΠ΅ΡΠ°ΡΡΠΈΡ
ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π·Π°Π΄Π°ΡΡ β
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ:
from timeit import timeit def fib_iter(n): if n == 1: return [1] if n == 2: return [1, 1] fibs = [1, 1] for _ in range(2, n): fibs.append(fibs[-1] + fibs[-2]) return fibs setup_code_iter = 'from __main__ import fib_iter' stmt_iter = 'fib_iter(15)' print('ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ: ', timeit(setup=setup_code_iter, stmt=stmt_iter, number=20000)) def fib_recursive(n): if(n <= 1): return n else: return(fib_recursive(n-1) + fib_recursive(n-2)) setup_code_rec = 'from __main__ import fib_recursive' stmt_rec = 'fib_recursive(15)' print('ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ: ', timeit(setup=setup_code_rec, stmt=stmt_rec, number=20000))
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π»Ρ n = 15:
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ: 0.034556168131530285 ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ: 4.069674882106483
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΊΠ» for. Π¦ΠΈΠΊΠ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ (ΠΏΠ΅ΡΠ΅Π±ΠΎΡ), ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΈ Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΎΠ² ΡΠ°ΡΡΠ΅Ρ Π»Π°Π²ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ:
ΠΡΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. ΠΡΠ΅Π³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ (Π»ΠΈΠ±ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΊΠ°), ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠΈΠΊΠ»Π° for ΠΈΠ»ΠΈ while Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
ΠΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΡ
ΠΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ, Π΅ΡΡΡ
ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ
@lru_cache()
ΠΌΠΎΠ΄ΡΠ»Ρ functools. Π‘ΡΠ°Π²Π½ΠΈΠΌ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΎΠ»ΠΈΠΌΠΏΠΈΠ°Π΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°Π΄Π°ΡΠ°: Π»Π΅ΡΠ΅Π½ΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΊΡΠ±ΠΈΠΊΠΎΠ². Π ΡΡΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΠΊΡΠ±ΠΈΠΊΠΎΠ², ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ. ΠΠ°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π»Π΅ΡΠ΅Π½ΠΎΠΊ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΈΠ· n ΠΊΡΠ±ΠΈΠΊΠΎΠ².
Π ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅ Python Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠ³ΠΈΠΌ ΠΎΠ»ΠΈΠΌΠΏΠΈΠ°Π΄Π½ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ. ΠΠ»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ, ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΌ Π²ΡΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ. Π‘ΡΠ°Π²Π½ΠΈΠΌ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Ρ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ Π±Π΅Π·:
from timeit import timeit def kol_les_no_mem(n, k): if n == 0: return 1 ans = 0 for i in range(k + 1, n + 1): ans += kol_les_no_mem(n - i, i) return ans setup_code_no_mem = 'from __main__ import kol_les_no_mem' stmt_no_mem = 'kol_les_no_mem(25, 0)' print('ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π΅Π· ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠΈ: ', timeit(setup=setup_code_no_mem, stmt=stmt_no_mem, number=20000)) setup_code_mem = ''' import functools @functools.lru_cache(maxsize=None) def kol_les_mem(n, k): if n == 0: return 1 ans = 0 for i in range(k + 1, n + 1): ans += kol_les_mem(n - i, i) return ans ''' stmt_mem = 'kol_les_mem(25, 0)' print('ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠ΅ΠΉ: ', timeit(setup=setup_code_mem, stmt=stmt_mem, number=20000))
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ΅ΡΡΠ°:
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π΅Π· ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠΈ: 9.019254605285823 ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠ΅ΠΉ: 0.0023915572091937065
ΠΡΠ°ΠΊΡΠΈΠΊΠ°
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 1
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»Π° ΡΠΈΡΠ»Π°. Π Π΅ΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ: ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ 5! Π€Π°ΠΊΡΠΎΡΠΈΠ°Π» 5 ΡΠ°Π²Π΅Π½: 5 Ρ 4 Ρ 3 Ρ 2 Ρ 1. Π€Π°ΠΊΡΠΎΡΠΈΠ°Π» 4: 4 Ρ 3 Ρ 2 Ρ 1, ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π» 3: 3 Ρ 2 Ρ 1, ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π» 2: 2 Ρ 1, ΠΈ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π» 1 ΡΠ°Π²Π΅Π½ 1. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ 5! = 5 x 4!, 4! = 4 x 3!, 3! = 3 x 2! ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ Π΄ΠΎ Π³ΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ 1! = 1, ΡΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π» Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ.
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
12
ΠΡΠ²ΠΎΠ΄:
479001600
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅:
def fact_iter(n): factorial = 1 for i in range(1, n + 1): factorial *= i return factorial print(fact_iter(int(input())))
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅:
def fact_recursive(n): if n == 1: # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return 1 else: # ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return n * fact_recursive(n - 1) print(fact_recursive(int(input())))
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 2
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° n Π² ΡΡΠ΅ΠΏΠ΅Π½Ρ m. Π Π΅ΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ: ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Π΅ΡΡΠΈ ΡΠΈΡΠ»ΠΎ 5 Π² ΡΡΠ΅ΠΏΠ΅Π½Ρ 6. Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·Π±ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ 5 ** 6 Π² Π²ΠΈΠ΄Π΅ (5 ** 3) ** 2. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΡΠ»ΠΈ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π½Π΅ΡΠ΅ΡΠ½Π°Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ: (n ** m) x n = n ** (m + 1). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π²Π²Π΅ΡΡΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ½ΠΎΠ΅, ΡΠ°ΠΊ ΠΈ Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ m, Π² ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΄Π²Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΠ»ΡΡΠ°Ρ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³ΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ: n ** 1 = n.
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
12 8
ΠΡΠ²ΠΎΠ΄:
429981696
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅:
def pow_iter(n, m): res = 1 for i in range(m): res *= n return res n, m = int(input()), int(input()) print(pow_iter(n, m))
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅:
def pow_recursive(n, m): if m == 1: # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return n elif m % 2 == 0: # ΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ res = pow_recursive(n, m // 2) return res * res else: # Π½Π΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ res = pow_recursive(n, m // 2) return res * res * n n, m = int(input()), int(input()) print(pow_recursive(n, m))
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 3
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ n-Π³ΠΎ Π³Π°ΡΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. Π Π΅ΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
7
ΠΡΠ²ΠΎΠ΄:
2.5928571428571425
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅:
def nth_harmonic_iter(n): harmonic = 1.0 for i in range(2, n + 1): harmonic += 1 / i return harmonic print(round(nth_harmonic_iter(int(input())), 5))
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅:
def nth_harmonic_rec(n): if n == 1: #Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return 1 else: #ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return 1 / n + nth_harmonic_rec(n - 1) print(round(nth_harmonic_rec(int(input())), 5))
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 4
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ n ΠΏΠ΅ΡΠ²ΡΡ ΡΠ»Π΅Π½ΠΎΠ² Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠΈ:
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
9
ΠΡΠ²ΠΎΠ΄:
1.99609375
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅:
def geometric_iter(n): res = 0 for i in range(n): res += 1 / 2 ** i return res print(geometric_iter(int(input())))
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅:
def geometric_rec(n): if n < 0: # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return 0 else: # ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return 1 / 2 ** n + geometric_rec(n - 1) print(geometric_rec(int(input())))
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π·Π½Π°ΠΌΠ΅Π½Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠ°Π²Π΅Π½ 1, Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΡΠΌΡΠ»Ρ ΡΡΠΌΠΌΡ n ΠΏΠ΅ΡΠ²ΡΡ ΡΠ»Π΅Π½ΠΎΠ² Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠΈ:
b, q, n = 1, 0.5, int(input()) print(b * (1 - q ** n) / (1 - q))
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 5
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠΈΡΠ΅Π» a ΠΈ b.
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
45 123
ΠΡΠ²ΠΎΠ΄:
3
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅:
def gcd_recursive(a, b): min_num = min(a, b) max_num = max(a, b) if min_num == 0: #Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠΈΡΠ΅Π» ΡΠ°Π²Π½ΠΎ 0 return max_num elif min_num == 1: #Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠΈΡΠ΅Π» ΡΠ°Π²Π½ΠΎ 1 return 1 else: #ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠΈΡΠ΅Π» Π½Π΅ ΡΠ°Π²Π½ΠΎ Π½ΠΈ 1, Π½ΠΈ 0 return gcd_recursive(min_num, max_num % min_num) a, b = int(input()), int(input()) print(gcd_recursive(a, b))
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅:
def gcd_iter(a, b): while a != b: if a > b: a -= b else: b -= a return b a, b = int(input()), int(input()) print(gcd_iter(a, b))
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ math.gcd():
import math a, b = int(input()), int(input()) print(math.gcd(a, b))
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 6
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ n + (n β 2) + (n β 4)... (n β x =< 0), Π³Π΄Π΅ n β Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
120
ΠΡΠ²ΠΎΠ΄:
3660
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅:
def sum_iter(n): summa = 0 k = 0 while n - k > 0: summa += n - k k += 2 return summa print(sum_iter(int(input())))
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅:
def sum_recursive(n): if n < 1: # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return 0 else: # ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return n + sum_recursive(n - 2) print(sum_recursive(int(input())))
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 7
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΡΠΎΠΊΠ° ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
ΠΡΡΠ° Π½Π° ΠΏΠΎΠ»ΠΊΠ΅ ΠΊΠ»ΠΎΠΏΠ° Π½Π°ΡΡΠ»
ΠΡΠ²ΠΎΠ΄:
True
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
def palindrome(my_str): if len(my_str) == 0 or len(my_str) == 1: # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ return True else: # ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ head = my_str[0] middle = my_str[1:-1] end = my_str[-1] return head == end and palindrome(middle) st = [i.lower() for i in input() if i.isalpha()] print((palindrome(st)))
ΠΠ΅Π· ΡΠ΅ΠΊΡΡΡΠΈΠΈ Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΡΠ°ΠΊ:
st = [i.lower() for i in input() if i.isalpha()] print(st == st[::-1])
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 8
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠΌΠ΅Π½ΠΈ, ΡΠΎΡΡΠΎΡΡΠ΅Π³ΠΎ ΡΠΎΠ²Π½ΠΎ ΠΈΠ· 9 Π±ΡΠΊΠ². Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠΎΠ΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ , ΠΈΠΌΠ΅Π΅Ρ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΠΎΡΠΌΡ:
ΠΡΠ²ΠΎΠ΄:
ΠΠΎΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ·Π΅Π» ΠΠ½Π½Π°... ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΠΌΡ ΠΠ½Π½Π° ΠΈΠ· 9 Π±ΡΠΊΠ²... ΠΠΎΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ·Π΅Π» ΠΠ³ΠΎΡ... ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΠΌΡ ΠΠ³ΠΎΡ ΠΈΠ· 9 Π±ΡΠΊΠ²... ΠΠΎΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ·Π΅Π» ΠΠ°ΡΠΈΡ... ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΠΌΡ ΠΠ°ΡΠΈΡ ΠΈΠ· 9 Π±ΡΠΊΠ²... ΠΠΎΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ·Π΅Π» Π‘Π²Π΅ΡΠ»Π°Π½Π°... ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΠΌΡ Π‘Π²Π΅ΡΠ»Π°Π½Π° ΠΈΠ· 9 Π±ΡΠΊΠ²... ΠΠΎΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ·Π΅Π» ΠΠ½Π³Π°... ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΠΌΡ ΠΠ½Π³Π° ΠΈΠ· 9 Π±ΡΠΊΠ²... ΠΠΎΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ·Π΅Π» ΠΠ»ΠΈΠ·Π°Π²Π΅ΡΠ°... ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΠΌΡ ΠΠ»ΠΈΠ·Π°Π²Π΅ΡΠ° ΠΈΠ· 9 Π±ΡΠΊΠ²... ΠΠΌΡ ΠΈΠ· 9 Π±ΡΠΊΠ²: ΠΠ»ΠΈΠ·Π°Π²Π΅ΡΠ°
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
root = {'name': 'ΠΠ½Π½Π°', 'children': [{'name': 'ΠΠ³ΠΎΡ', 'children': [{'name': 'ΠΠ°ΡΠΈΡ', 'children': []}]}, {'name': 'Π‘Π²Π΅ΡΠ»Π°Π½Π°', 'children': [{'name': 'ΠΠ½Π³Π°', 'children': [{'name': 'ΠΠ»ΠΈΠ·Π°Π²Π΅ΡΠ°', 'children': []}, {'name': 'ΠΠ½ΡΠΎΠ½', 'children': []}]}, {'name': 'ΠΠ°ΡΠΈΠ½Π°', 'children': []}]}]} def find_name(node): print(f"ΠΠΎΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ·Π΅Π» {node['name']}...") print(f"ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΠΌΡ {node['name']} ΠΈΠ· 9 Π±ΡΠΊΠ²...") if len(node['name']) == 9: return node['name'] # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ if len(node['children']) > 0: # ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ for child in node['children']: returnValue = find_name(child) if returnValue != 'Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ': return returnValue return 'Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ' # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ - ΠΈΠΌΠ΅Π½ ΠΈΠ· 9 Π±ΡΠΊΠ² Π½Π΅Ρ print(f"ΠΠΌΡ ΠΈΠ· 9 Π±ΡΠΊΠ²: {find_name(root)}")
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π±Π΅Π· ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΊΡΡ Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠΠ:
class Node: def __init__(self, data=None, left=None, right=None): self.data = data self.left = left self.right = right def traverse(root): if root is None: return traverse(root.left) if len(root.data) == 9: print(f'ΠΠΌΡ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ: {root.data}') return traverse(root.right) if len(root.data) == 9: print(f'ΠΠΌΡ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ: {root.data}') return if __name__ == '__main__': root = Node('ΠΠ½Π½Π°') root.left = Node('ΠΠ³ΠΎΡ') root.right = Node('Π‘Π²Π΅ΡΠ»Π°Π½Π°') root.left.left = Node('ΠΠ°ΡΠΈΡ') root.right.left = Node('ΠΠ½Π³Π°') root.right.right = Node('ΠΠ°ΡΠΈΠ½Π°') root.right.left.left = Node('ΠΠ»ΠΈΠ·Π°Π²Π΅ΡΠ°') root.right.left.right = Node('ΠΠ½ΡΠΎΠ½') traverse(root)
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 9
ΠΠΌΠ΅Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ:
sp = [[[5, 7, 2], [4, 9, 5]], [[2, 5, 4]], [[3, 2, 1], [[5], [9, 5]]], [4, 3, 1, 2], [[4, 7, 2], [6, 4]], [[[4, 1, 6], [3, 8]], [4, 5]], [9, 1], [3, 1], [[5, 6], [[4, 2, 1], [2, 5], [[6, 8, 2, 3, 4]]]], [5, 3, 2], [2, [1], 4], [2, 5, [4, 3, 1], 6, 7, [9, 0, 5, 2, 4]], [7, 3, [4]], [4, 2, [[[5, 6, 7], 5, 7]], 1], [3, 4, 6, [6, 4, 5]], ]
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ.
ΠΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
[5, 7, 2, 4, 9, 5, 2, 5, 4, 3, 2, 1, 5, 9, 5, 4, 3, 1, 2, 4, 7, 2, 6, 4, 4, 1, 6, 3, 8, 4, 5, 9, 1, 3, 1, 5, 6, 4, 2, 1, 2, 5, 6, 8, 2, 3, 4, 5, 3, 2, 2, 1, 4, 2, 5, 4, 3, 1, 6, 7, 9, 0, 5, 2, 4, 7, 3, 4, 4, 2, 5, 6, 7, 5, 7, 1, 3, 4, 6, 6, 4, 5]
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅:
def flat_list_recur(lst): if lst == []: return lst if isinstance(lst[0], list): return flat_list_recur(lst[0]) + flat_list_recur(lst[1:]) return lst[:1] + flat_list_recur(lst[1:]) sp = [[[5, 7, 2], [4, 9, 5]], [[2, 5, 4]], [[3, 2, 1], [[5], [9, 5]]], [4, 3, 1, 2], [[4, 7, 2], [6, 4]], [[[4, 1, 6], [3, 8]], [4, 5]], [9, 1], [3, 1], [[5, 6], [[4, 2, 1], [2, 5], [[6, 8, 2, 3, 4]]]], [5, 3, 2], [2, [1], 4], [2, 5, [4, 3, 1], 6, 7, [9, 0, 5, 2, 4]], [7, 3, [4]], [4, 2, [[[5, 6, 7], 5, 7]], 1], [3, 4, 6, [6, 4, 5]], ] print(flat_list_recur(sp))
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅:
def flat_list_iter(lst): result = [] stack = [lst] while stack: current = stack.pop(-1) if isinstance(current, list): stack.extend(current) else: result.append(current) result.reverse() return result sp = [[[5, 7, 2], [4, 9, 5]], [[2, 5, 4]], [[3, 2, 1], [[5], [9, 5]]], [4, 3, 1, 2], [[4, 7, 2], [6, 4]], [[[4, 1, 6], [3, 8]], [4, 5]], [9, 1], [3, 1], [[5, 6], [[4, 2, 1], [2, 5], [[6, 8, 2, 3, 4]]]], [5, 3, 2], [2, [1], 4], [2, 5, [4, 3, 1], 6, 7, [9, 0, 5, 2, 4]], [7, 3, [4]], [4, 2, [[[5, 6, 7], 5, 7]], 1], [3, 4, 6, [6, 4, 5]], ] print(flat_list_iter(sp))
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 10
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ. Π§ΠΈΡΠ»ΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ randrange(2000), Π² ΡΠΏΠΈΡΠΊΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠΈΡΠ»Π° ΠΎΡ 1 Π΄ΠΎ 1000, Ρ.Π΅. Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅.
ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°:
Π§ΠΈΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ: 787
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅:
from random import randrange def binary_recursive(lst, start, end, num): if end >= start: mid = (end + start) // 2 if lst[mid] == num: # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ - ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ return mid elif lst[mid] > num: # ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ - ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ»Π΅Π²Π° return binary_recursive(lst, start, mid - 1, num) else: # ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ - ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΡΠ°Π²Π° return binary_recursive(lst, mid + 1, end, num) else: # Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ - ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ return 'Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ' sp = [i for i in range(1001)] n = randrange(2000) result = binary_recursive(sp, 0, len(sp)-1, n) if result != 'Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ': print(f'Π§ΠΈΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ: {result}') else: print('Π’Π°ΠΊΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π½Π΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅')
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 β ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅:
from random import randrange def binary_iter(lst, num): start, end, mid = 0, len(lst) - 1, 0 while start <= end: mid = (end + start) // 2 if lst[mid] < num: start = mid + 1 elif lst[mid] > num: end = mid - 1 else: return mid return 'Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ' sp = [i for i in range(1001)] n = randrange(2000) result = binary_iter(sp, n) if result != 'Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ': print(f'Π§ΠΈΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ: {result}') else: print('Π’Π°ΠΊΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π½Π΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅')
ΠΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡΠΎΠ³ΠΈ
Π Π΅ΠΊΡΡΡΠΈΡ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ :
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ .
- ΠΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°).
- ΠΠ»ΡΠ±ΠΈΠ½Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
ΡΠ°Π·ΡΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°.
ΠΠΎ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π»ΠΈΠ±ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΈ ΡΡΠ΅ΠΊ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ
- ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, ΠΎΠ½Π»Π°ΠΉΠ½ IDE
- ΠΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Python Ρ Π½ΡΠ»Ρ β ΠΊΠ½ΠΈΠ³ΠΈ, ΡΠ°ΠΉΡΡ, ΠΊΠ°Π½Π°Π»Ρ ΠΈ ΠΊΡΡΡΡ
- Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ : ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
- ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
- ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΏΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ
- ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
- ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ
- ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ
- ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠΈΠΊΠ»Π° for
- Π£ΡΠ»ΠΎΠ²Π½ΡΠΉ ΡΠΈΠΊΠ» while
- Π€ΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
- ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
- Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
- Π€ΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ
- ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ
- Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΠΡΠ½ΠΎΠ²Ρ ΡΠΊΡΠ°ΠΏΠΈΠ½Π³Π° ΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π°
- ΠΡΠ½ΠΎΠ²Ρ ΠΠΠ: ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΡΠ½ΠΎΠ²Ρ ΠΠΠ β Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
- ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Tkinter
- ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ³Ρ Π½Π° Pygame
- ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ SQLite
- ΠΡΠ½ΠΎΠ²Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Flask
- ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ NumPy
- ΠΡΠ½ΠΎΠ²Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ
Ρ Pandas