Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов

ДискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для пСрвокурсников: ΠΎΠΏΡ‹Ρ‚ прСподаватСля

БСгодня Ρƒ мСня Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ связанный с ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ (для Π½ΠΎΠ²Ρ‹Ρ… Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ: этот тСкст – Ρ‡Π°ΡΡ‚ΡŒ Π±Π»ΠΎΠ³Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Surfingbird, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ послСднСго Π³ΠΎΠ΄Π° рассказывал ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π°Ρ… машинного обучСния Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ систСмам). Π’ этом постС матСматичСской части практичСски Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π° Π±ΡƒΠ΄Π΅Ρ‚ описаниС ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я написал для своих студСнтов. Вряд Π»ΠΈ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΡƒΠ·Π½Π°Π΅Ρ‚ для сСбя ΠΈΠ· этого поста ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ, Π½ΠΎ ΠΌΠ½Π΅ каТСтся, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ прСдставляСт сама идСя – ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди просто Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Β«ΠΈ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎΒ». Π˜Ρ‚Π°ΠΊβ€¦

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π’ этом сСмСстрС Ρƒ мСня Π½Π°Ρ‡Π°Π»Π°ΡΡŒ нСсколько нСпривычная Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: я ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°ΡŽ Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ для пСрвокурсников Π² пСтСрбургском Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅ Π’Ρ‹ΡΡˆΠ΅ΠΉ Π¨ΠΊΠΎΠ»Ρ‹ Π­ΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠΈ; ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°ΡŽ я Π΄Π°Π²Π½ΠΎ, Π½ΠΎ, каТСтся, Ρ€Π°Π½ΡŒΡˆΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρƒ мСня Π½Π΅ Π±Ρ‹Π»ΠΎ студСнтов младшС Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠ³ΠΎ-пятого курса. По ссылкС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС курса, Π΄Π° ΠΈ Ρ‚ΠΎ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ (курс Π΅Ρ‰Ρ‘ ΠΈΠ΄Ρ‘Ρ‚), Π½ΠΎ Ρ€Π΅Ρ‡ΡŒ Π½Π΅ совсСм ΠΎΠ± этом.

Π”ΡƒΠΌΠ°ΡŽ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠ±ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ…Π°Π±Ρ€Π° хотя Π±Ρ‹ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ помнят, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для пСрвокурсников»: ΠΏΡ€ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, базисы булСвских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, частичныС порядки… Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ слоТного, Π½ΠΎ это всё Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π°Π΄ΠΎ ΠΎΠ²Π»Π°Π΄Π΅Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡ‡Π½ΠΎ, Π½Π° Π½ΠΈΡ… дСрТится любоС матСматичСскоС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ осознанно Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎ Π½ΠΈΡ… быстро станСт Π½Π΅ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€ΠΎΡΠΊΠΎΡˆΡŒΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ практичСских ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π½Π°Π±ΠΈΡ‚ΡŒ Ρ€ΡƒΠΊΡƒΒ».

Π’ качСствС ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ„ΠΎΡ€ΠΌ отчётности я Π²Ρ‹Π±Ρ€Π°Π» «большоС домашнСС Π·Π°Π΄Π°Π½ΠΈΠ΅Β»: нСсколько ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Π°ΠΊΠΈΡ… практичСских ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ. Π£ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΎ плюсов: студСнты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΈΠΌ Ρ‚Π΅ΠΌΠΏΠ΅, я Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΌΠΎΠ³Ρƒ сколько Π½ΡƒΠΆΠ½ΠΎ, всё Π² письмСнном Π²ΠΈΠ΄Π΅ происходит, Ρ‡Ρ‚ΠΎ всСгда ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Но Π΅ΡΡ‚ΡŒ ΠΈ минусы; Π³Π»Π°Π²Π½Ρ‹ΠΉ минус прост – Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡΡ‚ΡŒΠ΄Π΅ΡΡΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π° ΠΏΡΡ‚ΡŒΠ΄Π΅ΡΡΡ‚ студСнтов (Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ Π΅ΡΡ‚ΡŒ). А Ссли Π΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ, понятно, Ρ‡Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡˆΡŒ красиво пСрСписанныС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, особСнно учитывая, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠΉ дискрСтной ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Β«Ρ…ΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΒ» Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ просто отсутствуСт (ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ БДНЀ – Π½Ρƒ ΠΊΠ°ΠΊ, ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ истинности Π΄Π° Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. ).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, я Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ домашнСС Π·Π°Π΄Π°Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ студСнта случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ИдСя Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ простая, Π½ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π½ΠΈ Π² свою Π±Ρ‹Ρ‚Π½ΠΎΡΡ‚ΡŒ студСнтом, Π½ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΌ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅ я Π΅Ρ‘ Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ встрСчал – собствСнно, поэтому ΠΈ ΠΏΠΈΡˆΡƒ этот пост. Π― ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠΊΠ°ΠΆΡƒ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ.

