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

ΠžΡ†Π΅Π½ΠΊΠ° асимптотичСской Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ

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

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

ΠžΡ†Π΅Π½ΠΊΠ° асимптотичСской Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π’ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ трСбуСтся Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ эффСктивныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ тСорСтичСски ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π΅ΠΌΠΊΠΎΡΡ‚Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Ρ‹Π»Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ комбинаторная Π·Π°Π΄Π°Ρ‡Π°:

Π—Π°Π΄Π°ΡŽΡ‚ΡΡ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€Ρ‹ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ Π±ΡƒΠΊΠ²Π° всСгда замСняСт ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ†ΠΈΡ„Ρ€Ρƒ, Ρ€Π°Π·Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹. Число разрядов исходных чисСл (Π½Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ) — Π½Π΅ Π±ΠΎΠ»Π΅Π΅ N. Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния Π±ΡƒΠΊΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π°ΡΠΈΠΌΠΏΡ‚ΠΎΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ N.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: SEND MORE MONEY соотвСтствуСт 9567+1085=10 652.

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ трСбуСтся:

Β· Π€ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ (ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ ΡΠ»ΠΎΠ²Π΅ΡΠ½ΠΎΠΉ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ постановки ΠΊ ΠΌΠ°Ρ‚СматичСской Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ΅);

Β· ΠŸΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ;

Β· ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² с Ρ†Π΅Π»ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ;

Β· Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ тСорСтичСскиС ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сокращСния ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…;

Β· ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ аналитичСски ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² (Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π΅ΠΌΠΊΠΎΡΡ‚Π½ΡƒΡŽ слоТности);

Β· ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π°Π»Π³ΠΎΡ€ΠΈΡ‚мичСских языков программирования.

Β· Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

Анализ задания. Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡƒΡ‚ях ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности вычислСний

матСматичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Рассмотрим ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΈΠΌΠ΅Π΅Ρ‚ логичСскоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΡƒΠΊΠ² Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ — количСство Ρ†ΠΈΡ„Ρ€ 10. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, бСсконСчно расти, эта Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΠΈ чисСл, Π½ΠΎ Π·Π΄Π΅ΡΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΎ скорСС возмоТностями ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств, Ρ‡Π΅ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π‘Π°ΠΌΠ° идСя Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ строку ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ всС вхоТдСния ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ. ПослС расстановки Ρ†ΠΈΡ„Ρ€ Ρ€Π°ΡΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π·Π½Π°ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° (являСтся Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ‚). Π—Π½Π°ΠΊΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ всСго 4: слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π—Π½Π°ΠΊ `=' ставится вмСсто послСднСго Π½Π΅ Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠ³ΠΎ символа. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹Π±ΠΎΡ€ Ρ†ΠΈΡ„Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ подставлСны, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ†ΠΈΡ„Ρ€. Для этого создадим Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 10Π§10, ΠΈ Π²Π²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ обозначСния

0- символ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ:

1- символ Π²Ρ‹Π±Ρ€Π°Π½ Π² ΡΡ‚ΠΎΠΉ строчкС Π² Π½Π°ΡΡ‚оящСС врСмя;

2- символ Π±Ρ‹Π» использован Π² ΡΡ‚ΠΎΠΉ строчкС Ρ€Π°Π½ΡŒΡˆΠ΅ (Π² ΡΡ‚ΠΎΠΉ строчкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот символ большС нСльзя, Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ);

3- символ Π²Ρ‹Π±Ρ€Π°Π½ Π² Π²Ρ‹ΡˆΠ΅ стоящСй строчкС;

Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ обусловлСн Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΊΠ°ΠΊΠΈΠ΅ значСния ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΠ»ΠΈΡΡŒ, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅Ρ‚. Π’ ΡΡ‚ΠΎΠΌ случаС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ повторная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ.

I. Ѐормализация Π·Π°Π΄Π°Ρ‡ΠΈ

1.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для прСдставлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π·Π°Π΄Π°Ρ‡ΠΈ

Основная Ρ€Π°Π±ΠΎΡ‚Π° Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ происходит с ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΉ строкой ΠΈ Π»ΠΈΡˆΡŒ Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ этапС производится ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ чисСл записанных Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ Π² Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ.

Для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся Π²Π΅ΠΊΡ‚ΠΎΡ€ (a1, a2,…), Π½ΠΎ Π² Π½Π°ΡˆΠ΅ΠΌ случаС Ρ‚Π°ΠΊΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ строка с ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ, которая ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ся Π½Π° ΡΠΊΡ€Π°Π½, Π² Ρ‚ΠΎΠΌ случаС Ссли ΠΎΠ½Π° Π²Π΅Ρ€Π½Π°.

Π’Ρ‹Π±ΠΎΡ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ шага выполняСтся ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ описанной Π²Ρ‹ΡˆΠ΅. Π’Π°ΠΊ ΠΆΠ΅ выполняСтся подстановка Π·Π½Π°ΠΊΠΎΠ². ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ ΠΏΡ€ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ 3 Π² Ρ‚Π΅Ρ… столбцах, Π³Π΄Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строкС стоит 3 ΠΈΠ»ΠΈ 1, ΠΈ ΡΡ‚ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹.

1.2 Анализ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ. АналитичСскиС ΠΈ/ΠΈΠ»ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ†Π΅Π½ΠΊΠΈ

ОсновноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² ΡΡ‚ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°ΠΌΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ связано Π² ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΌ соотвСтствии Π±ΡƒΠΊΠ² ΠΈ Ρ†ΠΈΡ„Ρ€.

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ накладываСтся Π½Π° ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π·Π½Π°ΠΊΠΎΠ², ΠΎΠ½ΠΎ влияСт Π½Π° ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ ΡΠΎΠΎΡ‚вСтствСнно Π½Π° Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 4. МаксимальноС число ΡƒΠ·Π»ΠΎΠ² Π΄Π΅Ρ€Π΅Π²Π° Ρ€Π°Π²Π½ΠΎ 10! И Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅:

Π³Π΄Π΅ n — число Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΡƒΠΊΠ² Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅.

1.3 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅ описаны Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ сам Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΅Π³ΠΎ.

Алгоритм 1. Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ.

Алгоритм 1 являСтся ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ. Π‘ΡƒΡ‚ΡŒ самого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Ρƒ, Ρ€Π°Π·Π±Π΅Ρ€Ρƒ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ прСдставляСт ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΎΠ±Ρ‰Π΅Π³ΠΎ рСкурсивного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Copy позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΡƒΠΆΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π½Π΅Π΅ Ρ†ΠΈΡ„Ρ€.

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выполняСт подстановку Π·Π½Π°ΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²Π΅Ρ€Π½Π° Π»ΠΈ строка. Она прСдставляСт собой поиск с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Π­Ρ‚ΠΈ Π΄Π²Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ символы вмСсто Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… символов. Основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ подставляСт вмСсто Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… символов Ρ†ΠΈΡ„Ρ€Ρ‹, Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Podstan подставляСт вмСсто Π½Π΅ Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… символов Π·Π½Π°ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Vozvrat Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ шаг, ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ послСдниС Π·Π°ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ символы Π½Π° ΠΌΠ΅ΡΡ‚ΠΎ ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ шаг Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

II. ΠžΡ†Π΅Π½ΠΊΠ° асимптотичСской Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° (ΠœΠ΅Ρ‚ΠΎΠ΄ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ)

ВычислСниС ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ†Π΅Π½ΠΊΠΈ эффСктивности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ сравнСния Π΅Π³ΠΎ с ΡΡ‚Π°Π»ΠΎΠ½ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ для Π·Π°Π΄Π°Ρ‡ΠΈ с ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для исслСдования асимптотичСской Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΡƒΠΊΠ² Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° Π·Π½Π°ΠΊΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ

ЀактичкСски

Число Π‘ΡƒΠΊΠ²

Число символов

Число ΡƒΠ·Π»ΠΎΠ²

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

Число ΡƒΠ·Π»ΠΎΠ²

ВрСмя (мс)

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

1,06

1,11

1,05

1,10

1,15

1,08

Данная Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ рост Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства Π·Π½Π°ΠΊΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ числС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΡƒΠΊΠ².

Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ

ЀактичкСски

Число Π‘ΡƒΠΊΠ²

Число символов

Число ΡƒΠ·Π»ΠΎΠ²

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

Число ΡƒΠ·Π»ΠΎΠ²

ВрСмя (мс)

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

2,9

3,7

2,4

2,5

1,4

1,5

Данная Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ рост Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства Π·Π½Π°ΠΊΠΎΠ² ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΡƒΠΊΠ².

Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠœΠΎΠ½Ρ‚Π΅-ΠšΠ°Ρ€Π»ΠΎ

ЀактичкСски

Число Π‘ΡƒΠΊΠ²

Число символов

Число ΡƒΠ·Π»ΠΎΠ²

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

Число ΡƒΠ·Π»ΠΎΠ²

ВрСмя (мс)

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ роста

4,7

4,1

4,4

3,5

2,4

1,5

1,4

Данная Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ рост Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΡƒΠΊΠ², ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ количСствС Π·Π½Π°ΠΊΠΎΠ².

III. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

3.1 РСализация Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… использовались ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ структуры:

int Byval[11][10] - Π’Π°Π±Π»ΠΈΡ†Π° хранСния ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ

char sstr[27] = «abcdefghijklmnopqrstuvwxyz»; - массив элСмСнтов распознаваСмых ΠΊΠ°ΠΊ Π±ΡƒΠΊΠ²Π°

int Znak[4][4] - Π’Π°Π±Π»ΠΈΡ†Π° хранСния ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

char* isch_str — исходная строка с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ проводятся всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π’Π°ΠΊ ΠΆΠ΅ для удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» создан стСк ΠΏΠΎΠ΄ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ

struct stac

{

int nom;

char sym;

};

Π’ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ всС символы замСняСмыС Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ подставляСмая Ρ†ΠΈΡ„Ρ€Π° выбираСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

БСрСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ 0 Π² Π΄Π°Π½Π½ΠΎΠΉ строкС (зависит ΠΎΡ‚ Glub) ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ся 1.

3.2 РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

ΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ строки ΠΎΠ½Π° провСряСтся Π½Π° Π΄Π²Π° условия

1 — Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… символов Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10

2 — Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π΄Π²Π° подряд ΠΈΠ΄ΡƒΡ‰ΠΈΡ… Π½Π΅ Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… символов, ΠΈ Π²ΡΠ΅Π³ΠΎ Π½Π΅ Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… символов Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 4.(procedure Proverka ΠΈ Prover)

Procedure Rabota - основная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ основная Ρ€Π°Π±ΠΎΡ‚Π°.

Procedure Pystot — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Byval ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ Π΅ΡΡ‚ΡŒ Π»ΠΈ Π΅Ρ‰Π΅ Ρ†ΠΈΡ„Ρ€Ρƒ доступныС ΠΊ Π²ΡΡ‚Π°Π²ΠΊΠ΅.

Procedure Sled — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰Π°Ρ Π΅Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ.

Procedure NextPo — Π²Ρ‹Π±ΠΎΡ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π½Π΅ Π·Π°ΠΌΠ΅Π½Π½Π΅Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹. ΠŸΡ€ΠΎΡ…ΠΎΠ΄Ρ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ΅ ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ со ΡΡ‚Ρ€ΠΎΠΊΠΎΠΉ sstr ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Π² sstr выбираСтся Π½Π° Π·Π°ΠΌΠ΅Π½Ρƒ.

Procedure Podstano — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° подставляСт Π·Π½Π°ΠΊΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ строки. Если строка Π²Π΅Ρ€Π½Π° Ρ‚ΠΎ ΠΎΠ½Π° выводится Π½Π° ΡΠΊΡ€Π°Π½.

ВсС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ для ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ. Π₯отя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΈ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π½Π΅ Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ‚СкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Автор Π²Ρ‹Π±Ρ€Π°Π» для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π² ΡΠΈΠ»Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ рСкурсивный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС памяти, нСсколько слоТнСС для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π² ΡΠΈΠ»Ρƒ Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ Π°Π²Ρ‚ΠΎΡ€Π°.

3.3 ИсслСдованиС способов программирования

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня Microsoft Visual C++ 6.0 d Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ исходного Ρ„Π°ΠΉΠ»Π°: 6ΠΊΠ±Π°ΠΉΡ‚ Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ исполняСмого Ρ„Π°ΠΉΠ»Π°: 208 ΠΊΠ±Π°ΠΉΡ‚ ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ

asd fgh sderg

367*184=67 528

514*028=14 392

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅

Π’ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΡΠΎΠΎΡ‚вСтствиС с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Как основа Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±Ρ‹Π»ΠΈ взят ΠΎΠ±Ρ‰ΠΈΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ логичСскиС ограничСния, ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π½Π° расти Π΄ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊ ΠΆΠ΅ Π² ΡΡ‚ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ способов сокращСния ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ наибольшСС врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ (ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ разрядности это врСмя Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ). Но Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ порядка 1 часа ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ся.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ запискС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ ΡΠ°ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

#include

#include

#include

#include

#include

#include

#include

char isch_str[30];

char sstr[27] = «abcdefghijklmnopqrstuvwxyz» ;

int chisla[10]= {1,1,1,1,1,1,1,1,1,1};

char Chisl[11] = «1 234 567 890» ;

char cfstr[27];

char Znaki[5]="±*/" ;

int Byval[11][10]= {{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0},

{0,0,0,0,0,0,0,0,0,0}};

int Znak[4][4]={{0,0,0,0},

{0,0,0,0},

{0,0,0,0},

{0,0,0,0}

};

int Ukaz;

int Zna;

int Chis;

int Pustota=0;

int Prisn=1;

long okr;

int Ver=0;

double start, end;

struct stac

{

int nom;

char sym;

};

stac STAC[15];

stac POPS ()

{

Ukaz—;

return (STAC[Ukaz]);

}

int PUSHS (stac Elm)

{

STAC[Ukaz]=Elm;

Ukaz++;

return (0);

}

int Proverka (char* str)

{

memset (cfstr, 0,27);

for (int i=0, j = 0; i < (int)strlen (str); i++)

if ((strchr (sstr, str[i])) && !cfstr[str[i]-97])

{

j++;

cfstr[str[i]-97] = 1;

};

for (int a=0; a<(int)strlen (str);a++)

if (!(strchr (sstr, str[a]))) Zna++;

return j;

}

int Prover (char* str)

{

int Pre=0,kod;

for (int i=0; i<(int)strlen (str)-1;i++)

{

kod=str[i];

if ((!((kod>96)&&(kod<123)))&&(Pre)) return (0);

else if (!((kod>96)&&(kod<123)))Pre=1;

else Pre=0;

}

for (int j=(int)strlen (str)-2;j>=0;j—)

if (!strchr (sstr, str[j])) {str[j]='=';return (1);}

return (0);

}

int Podstan (char* str, char chr, char chrz)

{

for (int i=0; i<(int)strlen (str); i++)

if (str[i]==chr) str[i]=chrz;

return (0);

}

int Vozvrat (char* str, int Glub)

{

stac Pr;

char ch, cho;

int pos;

Pr=POPS ();

ch=Pr.sym;

pos=Pr.nom;

cho=str[pos];

for (int j=pos; j<=(int)strlen (str);j++)

{if (str[j]==cho) str[j]=ch;}

for (int i=0; i<10; i++)

Byval[Glub][i]=0;

{for (int b=0; b<10; b++)

if (Byval[Glub-1][b]==1) Byval[Glub-1][b]=2;

}

return (0);

}

int Proverca (char* str, int Glub)

{

return (1);

}

int NextPo (char* str, int po)

{ for (int i=0; i<(int)strlen (str);i++)

if (strchr (sstr, str[i])) return (i);

return (-1);

}

int Pystot (char* str, int Glub)

{

for (int j=10,a=0; a<10; a++)

if (Byval[Glub][a]) j—;

return (j);

}

int Copy (int Glub, char ch1)

{

if (Glub==0) Byval[Glub][ch1−48]=1;

elsefor (int i=0;i<=10;i++)

if ((Byval[Glub-1][i]==1)

return (0);

}

char Sled (int Glub)

{

for (int i=0; i<10; i++)

if (!(Byval[Glub][i])) {Byval[Glub][i]=1;return (i+48);}

return (0);

}

int Pys (int zn)

{

for (int j=4,i=0; i<=4;i++)

j-=Znak[zn][i];

return (j);

}

int Vyb (char* str, int p)

{

for (int i=p+1; i<(int)strlen (str);i++)

if (!(strchr (Chisl, str[i]))) return (i);

return (-1);

}

char V (int zn)

{

for (int i=0; i<4; i++)

if (!Znak[zn][i])

{Znak[zn][i]=1;

switch (i){

case (0):return ('+'); break;

case (1):return ('-'); break;

case (2):return ('*'); break;

case (3):return ('/'); break;

}

}

return (0);

}

int Voz (char* str)

{ stac pred;

pred=POPS ();

str[pred.nom]=pred.sym;

return (0);

}

int PROVERKA (char* str, int zn)

{ int pos=0;

char ch;

double dw1=atof (str), dw2;

int i=0;

if (zn

while (pos<(int)strlen (str))

{

while (isdigit (str[pos])) pos++;

ch=str[pos];

pos+=1;

dw2=atoi (str+pos);

switch (ch)

{

case ('='):if (dw1==dw2) cout<

case ('+'):dw1+=dw2; break;

case ('-'):dw1-=dw2; break;

case ('*'):dw1*=dw2; break;

case ('/'):if (!(dw2==0))dw1/=dw2; break;

}

}

return (0);

}

int Podstano (char* str, int Glub)

{

int zn=0,p=0,Pri=1;

stac Per;

char ch;

Ver++;

if (Chis>Glub)return (0);

while (zn>=0)

{

while ((Pri)&&(Pys (zn)))

{p=Vyb (str, p);

Per.nom=p;

Per.sym=str[p];

PUSHS (Per);

ch=V (zn);

Ver++;

if (str[p]≠'=')

{str[p]=ch;

zn++;

if (zn==1)

{ for (int a=3;a>=0;a—)

if (Znak[0][a]==1){ Znak[1][a]=1;

break;}}

if (!(zn==1)) {for (int i=0;i<4;i++)

Znak[zn][i]=Znak[zn-1][i]; }

}

if (PROVERKA (str, zn)) Pri=0;

}

if (zn≠0) Voz (str);

for (int b=0; b<4;b++)

Znak[zn][b]=0;

zn—;

Pri=1;

p=0;

}

Prisn=0;

return (0);

}

int Rabota (char* str)

{ int Nomerchis=0; //НомСр послСднСго Π·Π°ΠΌΠ΅Π½Π½Π΅Π½ΠΎΠ³ΠΎ символа

memset (chisla, 1,10);

char* isch=str;

char ch, ch1;

int po=0,k=1,Nu=0,Glub=0; //Ex-ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π°

stac Per;

while (Glub>=0)

{

while ((Prisn)&&(Pystot (str, Glub)))

{

if (po≠-1)

{

ch=str[po];

Per.nom=po;

Per.sym=ch;

PUSHS (Per);

ch1=Sled (Glub);

if (ch1≠0)Podstan (str, ch, ch1);

Glub++;

Copy (Glub, ch1);

Podstano (str, Glub);}

po=NextPo (str, po);

}

Vozvrat (str, Glub);

Glub—;

Prisn=1;

}

return (0);

}

int main ()

{

cout<<οΏ½"Π’Π²Π΅Π΄ΠΈΡ‚Π΅ строку"<< endl;

fgets (isch_str, 30, stdin);

Chis=Proverka (isch_str);

if (Chis>10) {cout<<οΏ½"ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ строка" <

if (!(Prover (isch_str))) {cout<<" ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ строка" <

getch ();exit (0);}

start=GetTickCount ();

Zna-=2;

Rabota (isch_str);

end=GetTickCount ();

end-=start;

if (!Pustota) cout<<" НСт Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²" ;

cout<<" ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½" <

cout<<" ВрСмя «<

cout<<" Π’Π΅Ρ€ΡˆΠΈΠ½ «<

cout<<" Press any key" << endl;

getch ();

return (0);

}

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