Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «О Ρ‡Ρ‘ΠΌ Π½Π΅ ΠΏΠΈΡˆΡƒΡ‚ Π² ΠΊΠ½ΠΈΠ³Π°Ρ… ΠΏΠΎ DelphiΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 126

Автор А. Π“Ρ€ΠΈΠ³ΠΎΡ€ΡŒΠ΅Π²

4.10. Π•Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, познакомившись с синтаксичСским Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, вСрнСмся ΠΊ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΈ ΠΎΠ± Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ вычислСния Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΈ вопросы ΠΌΡ‹ здСсь рассмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π° Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΡ… описаниС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² [6–8].

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ языков ΠΏΠΎ способу описания ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ являСтся подмноТСством ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ.

1. ΠžΠ±Ρ‰ΠΈΠ΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. БинтаксичСскиС ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² этих Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄ a ::= b, Π³Π΄Π΅ Π° ΠΈ b β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, пустыС). ЕдинствСнноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ β€” хотя Π±Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· этих Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ.

2. ΠšΠΎΠ½Ρ‚Скстно-зависимыС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π—Π΄Π΅ΡΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ a<X>b ::= acb, Π³Π΄Π΅ Π°, b ΠΈ c β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов, <X> β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, символ <X> ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов c Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² контСкстС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ a ΠΈ b.

3. ΠšΠΎΠ½Ρ‚Скстно-свободныС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π­Ρ‚ΠΎ контСкстно-зависимыС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ±Ρ€Π°Π½ контСкст, Ρ‚.Π΅. ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ <X> ::= с. Π’ контСкстно-свободных Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ… Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ <X> замСняСтся Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ c Π² любом контСкстС.

4. Π Π΅Π³ΡƒΠ»ΡΡ€Π½Ρ‹Π΅ (ΠΎΠ½ΠΈ ΠΆΠ΅ β€” Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π½Ρ‹Π΅) Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π­Ρ‚ΠΎ контСкстно-свободныС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ рСкурсивных ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ.

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

РСгулярныС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ мноТСство синтаксичСских ΠΏΡ€Π°Π²ΠΈΠ», Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΆΠΈΠ·Π½ΠΈ, поэтому ΠΈΡ… часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ записи рСгулярной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ β€” рСгулярныС выраТСния (ΠΌΡ‹ ΠΈΡ… здСсь Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ). Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для распознавания рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‡Π΅Π½ΡŒ популярны, классы для распознавания рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ входят Π² .NET. Ѐункция поиска Π² Delphi (мСню Search/Find…. ΠΈ Ρ‚.ΠΏ.) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя возмоТности поиска ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ символов, Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (опция Regular expressions Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅), поэтому ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС синтаксиса рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² справкС Delphi.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

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

Π‘ рСгулярными Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ тСсно связаны ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ β€” это устройство (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅), с Π²Ρ…ΠΎΠ΄ΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°Π±ΠΎΡ€ΠΎΠΌ состояний ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ состояния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символами, ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π½Π° Π²Ρ…ΠΎΠ΄, ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: "Если Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ находится Π² состоянии А, ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄ поступил символ X, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС Π’". Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ посимвольно пСрСдаСтся Π½Π° Π²Ρ…ΠΎΠ΄ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ состояния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ (допустима ситуация, ΠΊΠΎΠ³Π΄Π° символ оставляСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ). Если ΠΏΡ€ΠΈ поступлСнии ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ символа Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСт ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, считаСтся, Ρ‡Ρ‚ΠΎ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Π°Π½ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ символ, Ρ‚.Π΅. Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ. Π”ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ выраТСния опрСдСляСтся Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅ΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ состоянии оказываСтся Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π°Π½ΠΎ Π½Π° Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄. Π§Π°ΡΡ‚ΡŒ состояний считаСтся допустимыми Π² качСствС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ состояния, Ρ‡Π°ΡΡ‚ΡŒ β€” нСдопустимыми. Если ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ оказываСтся Π² нСдопустимом состоянии, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ признаСтся ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ.