Базовая тСхнология понятна – Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ LaTeX-Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ задания для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ студСнта. Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ всё Ρ€Π°Π²Π½ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС это Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΠ½Π΅ историчСски ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Π΅Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ нСбольшиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΠΈ Π½Π° C++, поэтому я ΠΈ Ρ‚ΡƒΡ‚ Π±ΡƒΠ΄Ρƒ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² C++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я знаю, – это boost::format: достаточно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ с плСйсхолдСрами Π²Ρ€ΠΎΠ΄Π΅ %1%, %2%, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ (Ρƒ boost::format Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности, Π½ΠΎ Π½Π°ΠΌ ΠΎΠ½ΠΈ сСйчас Π½Π΅ понадобятся).

Π˜Ρ‚Π°ΠΊ, Π΄Π΅Π»Π°Π΅ΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠ±Ρ‰ΠΈΠΉ шаблон «абстрактного LaTeX-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Β»:

ΠŸΠΎΡ‚ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ шаблон собствСнно задания – Π΅Π³ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ вмСсто %1%. Π― здСсь, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π», ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡ΠΊΡƒ: ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ булСвской Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ пСрСвСсти Π΅Ρ‘ Π² нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌ.

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ %3% (вмСсто %1% ΠΈ %2% Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ имя студСнта ΠΈ Π½ΠΎΠΌΠ΅Ρ€ Π³Ρ€ΡƒΠΏΠΏΡ‹). Для этого Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹. Π‘Ρ€Π°Π·Ρƒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽ, Ρ‡Ρ‚ΠΎ я ΠΏΠ»ΠΎΡ…ΠΎΠΉ программист, ΠΈ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅ навСрняка Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ спагСтти – Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ссли ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ посовСтуСт изящный Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, скаТу спасибо.

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°Π΄ΠΎ завСсти структуру, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ связки ΠΈ Ρ‚ΠΈΠΏΡ‹ ΡƒΠ·Π»ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅; для нашСго минимального ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° это лишнСС, Π½ΠΎ ΠΌΠ½Π΅ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ Π·Π°Π΄Π°Ρ‡ΠΊΡƒ ΠΏΡ€ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π°Π»Π³Π΅Π±Ρ€Ρ‹ мноТСств (объСдинСния, пСрСсСчСния Π΄Π° симмСтричСскиС разности), ΠΈ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎ Π΄Π΅Ρ€Π΅Π²ΡŒΡ Ρ„ΠΎΡ€ΠΌΡƒΠ» Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²ΠΎΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящий ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создали «язык булСвских Ρ„ΠΎΡ€ΠΌΡƒΠ»Β», Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡΡ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… связок (ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ, Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ, импликация, XOR ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ) ΠΈ ΠΎΠ΄Π½Π° унарная (ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅). БСдьмой Ρ‚ΠΈΠΏ ΡƒΠ·Π»Π° – это пСрСмСнная, Ρƒ Π½Π΅Ρ‘ Π°Ρ€Π½ΠΎΡΡ‚ΡŒ 0. Π’ домашнСм Π·Π°Π΄Π°Π½ΠΈΠΈ я ограничился Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌΠΈ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: мСньшС ΠΌΠ°Π»ΠΎΠ²Π°Ρ‚ΠΎ, Π° большС становится слишком Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ. Бюда ΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ случайного Ρ‚ΠΈΠΏΠ° ΡƒΠ·Π»Π°, случайной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, случайной Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ связки (я пользовался распрСдСлСниями ΠΈΠ· boost::random – ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ; Ρ…ΠΎΡ‚ΡŒ Ρ‚Π°ΠΌ ΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, Π½ΠΎ Π½Π°ΠΌ сСйчас ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π½Π΅ Π½Π°Π΄ΠΎ).

Π’Π°ΠΊΡƒΡŽ структуру Π»Π΅Π³ΠΊΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ„ΠΎΡ€ΠΌΡƒΠ» Π°Π»Π³Π΅Π±Ρ€Ρ‹ мноТСств (это просто для сравнСния, дальшС GSet ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚):

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создаём класс Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹. БулСвская Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° – это Π΄Π΅Ρ€Π΅Π²ΠΎ, Π»ΠΈΡΡ‚ΡŒΡΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слуТат ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ – логичСскиС связки. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠΌΠ΅Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹, поэтому Π² конструктор Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ, Π½Π΅ ΠΏΠΎΡ€Π° Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ этот ΡƒΠ·Π΅Π» листом ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ связкой. Если Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ случайный ΡƒΠ·Π΅Π», Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ g->TypesNo. Если ΡƒΠ·Π΅Π» оказался листом, Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ с большой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π»ΠΈ всС, ΠΌΡ‹ просто Π±Π΅Ρ€Ρ‘ΠΌ ΠΈΡ… ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ – Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ совсСм случайныС ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ, Π½ΠΎ это Π½Π΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ класс BNode. Π“Π»Π°Π²Π½ΠΎΠ΅ для нас – Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»Π°ΡΡŒ Π² LaTeX:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

ΠžΡΡ‚Π°Π²ΠΈΠΌ ΠΏΠΎΠΊΠ° класс BNode (ΠΌΡ‹ ΠΊ Π½Π΅ΠΌΡƒ Π΅Ρ‰Ρ‘ вСрнёмся); Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ случайной Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹. Π‘ΡƒΠ΄Π΅ΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ минимальной ΠΈ максимальной Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ (для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ минимальной Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΌΡ‹ добавляли Ρ€Π°Π½ΡŒΡˆΠ΅ Π² конструктор ΠΏΠΎΠ»Π΅ must_not_be_leaf):

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

И ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„Π°ΠΉΠ»Π° со списком студСнтов:

Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈ main, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ ΠΈ процСссит Ρ„Π°ΠΉΠ»Ρ‹ со списками студСнтов:

Но постойтС, ΡΠ»Ρ‹ΡˆΡƒ я голос Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ читатСля. Π‘ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΅ Π΅Ρ€ΡƒΠ½Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒΡΡ – нСбось, добрая ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Ρ‚Π°ΠΊ сгСнСрированных случайных Ρ„ΠΎΡ€ΠΌΡƒΠ» окаТутся Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ! Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½ΠΎ, Ρ‚ΠΎ Π²Π΅Ρ€Π½ΠΎ – ΠΏΡ€ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Π½Π΅ знаю, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½Π° случайно сгСнСрированная Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° Π²ΠΈΠ΄Π° \varphi = x изрядно ΠΏΠΎΠ΄ΠΌΠΎΡ‡ΠΈΡ‚ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ нашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΌΡ‹ научимся это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. Для этого ΠΌΡ‹ просто подсчитаСм, сколько Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ встрСчаСтся связок ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ всС, Π° связки – хотя Π±Ρ‹ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅. ДобавляСм Π² BNode ΠΎΠ±Ρ…ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹:

ΠΈ вписываСм ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π½Π° Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΡΡ‚ΡŒ:

МоТно Π΅Ρ‰Ρ‘ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π΅ являСтся Π»ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°, скаТСм, всСгда истинной, Π½ΠΎ я этого ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΠΈΠ» Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ – Ссли слоТная Π½Π° Π²ΠΈΠ΄ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° Π²Π΄Ρ€ΡƒΠ³ окаТСтся тоТдСствСнно истинной, Ρ‚Π΅ΠΌ интСрСснСС Π±ΡƒΠ΄Π΅Ρ‚ это Π·Π°Π΄Π°Π½ΠΈΠ΅ для студСнта. А ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Ρ‚ΠΈΠΏΠ° Β«x ΠΈΠ»ΠΈ Π½Π΅ xΒ» Π² нашСм Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π° Π½Π΅ случайно.

РСшСния

БкСптичСски настроСнный Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ Π½Π° этом мСстС Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚: Π½Ρƒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‚Ρ‹ моТСшь ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ over 9000 Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ, Π½ΠΎ вСдь Ρ‚Ρ‹ Π·Π°ΠΌΡƒΡ‡Π°Π΅ΡˆΡŒΡΡ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ! И Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ студСнта Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ истинности – занятиС для ΠΎΡ‡Π΅Π½ΡŒ ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π΄ΡƒΡ…ΠΎΠΌ людСй, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я сСбя Π½Π΅ ΠΎΡ‚Π½ΠΎΡˆΡƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΠΈ процСсс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. БовсСм Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ получится (студСнты всё Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, написанныС Π² свободном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΎΡ‚ Ρ€ΡƒΠΊΠΈ), поэтому достаточно Π±ΡƒΠ΄Π΅Ρ‚ просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΠ°ΠΌΡƒΡŽ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ этой Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π—Π°Π²ΠΎΠ΄ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ LaTeX-шаблон для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ:

Π―, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΡΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ – Π΄Π°Π²Π°ΠΉΡ‚Π΅ просто Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ истинности. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ всСм Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ значСниям ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ истинностноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΈ красиво ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² TeX’Π΅. ДобавляСм Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² класс BNode:

Π° Π·Π°Ρ‚Π΅ΠΌ добавляСм это Π² process_one_student_file_boolean:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² ΠΏΠ°Ρ€Ρƒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π·Π°Π΄Π°Π½ΠΈΠΉ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€) получаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ), ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ становится Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

И Π²ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ – полдня Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π·Π°Π΄Π°Π½ΠΈΠΉ с Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ, всё красиво ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΎ ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Π²Ρ‹Π΄Π°Ρ‡Π΅ студСнтам. Если интСрСсно, ΠΊΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅, Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π€Π°ΠΉΠ» с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ лишний Ρ€Π°Π· Π½Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ студСнтам – ΠΎΠ½ΠΈ сСйчас ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ€Π΅ΡˆΠ°ΡŽΡ‚ это домашнСС Π·Π°Π΄Π°Π½ΠΈΠ΅. Π”ΡƒΠΌΠ°ΡŽ, Ссли ΠΌΠΎΡ‘ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΠ΅ Π² Π“Π£-Π’Π¨Π­ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒΡΡ, эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΠ° ΠΌΠ½Π΅ Π΅Ρ‰Ρ‘ Π½Π΅ Ρ€Π°Π· послуТит; блиТайший шанс Π΅Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ – Π±ΠΈΠ»Π΅Ρ‚Ρ‹ для письмСнного экзамСна Π² Ρ‚Π΅Ρ… ΠΆΠ΅ Π³Ρ€ΡƒΠΏΠΏΠ°Ρ….

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программиста

