ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΈΠ³Ρ€Π° Β«ΠΏΡΡ‚Π½Π°ΡˆΠΊΠΈΒ»

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠΠ΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ сущСствованиС Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… (входящих) Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π Π°Π±ΠΎΡ‚Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° происходит ΠΏΡƒΡ‚Π΅ΠΌ выполнСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтарных дСйствий. Π­Ρ‚ΠΈ дСйствия Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ шагами, Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ алгоритмичСским процСссом. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ проявляСтся свойство… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΈΠ³Ρ€Π° Β«ΠΏΡΡ‚Π½Π°ΡˆΠΊΠΈΒ» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠžΠ”Π•Π Π–ΠΠΠ˜Π• ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ПБ

1. ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ

1.1 БвСдСния ΠΎΠ± Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ…

1.2 БвСдСния ΠΎΠ± ΠΈΠ³Ρ€Π΅ «ΠΏΡΡ‚Π½Π°ΡˆΠΊΠΈ»

2. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ описаниС Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, А ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘ ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ПБ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈΠ³Ρ€Ρƒ «ΠΏΡΡ‚Π½Π°ΡˆΠΊΠΈ».

1. ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ

1.1 БвСдСния ΠΎΠ± Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… Алгоримтм, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΡƒΡ‡Ρ‘Π½ΠΎΠ³ΠΎ аль-Π₯ΠΎΡ€Π΅Π·ΠΌΠΈ (пСрс. ??? [al-Khwarazmi]) — Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструкций, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… порядок дСйствий исполнитСля для достиТСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ врСмя. Π’ ΡΡ‚Π°Ρ€ΠΎΠΉ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠ΅ вмСсто слова «ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ» использовалось слово «ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ», Π½ΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² слово «ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ» стали Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΌ словом «ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ». Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ инструкций Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ зависима ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… инструкций ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструкции Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ строго послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ инструкций, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ зависят. НСзависимыС инструкции ΠΈΠ»ΠΈ инструкции, ΡΡ‚Π°Π²ΡˆΠΈΠ΅ нСзависимыми ΠΈΠ·-Π·Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ инструкций, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ зависят, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ссли это ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ процСссор ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма.

Π Π°Π½Π΅Π΅ часто писали «Π°Π»Π³ΠΎΡ€ΠΈΡ„ΠΌ», сСйчас Ρ‚Π°ΠΊΠΎΠ΅ написаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΠΌΠ΅Π΅Ρ‚ мСсто (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ„ΠΌ ΠœΠ°Ρ€ΠΊΠΎΠ²Π°).

Часто Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ исполнитСля выступаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ (ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Ρ‚ΠΎΠΊΠ°Ρ€Π½Ρ‹ΠΉ станок, швСйная машина), Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ относится ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, Ρ‚Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‘Ρ‚ΠΊΠΎ описанный Ρ€Π΅Ρ†Π΅ΠΏΡ‚ приготовлСния блюда Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС исполнитСлСм являСтся Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° относится ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ, основным, базисным понятиям ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы алгоритмичСского Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° (арифмСтичСскиС дСйствия Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ наибольшСго ΠΎΠ±Ρ‰Π΅Π³ΠΎ дСлитСля Π΄Π²ΡƒΡ… чисСл ΠΈ Ρ‚. Π΄.) извСстны чСловСчСству с Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ дрСвности. Однако, Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ понятиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ лишь Π² Π½Π°Ρ‡Π°Π»Π΅ XX Π²Π΅ΠΊΠ°.

Частичная формализация понятия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π°Ρ‡Π°Π»Π°ΡΡŒ с ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (Π½Π΅ΠΌ. Entscheidungsproblem), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ сформулировал Π”Π°Π²ΠΈΠ΄ Π“ΠΈΠ»ΡŒΠ±Π΅Ρ€Ρ‚ Π² 1928 Π³ΠΎΠ΄Ρƒ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ этапы Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Ρ‹Π»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для опрСдСлСния эффСктивных вычислСний ΠΈΠ»ΠΈ «ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°»; срСди Ρ‚Π°ΠΊΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ — рСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ГСдСля — Π­Ρ€Π±Ρ€Π°Π½Π° — Клини 1930, 1934 ΠΈ 1935 Π³Π³., ?-исчислСниС Алонзо Π§Ρ‘Ρ€Ρ‡Π° 1936 Π³., «Π€ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° 1» Эмиля ΠŸΠΎΡΡ‚Π° 1936 Π³ΠΎΠ΄Π° ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π° Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°. Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ являСтся базисным понятиСм ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ качСствСнно Π½ΠΎΠ²ΠΎΠ΅ понятиС ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ приблиТСния ΠΊ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Ρƒ. Π’ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΌΠΈΡ€Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ составляСт основу образования Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΏΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΡŽ. На ΠΎΡΠ½ΠΎΠ²Π΅ сходства Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сфСр Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Ρ‹Π»Π° сформирована концСпция (тСория) экспСртных систСм.

ΠΠ΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ сущСствованиС Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… (входящих) Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π Π°Π±ΠΎΡ‚Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° происходит ΠΏΡƒΡ‚Π΅ΠΌ выполнСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтарных дСйствий. Π­Ρ‚ΠΈ дСйствия Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ шагами, Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ алгоритмичСским процСссом. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ проявляСтся свойство дискрСтности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π’Π°ΠΆΠ½Ρ‹ΠΌ свойством Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² являСтся ΠΌΠ°ΡΡΠΎΠ²ΠΎΡΡ‚ΡŒ, ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΈΠ·Π²Π°Π½ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ класс ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. НСобходимым условиСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ удовлСтворяСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, являСтся Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ, ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° происходит ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ для ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π½Π°Π±ΠΎΡ€ΠΎΠΌ допустимых Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊ Π½Π΅Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡ‹ΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΡ‚ановится ΠΈΠ»ΠΈ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π² Ρ‚ΡƒΠΏΠΈΠΊΠΎΠ²ΠΎΠ΅ состояниС (зависаниС), ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΉΡ‚ΠΈ.

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ тСорСтичСскиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΠ΅ развития Ρ„ΠΈΠ·ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ поставили Π½Π° ΠΏΠΎΠ²Π΅ΡΡ‚ΠΊΡƒ дня Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ понятия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ уточнСния понятия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ Π΅Π³ΠΎ исслСдования осущСствляли Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ XX Π²Π΅ΠΊΠ° Алан Π’ΡŒΡŽΡ€ΠΈΠ½Π³, Эмиль ΠŸΠΎΡΡ‚, Π–Π°ΠΊ Π­Ρ€Π±Ρ€Π°Π½, ΠšΡƒΡ€Ρ‚ Π“Π΅Π΄Π΅Π»ΡŒ, АндрСй ΠœΠ°Ρ€ΠΊΠΎΠ², Алонзо Π§Ρ‘Ρ€Ρ‡. Π‘Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ нСсколько ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ понятия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Π½ΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΈ Π±Ρ‹Π»ΠΎ выяснСно, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ понятиС (см. Π’Сзис Π§Ρ‘Ρ€Ρ‡Π° — Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°).

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ свойства Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ опрСдСлСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² ΡΠ²Π½ΠΎΠΉ ΠΈΠ»ΠΈ нСявной Ρ„ΠΎΡ€ΠΌΠ΅ содСрТат ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ряд ΠΎΠ±Ρ‰ΠΈΡ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ:

Π”ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ процСсс Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… простых шагов. ΠŸΡ€ΠΈ этом для выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° трСбуСтся ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΎΡ‚Ρ€Π΅Π·ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ исходных Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ осущСствляСтся Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ дискрСтно.

Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ) — Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ опрСдСляСтся состояниСм систСмы. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (ΠΎΡ‚Π²Π΅Ρ‚) для ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ исходных Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠ΅ Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ вСроятностныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг Ρ€Π°Π±ΠΎΡ‚Ρ‹ зависит ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния систСмы ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ случайного числа. Однако ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайных чисСл Π² ΡΠΏΠΈΡΠΎΠΊ «ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…», вСроятностный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ становится ΠΏΠΎΠ΄Π²ΠΈΠ΄ΠΎΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ.

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для исполнитСля Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΠΌΡƒ (ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŽ) доступны, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Π² Π΅Π³ΠΎ систСму ΠΊΠΎΠΌΠ°Π½Π΄.

Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌΠΎΡΡ‚ΡŒ (ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ) — ΠΏΡ€ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… исходных Π΄Π°Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ число шагов. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, вСроятностный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π½ΠΎ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ этого Ρ€Π°Π²Π½Π° 0.