МоТно Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ рСгулярной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚, ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ (ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ. ИмСнно поэтому рСгулярныС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π°ΠΏΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π½Ρ‹ΠΌΠΈ.

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ наглядно прСдставляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³Ρ€Π°Ρ„Π°, ΡƒΠ³Π»Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слуТат состояния Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°, Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ β€” ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями. КаТдоС Ρ€Π΅Π±Ρ€ΠΎ помСчаСтся символами, ΠΏΡ€ΠΈ поступлСнии Π½Π° Π²Ρ…ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… этот ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ. На рис. 4.3 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ изобраТСния ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅ вСщСствСнного числа. ΠšΡ€ΡƒΠΆΠΊΠΈ с ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ состояния, нСдопустимыС Π² качСствС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ, с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ β€” допустимыС. Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ находится Π² состоянии 0, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ состояниС. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ состояниС 1 соотвСтствуСт числу Π±Π΅Π· Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части ΠΈ экспонСнты, состояниС 3 β€” числу с Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π±Π΅Π· экспонСнты, состояниС 6 β€” числу с экспонСнтой.

Рис. 4.3. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ для Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ вСщСствСнного числа


ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎ-свободныС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ для распознавания контСкстно-свободных Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ с рСкурсиСй. Для этого класса Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ МП-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ (Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ с ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ). Π­Ρ‚ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ стСком, ΠΈ символ, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²Ρ…ΠΎΠ΄, Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ опрСдСляСт ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сохранСн Π² стСкС, Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠΈΠΉ Π½Π° Π²Ρ…ΠΎΠ΄ символ, Π½ΠΎ ΠΈ символ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ стСка. Если символ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ стСка учитываСтся ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ, ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° символ извлСкаСтся ΠΈΠ· стСка.

Π“Π»Π°Π²Π½ΠΎΠ΅ достоинство МП-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ² ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ рСкурсивного спуска (Ρ‚Π°ΠΊ называСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ построСния синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали) являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° унивСрсалСн ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΡ€Π°Π²ΠΈΠ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹, ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ внСшнСм Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π±Π΅Π· пСрСкомпиляции Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. НСдостатки МП-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ² β€” малая Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ мСдлСнная Ρ€Π°Π±ΠΎΡ‚Π° ΠΈΠ·-Π·Π° возмоТности Π·Π°Ρ…ΠΎΠ΄Π° Π² Ρ‚ΡƒΠΏΠΈΠΊΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ рСкурсивного спуска примСняСтся всСгда, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Π½ΡƒΠΆΠ΄Ρ‹ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ ΠΊΠ½ΠΈΠ³Π΅ [6] описана интСрСсная Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ МП-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ² β€” Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° рСкурсивного спуска.

АрифмСтичСскиС выраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π°Π·Π±ΠΈΡ€Π°Π»ΠΈ Π² этой Π³Π»Π°Π²Π΅, записаны Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ Π½Π°ΠΌ инфиксной Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚.Π΅. ΠΊΠΎΠ³Π΄Π° Π·Π½Π°ΠΊ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ставится ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ. ΠšΡ€ΠΎΠΌΠ΅ инфиксной, сущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ прСфиксная ΠΈ постфиксная Ρ„ΠΎΡ€ΠΌΡ‹ записи выраТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ записываСтся, соотвСтствСнно, ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ послС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². НапримСр Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ "2+2" Π² прСфиксной Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ "+2 2", Π² постфиксной β€” "2 2+". ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° называСтся польской записью, постфиксная β€” польской инвСрсной записью (Π² Ρ‡Π΅ΡΡ‚ΡŒ польского ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π―Π½Π° ЛукасСвича, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» эти Ρ„ΠΎΡ€ΠΌΡ‹ записи).

Достоинства прСфиксной ΠΈ постфиксной Ρ„ΠΎΡ€ΠΌ записи β€” отсутствиС скобок ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. НапримСр, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ "2+(2*2)" Π² постфиксной записи ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ "2 2 * 2 +", Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ "(2+2)*2", соотвСтствСнно, "2 2 + 2 *". ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ всСгда Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

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

По своим Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ возмоТностям постфиксная ΠΈ прСфиксная записи Ρ€Π°Π²Π½ΠΎΡ†Π΅Π½Π½Ρ‹, Π½ΠΎ ΠΏΡ€ΠΈ вычислСнии выраТСния, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ прСфиксной записью, трСбуСтся рСкурсивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π° ΠΏΡ€ΠΈ вычислСнии выраТСния Π² постфиксной записи достаточно Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ стСка, поэтому Ρ‡Π°Ρ‰Π΅ встрСчаСтся постфиксная Ρ„ΠΎΡ€ΠΌΠ°. Алгоритм вычислСния постфиксного выраТСния ΠΎΡ‡Π΅Π½ΡŒ прост. Если очСрСдная лСксСма β€” это число, ΠΊΠ»Π°Π΄Π΅ΠΌ Π΅Π³ΠΎ Π² стСк. Если очСрСдная лСксСма β€” Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π²Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π΅ΠΌ ΠΈΠ· стСка Π΄Π²Π° Π²Π΅Ρ€Ρ…Π½ΠΈΡ… значСния, примСняСм ΠΊ Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² стСк. Алгоритм Π»Π΅Π³ΠΊΠΎ обобщаСтся Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌ количСством ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ²: ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ опСрация Π²Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ· стСка Π½Π΅ Π΄Π²Π°, Π° Π½ΡƒΠΆΠ½ΠΎΠ΅ Π΅ΠΉ число ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Ѐункция ΠΎΡ‚ N Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² рассматриваСтся ΠΊΠ°ΠΊ опСрация, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰Π°ΡΡΡ ΠΊ N ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌ.