π ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³: ΡΠ΄Π΅Π»Π°ΠΉ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΡΡΡΠ΅Π΅ π₯ ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³ - ΡΡΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ²Π΅ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ β ΡΠ°Π·Π½Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ: # Π Π΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ: fibonacci(30) = 73 ΠΌΡ π’ # ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ: fibonacci(200) = 0 Π½Ρ π Π Π°Π·Π½ΠΈΡΠ° Π² ~β ΡΠ°Π·! ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΠΉΡΠΈ ΡΡΠΆΠ΅Π»ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠ°Π²Π½ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄. β¨ ΠΠ»Π°Π²Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ: pytest-codspeed β ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ: @pytest.mark.benchmark def test_fib_bench(): result = fibonacci(30) assert result == 832040 π‘ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ β ΡΡΠ°Π²Π½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ: @pytest.mark.benchmark @pytest.mark.parametrize("n", [5, 10, 15, 20, 30]) def test_fib_parametrized(n): result = fibonacci(n) assert result > 0 Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ O(2^n) π ΠΠ±ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π° Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²Ρ
ΠΎΠ΄Π°ΠΌΠΈ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. π ΠΠΎΠ»Π½Π°Ρ ΡΡΠ°ΡΡΡ
π ΠΠ΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³: ΡΠ΄Π΅Π»Π°ΠΉ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΡΡΡΠ΅Π΅
18Β Π½ΠΎΡΠ±ΡΡΒ 202518Β Π½ΠΎΡΒ 2025
~1 ΠΌΠΈΠ½