ΠœΠ°ΡΡΠΎΠ²ΠΎΡΡ‚ΡŒ (ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ) — Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€Π°ΠΌ исходных Π΄Π°Π½Π½Ρ‹Ρ….

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ — Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ.

Алгоритм содСрТит ошибки, Ссли ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π»ΠΈΠ±ΠΎ Π½Π΅ Π΄Π°Ρ‘Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² вовсС.

Алгоритм Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ошибок, Ссли ΠΎΠ½ Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ для Π»ΡŽΠ±Ρ‹Ρ… допустимых исходных Π΄Π°Π½Π½Ρ‹Ρ….

НаличиС исходных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Алгоритм — это Ρ‚ΠΎΡ‡Π½ΠΎ опрСдСлённая инструкция, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ примСняя ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΊ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мноТСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², допустимых Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ исходных Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ дСлСния вСщСствСнных чисСл Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ, Π° Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ. Алгоритм слуТит, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса Π·Π°Π΄Π°Ρ‡. Π’Π°ΠΊ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ слоТСния ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ Π»ΡŽΠ±ΠΎΠΉ ΠΏΠ°Ρ€Π΅ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл. Π’ ΡΡ‚ΠΎΠΌ выраТаСтся Π΅Π³ΠΎ свойство массовости, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ возмоТности ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для любой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ алгоритмизация — процСсс систСматичСского составлСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнных ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Алгоритмизация считаСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ этапом Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ Π½Π° Π­Π’Πœ. ИмСнно для ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½Ρ‹ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡΠΎΠ²ΠΎΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнных Π·Π°Π΄Π°Ρ‡. Алгоритм — это понятноС ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдписаниС, ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° Π΄ΠΎΡΡ‚ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΈ.

1.2 БвСдСния ΠΎΠ± ΠΈΠ³Ρ€Π΅ «ΠΏΡΡ‚Π½Π°ΡˆΠΊΠΈ»

ΠŸΡΡ‚Π½Π°ΠΌΡˆΠΊΠΈ — популярная Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠ°, придуманная Π² 1878 Π³ΠΎΠ΄Ρƒ НоСм ЧСпмэном. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ собой Π½Π°Π±ΠΎΡ€ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΡΡ‚ΡΡˆΠ΅ΠΊ с Π½Π°Π½Π΅ΡΡ‘Π½Π½Ρ‹ΠΌΠΈ числами, Π·Π°ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ. Π”Π»ΠΈΠ½Π° стороны ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π° большС Π΄Π»ΠΈΠ½Ρ‹ стороны ΠΊΠΎΡΡ‚ΡΡˆΠ΅ΠΊ для Π½Π°Π±ΠΎΡ€Π° ΠΈΠ· 15 элСмСнтов, соотвСтствСнно Π² ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ΅ остаётся Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ΄Π½ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅. ЦСль ΠΈΠ³Ρ€Ρ‹ — пСрСмСщая ΠΊΠΎΡΡ‚ΡΡˆΠΊΠΈ ΠΏΠΎ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ΅ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ упорядочивания ΠΈΡ… ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌ, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сдСлав ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ.

Π‘ΡƒΡ‚ΡŒ самой ΠΈΠ³Ρ€Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

— Π˜Π³Ρ€ΠΎΠΊ Π½Π° ΡΠΊΡ€Π°Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·Π±ΠΈΡ‚ΠΎ Π½Π° 16 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ. Π’ ΠΏΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈ ΠΈΠ· Π½ΠΈΡ… располоТСны Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ†ΠΈΡ„Ρ€Ρ‹, Π² ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎΠΌ порядкС ΠΎΡ‚ 1 Π΄ΠΎ 15 ΠΈ ΠΎΠ΄Π½Π° пустая.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠ΅ Ρ‚Π°Π±Π»ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 1:

Π’Π°Π±Π»ΠΈΡ†Π° 1 — ΠžΠ±Ρ€Π°Π·Π΅Ρ†

Π˜Π³Ρ€ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ с Ρ†ΠΈΡ„Ρ€ΠΎΠΉ Π½Π° ΠΏΡƒΡΡ‚ΠΎΠ΅ мСсто.