ВступлСниС

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ. Π― занимаюсь ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ 3D-Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ приступил ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ основ кибСрбСзопасности. БСйчас Π² процСссС ΡƒΡ‡Π΅Π±Ρ‹ столкнулся с интСрСсной ситуациСй, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ слоТныС матСматичСскиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ я ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ смотрСл Π½Π° ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΈ Π½Π΅ любил Π΅Ρ‘. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΡ‘ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ± этом ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π΅ измСнилось, ΠΈ я Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ, ΠΊΡ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ» ΠΈΠ΄Ρ‚ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Ρ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ большС тСорСтичСской, Π½ΠΎ Ссли Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ подтвСрТдСния Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ сдСлаю Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ….

Основная ΠΌΡ‹ΡΠ»ΡŒ

Один ΠΈΠ· самых частых вопросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ, люди, Π΄Π°Π»Ρ‘ΠΊΠΈΠ΅ ΠΎΡ‚ программирования, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… стСрСотипов соврСмСнности: Π½ΡƒΠΆΠ½Π° Π»ΠΈ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° программисту? И вСдь Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π° этот вопрос Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ даст ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π°. Π­Ρ‚ΠΎ связанно с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ языки программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ популярны ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, сСйчас, способны Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΡ‡Π΅Π½ΡŒ быстро, Π° ΠΈΡ… инструмСнтарий ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ сдСлан Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ дискомфорта Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ большС Π² Frontend, Backend ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сСбС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ языков Π½ΠΈΠΊΠΎΠ³ΠΎ уровня.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² этих сфСрах ΠΈ ΠΏΠΈΡˆΡƒΡ‚ Π½Π° JavaScript, Python, PHP ΠΈ Ρ‚. Π΄. Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ дСньги, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² высокоуровнСвом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π·Π½Π°ΡŽΡ‚ нСсколько Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ слоТных матСматичСских вычислСний. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв. Всё это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, особСнно, ΠΊΠΎΠ³Π΄Π° люди Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ хотят. И ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ Π·Π°Π΄Π°ΡŽΡ‚ вопрос, «НуТна Π»ΠΈ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°Β» говорят, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½Π° лишь базовая для Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚, Π° Π²ΠΎΡ‚ для Π±ΠΎΠ»Π΅Π΅ слоТных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ стоит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈ послоТнСС школьной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

И Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ сайты, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽ Π½Π° Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ вопрос. Говорят, Ρ‡Ρ‚ΠΎ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Π°. ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ-это слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅. И Ρ‡Ρ‚ΠΎ дальшС ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠΎΠ½Π° ΠΈΠ΄Ρ‚ΠΈ Π½Π΅ стоит.

Π’ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ. Однако стоит ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎ ΠΎΠ΄Π½Ρƒ Π²Π°ΠΆΠ½ΡƒΡŽ Π΄Π΅Ρ‚Π°Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠ·Π²ΡƒΡ‡ΠΈΠ²Π°Π΅Ρ‚. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вСдь всС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈ Π­Π’Πœ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. И Ρ‡Ρ‚ΠΎ Ρƒ истоков всСго программирования стоит ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°.

Вся программная Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ° связана с числами. Π’ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (1 ΠΈ 0). ИмСнно Π½Π° этом ΠΊΠΎΠ΄Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ систСмы, начиная ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΈ заканчивая Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹ΠΌΠΈ сСтями. Всё, Ρ‡Ρ‚ΠΎ связанно с вычислСниями, всСгда взаимодСйствуСт ΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ.

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

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

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ всС ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ изучСния Π‘/Π‘++, Java ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков, Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π³Π΄Π΅ процСсс понимания направлСния ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΉ, ΠΈ платят Π½Π΅ Ρ…ΡƒΠΆΠ΅.

Π’Ρ‹Π²ΠΎΠ΄

Π—Π°Π΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ΡΡŒ, всС слоТныС Π²Π΅Ρ‰ΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° Π½ΠΈΠ·ΠΊΠΈΡ… языках ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ матСматичСскиС знания. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅Ρ‚ нСобходимости ΡƒΡ‡ΠΈΡ‚ΡŒ вСсь курс Π²Ρ‹ΡˆΠΌΠ°Ρ‚Π°, Π½ΠΎ Ссли Π²Ρ‹ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, свою ОБ, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΡ€ΡƒΡ‚ΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΈΠ»ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚, Ρ‚ΠΎ Π±Π΅Π· Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… матСматичСских Π·Π½Π°Π½ΠΈΠΉ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² Π² ЯП это Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠžΡ‚Π²Π΅Ρ‡Π°Ρ Π½Π° вопрос, «НуТна Π»ΠΈ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° программисту? Β», я ΠΌΠΎΠ³Ρƒ смСло Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚: Β«Π”Π°Β». Каким Π±Ρ‹ Π½ΠΈ Π±Ρ‹Π» программист ΠΈ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ Π½ΠΈ Π΄Π΅Π»Π°Π», Ρ‡Π΅ΠΌ большС Π·Π½Π°Π½ΠΈΠΉ Π² Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… областях ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ для Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊ спСциалиста.

НСльзя ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°Ρ‚ΡŒ этой Π½Π°ΡƒΠΊΠΎΠΉ, ΠΈ ΡƒΠΆ Ρ‚ΠΎΡ‡Π½ΠΎ нСльзя Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ достаточно Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слоТСния, вычитания, умноТСния ΠΈ дСлСния. А ΠΊΠ°ΠΊ Π²Ρ‹ считаСтС?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