— Π’Π°ΠΊ происходит Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Ρ‹ΡΡ‚Ρ€ΠΎΠΈΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Ρ†ΠΈΡ„Ρ€ (Π’Π°Π±Π»ΠΈΡ†Π° 2), ΠΈ Π»ΠΈΡˆΡŒ послС этого ΠΈΠ³Ρ€ΠΎΠΊ считаСтся ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»Π΅ΠΌ.

Π’Π°Π±Π»ΠΈΡ†Π° 2 — ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΎ

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ описаниС.

ΠŸΡΡ‚Π½Π°ΡˆΠΊΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ для модСлирования эвристичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· количСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠΈΡΠΊ манхСттСнского расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΡΡ‚ΡΡˆΠΊΠΎΠΉ ΠΈ Π΅Ρ‘ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ Π² ΡΠΎΠ±Ρ€Π°Π½Π½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠ΅. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° A*.

ΠΠ΅Ρ€Π΅ΡˆΠ°Π΅ΠΌΠ°Ρ комбинация, прСдлоТСнная НоСм Π§Π΅ΠΏΠΌΠ΅Π½ΠΎΠΌ — рисунок 1.

Рисунок — 1

МоТно ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ²Π½ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ ΠΈΠ· Π²ΡΠ΅Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… 1 307 674 368 000 (=15!) Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΡ‚Π½Π°ΡˆΠ΅ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΊ ΡΠΎΠ±Ρ€Π°Π½Π½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ: ΠΏΡƒΡΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊ с Ρ‡ΠΈΡΠ»ΠΎΠΌ i Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π΄ΠΎ (Ссли ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ ΡΠ²Π΅Ρ€Ρ…Ρƒ Π²Π½ΠΈΠ·) k ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΎΠ² с Ρ‡ΠΈΡΠ»Π°ΠΌΠΈ мСньшими i. Π‘ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ni = k, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ссли послС ΠΊΠΎΡΡ‚ΡΡˆΠΊΠΈ с i-ΠΌ числом Π½Π΅Ρ‚ чисСл, ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… i, Ρ‚ΠΎ k = 0. Π’Π°ΠΊΠΆΠ΅ Π²Π²Π΅Π΄Π΅ΠΌ число e — Π½ΠΎΠΌΠ΅Ρ€ ряда пустой ΠΊΠ»Π΅Ρ‚ΠΊΠΈ (считая с 1).

Если сумма являСтся Π½Π΅Ρ‡Ρ‘Ρ‚Π½ΠΎΠΉ, Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠΈ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚.

Для ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡΡ‚Π½Π°ΡˆΠ΅ΠΊ (с Π±ΠΎΠΌΠ»ΡŒΡˆΠΈΠΌ, Ρ‡Π΅ΠΌ 15, количСством ΠΊΠΎΡΡ‚ΡΡˆΠ΅ΠΊ) Π·Π°Π΄Π°Ρ‡Π° поиска ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ являСтся NP-ΠΏΠΎΠ»Π½ΠΎΠΉ.

Если Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Π½Π° 90 градусов, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ изобраТСния Ρ†ΠΈΡ„Ρ€ окаТутся Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌΠΈ Π½Π° Π±ΠΎΠΊΡƒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ пСрСвСсти Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΡ‹Π΅ (ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли вмСсто Ρ†ΠΈΡ„Ρ€ Π½Π° ΠΊΠΎΡΡ‚ΡΡˆΠΊΠΈ нанСсти Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Π½Π΅ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, Ρ‚ΠΎ Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅Ρ‚ся.

2. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ описаниС Π’ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ основныС возмоТности языка Π² Ρ€Π°Π±ΠΎΡ‚Π΅ со ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ, Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ созданиС:

1) ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятного интСрфСйса;

2) скромного, Π½ΠΎ Π³Ρ€Π°Ρ„ичСски Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ‚Π°Π±Π»ΠΎ, Π³Π΄Π΅ осущСствляСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ†ΠΈΡ„Ρ€;

3) ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ управлСния.

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ комбинация ΠΈΠ³Ρ€Π° число Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ ΠΈΠ³Ρ€Ρƒ «ΠΏΡΡ‚Π½Π°ΡˆΠΊΠΈ».

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ А, исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π‘.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. «Delphi. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня» Π€Π°Ρ€ΠΎΠ½ΠΎΠ² Π’. Π’., БПб.: ΠŸΠΈΡ‚Π΅Ρ€, 2011 — 640с.: ΠΈΠ». [ВСкст]

2. «Π‘иблия Delphi — 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅» Π€Π»Π΅Π½ΠΎΠ² М., Π‘.-Пб, Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2008 Π³. [ВСкст]

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, А ΠžΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2. Окно с ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ³Ρ€Ρ‹ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.

Рисунок 2 — основноС ΠΎΠΊΠ½ΠΎ Рисунок 3 — ΠΏΠΎΠ±Π΅Π΄Π° ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘ Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

unit main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus, XPMan, ExtCtrls;

type

TForm1 = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

tmr1: TTimer;

lbl1: TLabel;

procedure FormCreate (Sender: TObject);

procedure FormShow (Sender: TObject);

procedure N1Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure tmr1Timer (Sender: TObject);

private

procedure ButClicked (Sender: TObject);

procedure CreatFishkas ();

procedure KillOldFihkas ();

function position (const x, y: integer): integer;

procedure victopia ();

{ Private declarations }

public

{ Public declarations }

end;

type Tfish = TButton; // ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ Ρ„ΠΈΡˆΠ΅ΠΊ

const

W = 80; // ΡˆΠΈΡ€ΠΈΠ½Π° Ρ„ΠΈΡˆΠΊΠΈ

D = 10; // растояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΈΡˆΠΊΠ°ΠΌΠΈ

L = D + W; // растояниС ΠΌΠ΅ΠΆΠ΄Ρƒ «Ρ…» Ρƒ Ρ„ΠΈΡˆΠ΅ΠΊ

NXM = 3; // Ρ€Π°Π·ΠΌΠ΅Ρ€ поля 4Ρ…4

N = 1; M = 9; // Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива Ρ„ΠΈΡˆΠ΅ΠΊ

POLET = 10; POLEL = 10; //Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ поля Ρ„ΠΈΡˆΠ΅ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅

prefix = 'Fishka';

var

Form1: TForm1;

btn: array[N.M] of Tfish;

sorseAr: array[N.M] of boolean;

zeroX, zeroY: integer;

XYmatrix: array[1.M, 1.2] of integer;

timtemp:TDateTime;

implementation

{$R *.dfm}

//Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΎΡ€ΠΌΡ‹

procedure FormSize;

begin

Form1.Width := (POLEL * 2) + (L * NXM);

Form1.Height := (L * NXM) + POLET + 90;

Form1.Lbl1.Left:=Round (Form1.Width/2)-35;

Form1.Lbl1.Top:=Form1.Height-90;

end;

procedure TForm1. FormCreate (Sender: TObject);

var i, ty, lx: integer;

begin

timtemp:=time;

randomize; i := 0;

// заполняСм массив ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒΡΡ

// Ρ„ΠΈΡˆΠΊΠΈ ΠΏΡ€ΠΈ Π½Π°Ρ‡Π°Π»Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹

ty := POLET; lx := POLEL;

for i := N to M do begin

XYmatrix[i, 1] := lx;

XYmatrix[i, 2] := ty;

lx := lx + L;

if i mod NXM = 0 then begin

ty := ty + L;

lx := POLEL;

end;

end;

FormSize ();

end;

procedure TForm1. FormShow (Sender: TObject);

begin

CreatFishkas ();

end;

// ΠΊΠ»ΠΈΠΊ ΠΏΠΎ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ мСню — «Π½ΠΎΠ²Π°Ρ ΠΈΠ³Ρ€Π°»

procedure TForm1. N1Click (Sender: TObject);

begin

KillOldFihkas ();

FormSize ();

CreatFishkas ();

timtemp:=time;

end;

{ сбрасываСт всС элСмСнты массива Π² true,

массив ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ порядковыС Π½ΠΎΠΌΠ΅Ρ€Π° Ρ„ΠΈΡˆΠ΅ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹}

function dump (): boolean;

var i: integer;

begin

i := 0;

for i := N to M do

sorseAr[i] := true; ;

end;

//Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ

function choose (): integer;

var i: integer;

begin

i := 0;

result := random (M) + 1;

while sorseAr[result] = false do

result := random (M) + 1;

sorseAr[result] := false;

end;

procedure TForm1. CreatFishkas;

// ΠΠžΠ’ΠΠ― Π˜Π“Π Π, созданиС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля

var

i, ty, lx, ch: integer;

begin

randomize;

dump ();

// But. Enabled:=false; BitBtn1. Enabled:=true; BitBtn2. Enabled:=true;

ty := POLET; lx := POLEL;

for i := N to M do begin

btn[i] := Tfish. Create (Self);

btn[i]. Width := W;

btn[i]. Height := W;

btn[i]. Font. Size := 34;

btn[i]. Font.Name := 'Garamond Premr Pro';

btn[i]. Font. Style := [fsBold];

ch := choose (); // ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ число 1−16, числа Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ

btn[i]. Left := XYmatrix[ch, 1]; // ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ Π₯

btn[i]. Top := XYmatrix[ch, 2]; // ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ Π£

btn[i]. Tag := ch; // Π² Tag — Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„ΠΈΡˆΠΊΠΈ

btn[i]. Name := prefix + inttostr (i);

if i <> M then begin

btn[i]. Caption := inttostr (i);

btn[i]. OnClick := ButClicked;

end else begin // пустая ΠΊΠ½ΠΎΠΏΠΊΠ°

btn[i]. Caption := '';

zeroX := btn[i]. Left; zeroY := btn[i]. Top;

end;

btn[i].Parent := Self;

end;

end;

// опрСдСляСт ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стоит Ρ„ΠΈΡˆΠΊΠ° Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎ Π΅Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ

function TForm1. position (const x, y: integer): integer;

var i: integer;

begin

i := 0;

result := -32;

for i := N to M do begin

if ((XYmatrix[i, 1] = x) and (XYmatrix[i, 2] = y)) then begin

result := i; break;

end;

end;

end;

// ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„ΠΈΡˆΠΊΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ

procedure TForm1. ButClicked (Sender: TObject);

var X, Y, ps: integer;

begin

X := Tfish (Sender).left; Y := Tfish (Sender).Top;

if ((X = zeroX + L) and (Y = zeroY)) or

((X = zeroX — L) and (Y =

zeroY)) or

((X = zeroX) and (Y = zeroY + L)) or

((X = zeroX) and (Y = zeroY — L)) then begin

Tfish (Sender).Left := zeroX;

Tfish (Sender).Top := zeroY;

Tfish (FindComponent (prefix + inttostr (M))).left := X;

Tfish (FindComponent (prefix + inttostr (M))).top := Y;

ps := position (zeroX, zeroY);

if ps <> -32 then

Tfish (Sender).Tag := ps else

ShowMessage ('Ошибка Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹');

zeroX := X; zeroY := Y;

victopia (); // ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° — ΠŸΠžΠ‘Π•Π”Π ΠΈΠ»ΠΈ ΠΈΠ³Ρ€Π°Π΅ΠΌ дальшС

end;

end;

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° — ΠŸΠžΠ‘Π•Π”Π ΠΈΠ»ΠΈ ΠΈΠ³Ρ€Π°Π΅ΠΌ дальшС…

procedure TForm1. victopia;

var i: integer; b: boolean;

begin

b := true; i := 0;

for i := N to M — 1 do

begin

if strtoint (Tfish (FindComponent (prefix + inttostr (i))).Caption) <>

Tfish (FindComponent (prefix + inttostr (i))).Tag then

begin

b := false; break;

end;

end;

if b then ShowMessage ('ΠŸΠžΠ‘Π•Π”Π! Π’Π°Π”Π°Πœ))) Π’Π°ΡˆΠ΅ врСмя:'+TimeToStr (Time-timtemp));

end;

procedure TForm1. KillOldFihkas;

// ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ-Ρ„ΠΈΡˆΠΊΠΈ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹

var i: integer;

begin

for i := N to M do

FreeAndNil (btn[i]);

end;

procedure TForm1. N2Click (Sender: TObject);

begin

Application.Terminate ();

end;

procedure TForm1. tmr1Timer (Sender: TObject);

begin

form1.Refresh;

lbl1.Caption:=TimeToStr (Time-timtemp);

end;

end.

.ur

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