👨‍🎓️ НуТны Π»ΠΈ программисту ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, английский язык, тСория Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов

Ilya Ginsburg

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов

Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π½ΡŽΠ°Π½ΡΡ‹. Π’Π°ΠΌ приходится Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ Π½Π° ΠΌΠ°Π½Π΅Ρ€ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠ³ΠΎ «ΠΊΠΎΠΏΠ°Ρ‚ΡŒ ΠΎΡ‚ Π·Π°Π±ΠΎΡ€Π° ΠΈ Π΄ΠΎ ΠΎΠ±Π΅Π΄Π°». Или ваш ΠΊΠΎΠ΄, написанный «Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅» Π·Π° ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Или ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π΄Π°Π²Π½ΠΎ описанноС Π½Π° stackoverflow.com, Π½ΠΎ Π²Ρ‹ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ-английски. Или Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°, Π° для вас это Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ «Ρ…Π°Ρ€Π°ΠΊΠΈΡ€ΠΈ». Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π°Ρ‡Π°Π»ΡŒΡΡ‚Π²Ρƒ Π½Π°ΠΏΠ»Π΅Π²Π°Ρ‚ΡŒ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡΠΏΡ€Π°Π²ΠΈΡ‚Π΅ΡΡŒ с этими ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, Π½ΠΎ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ Π²Ρ‹ обязаны – «Π²Ρ‹ ΠΆΠ΅ программист»! Π—Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π²Π°ΠΌ платят эдакиС Π΄Π΅Π½ΡŒΠΆΠΈΡ‰ΠΈ?

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π”Π°Π²Π½Ρ‹ΠΌ-Π΄Π°Π²Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ большими, Π° Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹ программистов – малСнькими, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист Π±Ρ‹Π» ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΌ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ гСроя «ΠŸΠΎΠ½Π΅Π΄Π΅Π»ΡŒΠ½ΠΈΠΊΠ° начинаСтся Π² субботу» Π±Ρ€Π°Ρ‚ΡŒΠ΅Π² Π‘Ρ‚Ρ€ΡƒΠ³Π°Ρ†ΠΊΠΈΡ…, программиста Π‘Π°ΡˆΡƒ ΠŸΡ€ΠΈΠ²Π°Π»ΠΎΠ²Π°?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов

— ΠšΡ€ΠΈΡΡ‚ΠΎΠ±Π°Π»ΡŒ Π₯ΠΎΠ·Π΅Π²ΠΈΡ‡, – сказал я. – Π― Π΅Π΅ всС-Ρ‚Π°ΠΊΠΈ Ρ€Π΅ΡˆΠΈΠ». Π’Ρ‹ Π±Ρ‹Π»ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΏΡ€Π°Π²Ρ‹. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎ Π»ΡŽΠ±Ρ‹ΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ пСрСмСнным…
…Я ΠΎΡ‚Π΄Π°Π» Π΅ΠΌΡƒ листки, ΠΎΠ½ сСл рядом со мною, ΠΈ ΠΌΡ‹ вмСстС Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ с Π½Π°Ρ‡Π°Π»Π° ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈ с наслаТдСниСм просмаковали Π΄Π²Π° ΠΈΠ·ΡΡ‰Π½Π΅ΠΉΡˆΠΈΡ… прСобразования, ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… подсказал ΠΌΠ½Π΅ ΠΎΠ½, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ нашСл я сам…

– Π­Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ. Π­Ρ‚ΠΎ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ стыдно ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ.

Аркадий ΠΈ Борис Π‘Ρ‚Ρ€ΡƒΠ³Π°Ρ†ΠΊΠΈΠ΅, «ПонСдСльник начинаСтся Π² субботу»

На ΠΌΠΈΠ½ΡƒΡ‚ΠΎΡ‡ΠΊΡƒ: ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ программист (ΠΏΡƒΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π·Π°Π²Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ) Π·Π½Π°Π» ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π² Π½Π΅ΠΉ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, достойноС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ! Π’ΠΎ Π΅ΡΡ‚ΡŒ, фактичСски Π±Ρ‹Π» ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΌ. А ΠΊΠ°ΠΊ ΠΆΠ΅ Π΅Ρ‰Π΅? Π’ Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΡΡ‡ΠΈΡ‚Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Π’ ΠΌΠΎΠ΅ΠΌ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ Π½Π° Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π³ΠΎΡ€Π΄ΠΎ значится ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ – ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊ. Π₯отя всС ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ нас ΡƒΡ‡Π°Ρ‚ Π½Π° программистов. Нас Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ числСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слоТных Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя Ρ€Π΅ΡˆΠΈΡ‚ΡŒ аналитичСски – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, уравнСния тСплопроводности. ΠŸΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π»ΠΈ это Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅? Пока Π½Π΅Ρ‚, Π½ΠΎ Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ. Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ нуТности для программиста, всю Π²Ρ‹ΡΡˆΡƒΡŽ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ части:

ДискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ структуры ΠΈ содСрТит мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ². Π‘Π°ΠΌΡ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π» для программистов – это матСматичСская Π»ΠΎΠ³ΠΈΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ программисту логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Ρ€ΠΎΠ΄Π΅ and, or, ΠΈ not. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ срабатываСт, Ссли Π²Π΅Ρ€Π½ΠΎ a, Π½ΠΎ Π½Π΅ b, ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π²Π΅Ρ€Π½ΠΎ b, Π½ΠΎ Π½Π΅ a:

Если Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ, Ρ‚ΠΎ сразу ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ «ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜», ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅, Π½ΠΎ ΠΈ станСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС:

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ «ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ» логичСскиС выраТСния ΠΈΠ»ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒ ΠΈΡ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ программисту Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь:

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ваТнСйший Ρ€Π°Π·Π΄Π΅Π» дискрСтной ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ для программистов – это тСория Π³Ρ€Π°Ρ„ΠΎΠ². Если слово «Π³Ρ€Π°Ρ„» для вас ассоциируСтся с Π³Ρ€Π°Ρ„ΠΎΠΌ ΠœΠΎΠ½Ρ‚Π΅-ΠšΡ€ΠΈΡΡ‚ΠΎ, Π° Π½Π΅ со структурой Π΄Π°Π½Π½Ρ‹Ρ…, состоящСй ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΡ… ΠΈΡ… Ρ€Π΅Π±Π΅Ρ€, Π²Ρ‹ рискуСтС Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΡ‚ΡŒΡΡ Π½Π° любом собСсСдовании, Π½ΠΎ Π΅Ρ‰Π΅ ΠΈ ΠΎΠΏΠΎΠ·ΠΎΡ€ΠΈΡ‚ΡŒΡΡ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистовБ Ρ‡Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ слово «Π³Ρ€Π°Ρ„» для программиста

ВСория Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для программистов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ слоТных Π·Π°Π΄Π°Ρ‡ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π³Ρ€Π°Ρ„ΠΎΠ², ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² этих Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡. ΠžΡ‡Π΅Π½ΡŒ популярным ΠΏΠΎΠ΄Π²ΠΈΠ΄ΠΎΠΌ Π³Ρ€Π°Ρ„Π° являСтся Π΄Π΅Ρ€Π΅Π²ΠΎ – это связный Π³Ρ€Π°Ρ„ Π±Π΅Π· Ρ†ΠΈΠΊΠ»ΠΎΠ². ПолноС Π½Π΅Π·Π½Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΡ….

Алгоритмы Π½Π° Π³Ρ€Π°Ρ„Π°Ρ… ΠΎΡ‡Π΅Π½ΡŒ часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. МоСй ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π±Ρ‹Π»Π° визуализация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… связСй издСлия, ΠΈ схСма этих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… связСй, разумССтся, Π±Ρ‹Π»Π° Π³Ρ€Π°Ρ„ΠΎΠΌ. Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Π΄ΠΎ сих ΠΏΠΎΡ€ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° ΠΈ популярна.

Английский язык

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов

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

Иногда Π²Π°ΠΌ придСтся ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π±Π·Π°Ρ†-Π΄Ρ€ΡƒΠ³ΠΎΠΉ – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π΄Π°Ρ‚ΡŒ вопрос Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ ΠΈΠ»ΠΈ Π² ΠΎΡ‚Π΄Π΅Π» тСхничСской ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΈΡΠ°Ρ‚ΡŒ сочинСния Π²Ρ€ΠΎΠ΄Π΅ «London is the capital of Great Britain» Π²Π°ΠΌ Π΅Π΄Π²Π° Π»ΠΈ понадобится, это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ особых трудностСй, Ссли Π²Ρ‹ ΡƒΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ сдСлаСтС ΠΏΠ°Ρ€Ρƒ ошибок, Π½Π΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ – лишь Π±Ρ‹ вас ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ поняли.

МногиС Ρ„ΠΈΡ€ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° Π—Π°ΠΏΠ°Π΄, ΠΈ Ρ‚Π°ΠΌ рСгулярно проводятся совСщания Π½Π° английском языкС. Π’ΠΎΡ‚ Ρ‚Π°ΠΌ Π²Π°ΠΌ ΡƒΠΆΠ΅ понадобятся ΠΈ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΈ Π°ΡƒΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π΄Π°ΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΈΠ΅ Ρ„ΠΈΡ€ΠΌΡ‹ прямо ΠΏΠΈΡˆΡƒΡ‚ Π² своих вакансиях Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ «English – Upper-Intermediate». Высококлассному спСциалисту с большим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±ΠΈΠ΄Π½ΠΎ ΡƒΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ вакансии Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° нСзнания языка.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΠΈΡ€ΠΌΡ‹ ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ своим сотрудникам бСсплатныС курсы английского языка. НС упускайтС эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ! Π—Π½Π°Π½ΠΈΠ΅ языка – это Π½Π΅ ΠΈΠ·Π»ΠΈΡˆΠ΅ΡΡ‚Π²ΠΎ, Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сам ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π½Π΅ зная Π΄Π°ΠΆΠ΅ английского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°.

ВСория Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов

ВСория Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ количСство рСсурсов (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ), Π° Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ Π΅Π³ΠΎ зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² исходных Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. НапримСр, Ρ†ΠΈΠΊΠ» ΠΏΠΎ всСм элСмСнтам массива ΠΈΠΌΠ΅Π΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(N), Π³Π΄Π΅ N – количСство элСмСнтов массива. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ количСство Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ N. ΠžΠ±Ρ‰Π΅ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстрой сортировки (Π² срСднСм) Ρ€Π°Π²Π½Π° O(N * logN), Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска – O(log N). Поиск Π² Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π΅ происходит Π΅Ρ‰Π΅ быстрСС: ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π°Ρ… ΠΈ достаточном Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(1), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…! Π­Ρ‚ΠΈΠΌ ΠΈ обусловлСна ΡˆΠΈΡ€ΠΎΠΊΠ°Ρ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° Π½ΠΈΡ… словарСй (dictionary) ΠΈ мноТСств (set).

ИспользованиС Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° – это ΠΌΠΈΠ½Π° Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ дСйствия, залоТСнная ΠΏΠΎΠ΄ ваш ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ взяли Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°, Π½Π΅ Π·Π½Π°ΡŽΡ‰Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск. Как, ΠΏΠΎ-Π²Π°ΡˆΠ΅ΠΌΡƒ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт Π² массивС? ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ всСго массива – Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ опСрация, которая Π΄Π°ΠΆΠ΅ для ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² элСмСнтов Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько сСкунд, Ρƒ Π½Π΅Π³ΠΎ Π·Π°ΠΉΠΌΠ΅Ρ‚ нСсколько Π΄Π½Π΅ΠΉ, нСдСль ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ мСсяцСв. ИмСнно поэтому Ρ‚ΠΈΠΌΠ»ΠΈΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ€Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ Π΅Π΅ основ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ своСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹.

ВСорСтичСски, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΈ Π½Π΅ зная ΠΎΠ± Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ…, Π½ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ΄ школьника-Ρ‚Ρ€ΠΎΠ΅Ρ‡Π½ΠΈΠΊΠ°. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΡΡ‚Ρ€Π°ΡˆΠ½Π΅Π΅ всСго Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ этого Π΄Π°ΠΆΠ΅ Π½Π΅ почувствуСтС! Если Π²Π°ΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ английского языка – это всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ: Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ тСкст, постоянно Π»Π΅Π·Π΅Ρ‚Π΅ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ Ρ…ΡƒΠΆΠ΅, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ автоматичСским ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΎΠΌ. Если Π²Π°ΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ матСматичСской ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ – Π²Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ смоТСтС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ хотя Π±Ρ‹ почувствуСтС, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅. А Π²ΠΎΡ‚ люди, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ± Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ…, Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… «Π·Π²ΠΎΠ½ΠΎΡ‡ΠΊΠΎΠ²». Они ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΈΡˆΡƒΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСкрасно ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ всС тСсты (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π² тСстах ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Π²Π΅Π»ΠΈΠΊ), Π½ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

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

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для программистов

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ проСктирования Π±Ρ‹Π»Π° продСмонстрирована Π² ΠΊΠ½ΠΈΠ³Π΅ Π€.Брукса «ΠœΠΈΡ„ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎ-мСсяц», Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠ΅ΠΉ Π² Π΄Π°Π»Π΅ΠΊΠΎΠΌ 1975-ΠΌ, Π½ΠΎ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ², Π° Π½Π΅ Π½Π° программистов. Π’ 1994-ΠΌ Π­. Π“Π°ΠΌΠΌΠ°, Π . Π₯Π΅Π»ΠΌ, Π . ДТонсон ΠΈ Π”. ВлиссидСс (Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ «Π±Π°Π½Π΄ΠΎΠΉ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…», «Gang of Four») ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΊΠ½ΠΈΠ³Ρƒ «ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования», Π·Π°Π»ΠΎΠΆΠΈΠ²ΡˆΡƒΡŽ основы соврСмСнного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ПО. Π’ ΠΊΠ½ΠΈΠ³Π΅ описано мноТСство Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π½Π°Π·Π²Π°Π»ΠΈ «ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌΠΈ»), ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈ это стало основным Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Π΅Π΅ популярности. Π‘Ρ‚Π°Π»ΠΎ ΠΌΠΎΠ΄Π½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ вопросы ΠΏΠΎ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌ проСктирования Π½Π° собСсСдованиях, ΠΈ ΡŽΠ½Ρ‹Π΅ соискатСли Π½Π°Ρ‡Π°Π»ΠΈ Π·Π°ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ. (Π― Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ SOLID, появившийся ΠΏΠΎΠ·Π΄Π½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ слабо ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ – Π½ΠΎ Π·Π°ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ для собСсСдований Π²Π°ΠΌ Ρ‚ΠΎΠΆΠ΅ придСтся).

К соТалСнию, Π½Π°Π²Ρ‹ΠΊΠΈ кодирования ΠΈ проСктирования ΠΎΡ‡Π΅Π½ΡŒ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π³Π΅Π½ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ вряд Π»ΠΈ окаТСтся Π΅Ρ‰Π΅ ΠΈ супСр-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ (Π° ΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΊΠΎΠ΅ всС ΠΆΠ΅ случаСтся, Π² ΠΌΠΈΡ€Π΅ появляСтся ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ). Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ – это юноша, ΠΎΡ‡Π΅Π½ΡŒ быстро Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Π΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ Π΅Ρ‰Π΅ быстрСС. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ – это Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ с большим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ строки ΠΊΠΎΠ΄Π° Π½Π° протяТСнии Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ нСдСль. Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° – ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π²ΠΎΡ‚ ΠΎΠ½ ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚. РазумССтся, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡŽΡ‰ΠΈΠ΅ ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° просто бСздСльником! ИмСнно поэтому ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π΅ ставят ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π² ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ², Π° ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‚ для Π½Π΅Π³ΠΎ ΠΎΡΠΎΠ±ΡƒΡŽ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ «Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°» (software architect).

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнного, Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ понимания ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° проСктирования Π΄Π°Π΅Ρ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Bridge (ΠœΠΎΡΡ‚). НачнСм с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° использования этого ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Π½Π° C# (ΠΊΠΎΠ΄ взят ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Microsoft):

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ IDBConnection Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠœΠΎΡΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ клиСнтским ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π”). ЦСль ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° – полная изоляция ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΡ‚ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π”. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌ этот интСрфСйс, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой экзСмпляр класса, унаслСдованного ΠΎΡ‚ DBConnection (ΠΊΠΎΠ΄ создаСт экзСмпляры SqlConnection, OdbcConnection ΠΈ OleDbConnection), Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ. Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ клиСнтского прилоТСния ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ-настоящСму ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ½Ρ‹ΠΌ, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠœΠΎΡΡ‚Π° – постСпСнно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… Π‘Π”, которая Π½Π΅ заставит Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ. ВаТная ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°: для клиСнтского прилоТСния ΠΎΠ±Π° «Π±Π΅Ρ€Π΅Π³Π°», соСдиняСмых ΠœΠΎΡΡ‚ΠΎΠΌ, всСгда ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ – Π‘Π”), Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° «Π΅Π³ΠΎ» Π±Π΅Ρ€Π΅Π³Ρƒ находится абстрактноС прСдставлСниС ΠΎ Π‘Π”, Π° Π½Π° «Ρ‡ΡƒΠΆΠΎΠΌ» – Π΅Π΅ конкрСтная рСализация.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ взглянитС, ΠΊΠ°ΠΊΠΎΠΉ «ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠœΠΎΡΡ‚Π°» ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° сайтС ΠœΠ΅Ρ‚Π°Π½ΠΈΡ‚. Π’Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ программиста обращаСтся ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ языка программирования Ρ‡Π΅Ρ€Π΅Π· «ΠΌΠΎΡΡ‚». НСпонятно, Π·Π°Ρ‡Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ языков программирования ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² программистов, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π°ΠΆΠ΅ Π½Π΅ Π² этом. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ потрСбуСтся ΠΎΡ‚ языков программирования – Π° это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ваш «ΠΌΠΎΡΡ‚», скорСС всСго, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя придСтся ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° ΠΈΠ· Ρ†Π΅Π»Π΅ΠΉ настоящСго ΠœΠΎΡΡ‚Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π·Π°Ρ‰ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΊΠ°ΠΊ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ IDBConnection?). Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π· ΠΈ навсСгда ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π²ΠΈΠ΄ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ языками ΠΈ программистами! ΠšΡ‚ΠΎ сказал, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист Π·Π½Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ язык? Π’Π°ΠΊΠΈΠ΅ «ΠΌΠΎΡΡ‚Ρ‹» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ напрасно ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π½Π΅ приносят Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·Ρ‹.

А Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° с сайта Refactoring Guru. Π—Π΄Π΅ΡΡŒ строится «ΠΌΠΎΡΡ‚» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡƒΠ»ΡŒΡ‚Π°ΠΌΠΈ ΠΈ управляСмыми с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ устройствами. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысл, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с ΠΏΡƒΠ»ΡŒΡ‚Π° ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Π½Π° устройствС (ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ всСгда ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с абстрактным интСрфСйсом ΠœΠΎΡΡ‚Π°, ΠΈΠ·Π±Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ Π΅Π³ΠΎ ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ), Π½ΠΎ всС-Ρ‚Π°ΠΊΠΈ ΠΎΠ½ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅Π½. НС всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€ΠΎΠΌ ΠΈ Ρ€Π°Π΄ΠΈΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ. Но самоС Π³Π»Π°Π²Π½ΠΎΠ΅ – ΠΏΡƒΠ»ΡŒΡ‚ Π½Π΅ скрываСт ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ: ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ смотрит Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€, Π° Π½Π΅ ΠΏΡƒΠ»ΡŒΡ‚, ΠΈ ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ Ρ€Π°Π΄ΠΈΠΎ, Π° Π½Π΅ ΠΏΡƒΠ»ΡŒΡ‚. А ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ основная Ρ†Π΅Π»ΡŒ ΠœΠΎΡΡ‚Π° – ΠΈΠΌΠ΅Π½Π½ΠΎ изоляция ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π£Π΄Π°Ρ‡ΠΈ Π²Π°ΠΌ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Π΅Π³ΠΎ Π²Π°ΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ устранСния этих ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *