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

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

Рассмотрим Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ синтаксичСскиС конструкции прСдоставляСт ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΊΠΎΠ΄Π΅ модуля ΠΈ Π² тСкстах запросов, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° Π² ΠΊΠΎΠ΄Π΅ модуля

Π‘Π°ΠΌΡ‹ΠΉ распространСнный ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ остаток ΠΎΡ‚ дСлСния Π²ΠΎ встроСнном языкС 1Π‘ β€” использованиС Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° %. Π­Ρ‚ΠΎΡ‚ символ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ Mod Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, возвращая Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ остаСтся послС цСлочислСнного дСлСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ. Бинтаксис ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост: Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π”Π΅Π»ΠΈΠΌΠΎΠ΅ % Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ прСимущСствСнно ΠΊ цСлочислСнным Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Число с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΡ‹, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊ Π½ΠΈΠΌ. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ числам Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ΅Ρ‡Π΅Π½ΠΈΡŽ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ явной Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠ΅ΠΉ являСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ вычислСниСм.

Рассмотрим классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· складской Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ ΠΏΠΎ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ°ΠΌ, Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠΌ строго 12 Π΅Π΄ΠΈΠ½ΠΈΡ†. Π£ вас Π½Π° складС Π΅ΡΡ‚ΡŒ 50 Π΅Π΄ΠΈΠ½ΠΈΡ† Ρ‚ΠΎΠ²Π°Ρ€Π°. Бколько ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΊΠΎΡ€ΠΎΠ±ΠΎΠΊ Π²Ρ‹ собСрСтС ΠΈ сколько ΡˆΡ‚ΡƒΠΊ останСтся Π² Β«Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΉΒ» ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ Π½Π° Ρ€ΡƒΠΊΠ°Ρ…?

  • πŸ“¦ Для расчСта ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΊΠΎΡ€ΠΎΠ±ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ цСлочислСнноС Π΄Π΅Π»Π΅Π½ΠΈΠ΅: 50 / 12 = 4 (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ автоматичСски отбрасываСт Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ†Π΅Π»Ρ‹Ρ… чисСл).
  • πŸ”’ Для расчСта остатка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°: 50 % 12 = 2.
  • βœ… Π˜Ρ‚ΠΎΠ³: 4 ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΈ 2 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ‚ΠΎΠ²Π°Ρ€Π° Π² остаткС.

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° % Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с арифмСтичСской Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ Π²ΠΈΠ΄Π° Π”Π΅Π»ΠΈΠΌΠΎΠ΅ - (Π”Π΅Π»ΠΈΠΌΠΎΠ΅ / Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ) * Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, встроСнная рСализация ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ 1Π‘, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ нСбольшой Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ².

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ПовСдСниС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° остатка ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами Π² 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ матСматичСского оТидания Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… контСкстах. Π—Π½Π°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ совпадаСт со Π·Π½Π°ΠΊΠΎΠΌ Π΄Π΅Π»ΠΈΠΌΠΎΠ³ΠΎ. ВсСгда тСстируйтС Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… значСниях, Ссли Π² Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ количСства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…).

πŸ“Š Как Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ остаток ΠΎΡ‚ дСлСния Π² 1Π‘?
Для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²
Для расчСта Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² смСн
Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм
Для раздСлСния ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ

Ѐункция ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ() Π² запросах 1Π‘

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… нСпосрСдствСнно Π½Π° сторонС Π‘Π£Π‘Π” ΠΈΠ»ΠΈ встроСнного Π΄Π²ΠΈΠΆΠΊΠ° 1Π‘, использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° % Π²Π½ΡƒΡ‚Ρ€ΠΈ тСкста запроса Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся. Однако для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ читаСмости слоТных запросов ΠΈ явного указания Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ контСкстно-зависимыС конструкции. Π’ языкС запросов 1Π‘ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° являСтся стандартным срСдством вычислСния остатка прямо Π² спискС ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ условиях ΠΎΡ‚Π±ΠΎΡ€Π°.

НапримСр, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΡ€Π°Ρ‚Π½Ρ‹ 10 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠΉ аудиторской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ условиС Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ Π“Π”Π•. Бинтаксис запроса позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ матСматичСскиС выраТСния практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ запросов Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· нСобходимости Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ лишниС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ рассчитываСт, Π² ΠΊΠ°ΠΊΡƒΡŽ Ρ†Π΅Π½ΠΎΠ²ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠ½Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² зависимости ΠΎΡ‚ остатка ΠΎΡ‚ дСлСния ΠΊΠΎΠ΄Π° Ρ‚ΠΎΠ²Π°Ρ€Π° Π½Π° 3:

ВЫБРАВЬ

НомСнклатура.НаимСнованиС,

НомСнклатура.Код,

Π•Π‘Π’Π¬NULL(НомСнклатура.Код % 3, 0) КАК ΠžΡΡ‚Π°Ρ‚ΠΎΠΊΠšΠΎΠ΄Π°

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

Π“Π”Π•

НомСнклатура.Код % 3 = 1

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ НомСнклатура.Код % 3 вычисляСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Ѐункция Π•Π‘Π’Π¬NULL здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для страховки, хотя для числовых ΠΏΠΎΠ»Π΅ΠΉ справочников это Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒ, Π½ΠΎ Π² случаС соСдинСний (JOIN) с пустыми Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… ситуаций β€” ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ качСствСнного ΠΊΠΎΠ΄Π°.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ слоТныС вычислСния Π² условиях Π“Π”Π• ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запроса, Ссли ΠΏΠΎ вычисляСмому полю Π½Π΅Ρ‚ индСксов. Однако для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ остатка ΠΎΡ‚ дСлСния индСксы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ строятся, поэтому ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступныС индСксы ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ полям.

πŸ’‘

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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ цСлочислСнного дСлСния Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅

Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… особСнностСй 1Π‘ являСтся строгая типизация ΠΈ спСцифичСскоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дСлСния. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языков Π²Ρ€ΠΎΠ΄Π΅ C# ΠΈΠ»ΠΈ Java, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ для цСлочислСнного дСлСния, Π² 1Π‘ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСлСния Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл всСгда являСтся Ρ†Π΅Π»Ρ‹ΠΌ числом. Дробная Ρ‡Π°ΡΡ‚ΡŒ просто отбрасываСтся (усСкаСтся), Π° Π½Π΅ округляСтся ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° Π»ΠΎΠ³ΠΈΠΊΡƒ получСния остатка. Π€ΠΎΡ€ΠΌΡƒΠ»Π° восстановлСния Π΄Π΅Π»ΠΈΠΌΠΎΠ³ΠΎ выглядит ΠΊΠ°ΠΊ: Π”Π΅Π»ΠΈΠΌΠΎΠ΅ = (Π”Π΅Π»ΠΈΠΌΠΎΠ΅ / Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ) * Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ + (Π”Π΅Π»ΠΈΠΌΠΎΠ΅ % Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ). ПониманиС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ 10 / 3 Ρ€Π°Π²Π½ΠΎ 3, Π° Π½Π΅ 3.33, критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ написании Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² распрСдСлСния рСсурсов.

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

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² 1Π‘ Π’ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСлСния Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ остатка (%)
10 / 3 Π¦Π΅Π»ΠΎΠ΅ / Π¦Π΅Π»ΠΎΠ΅ 3 1
10.5 / 3 Число / Π¦Π΅Π»ΠΎΠ΅ 3.5 Зависит ΠΎΡ‚ контСкста*
Π¦Π΅Π»(10.5) / 3 Π¦Π΅Π»ΠΎΠ΅ / Π¦Π΅Π»ΠΎΠ΅ 3 1
-10 % 3 ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ -3 -1

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ (8.2, 8.3, 8.4 ΠΈ Π½ΠΎΠ²Π΅Π΅). Если Π²Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Π½Π° старых Ρ€Π΅Π»ΠΈΠ·Π°Ρ…, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряйтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ€Π΅Π»ΠΈΠ·Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для уточнСния повСдСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° % с Ρ‚ΠΈΠΏΠΎΠΌ Число.

Алгоритмы распрСдСлСния ΠΈ цикличСскиС Π·Π°Π΄Π°Ρ‡ΠΈ

ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ ΠΎΡ‚ дСлСния β€” это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ инструмСнт для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ цикличСской Π»ΠΎΠ³ΠΈΠΊΠΈ. Π’ 1Π‘ это часто примСняСтся ΠΏΡ€ΠΈ распрСдСлСнии Π·Π°Π΄Π°Ρ‡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ складских ячССк. Если Ρƒ вас Π΅ΡΡ‚ΡŒ N Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΈ M Π·Π°Π΄Π°Ρ‡, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ остатка ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.

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

  • πŸ‘€ ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ 1 ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π°ΠΊΠ°Π·Ρ‹, Π³Π΄Π΅ НомСр % 5 = 1.
  • πŸ‘€ ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ 2 ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π°ΠΊΠ°Π·Ρ‹, Π³Π΄Π΅ НомСр % 5 = 2.
  • πŸ‘€ ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ 5 ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π°ΠΊΠ°Π·Ρ‹, Π³Π΄Π΅ НомСр % 5 = 0 (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ остаток 0 соотвСтствуСт кратности).

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ создания слоТных Ρ‚Π°Π±Π»ΠΈΡ† соотвСтствия ΠΈ динамичСски ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму: ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Β«ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄Π°Β» Π·Π°ΠΊΠ°Π·ΠΎΠ²: ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ количСства ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² Π»ΠΎΠ³ΠΈΠΊΠ° распрСдСлСния старых Π·Π°ΠΊΠ°Π·ΠΎΠ² измСнится, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ пСрСсмотра истории ΠΈΠ»ΠΈ фиксации отвСтствСнного Π² самом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Π³ΠΎ создания.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ остаток 0 Π²Π°ΠΆΠ΅Π½?

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ нумСрация часто начинаСтся с 0, Π½ΠΎ Π² бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅ 1Π‘ сущности часто Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ с 1. ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ 0 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΡ€Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ. Если Π²Ρ‹ распрСдСляСтС ΠΏΠΎ 5 людям, Ρ‚ΠΎ 5-ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ остаток 0, Π° Π½Π΅ 5. Π­Ρ‚ΠΎ частая ошибка Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль

Бамая критичСская ошибка ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ дСлСния ΠΈ взятия остатка β€” это ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ноль. Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ такая опСрация Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π”Π΅Π»Π΅Π½ΠΈΠ΅ΠΠ°ΠΠΎΠ»ΡŒ (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ систСмноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅), Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° прСрвСтся, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ ΠΎΠΊΠ½ΠΎ с сообщСниСм ΠΎΠ± ошибкС. Π’ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… заданиях это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ остановкС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ бСзопасной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ расчСта остатка:

Ѐункция Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ‹ΠΉΠžΡΡ‚Π°Ρ‚ΠΎΠΊ(Число, Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ)

Если Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ = 0 Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ 0; // Или Число, Π² зависимости ΠΎΡ‚ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Число % Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ИспользованиС Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ позволяСт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ систСмы Π² Π½Π΅ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… ситуациях. НапримСр, ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников, Π³Π΄Π΅ ΠΏΠΎΠ»Π΅ Β«ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π² ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅Β» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ пустым ΠΈΠ»ΠΈ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ, такая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° спасСт вСсь процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΡ‚ ΠΊΡ€Π°Ρ…Π°.

πŸ’‘

ВсСгда провСряйтС Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π½Π° равСнство Π½ΡƒΠ»ΡŽ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° %. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠ΄ΠΈΠ½ для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π° 1Π‘.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ

Π’ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… конфигурациях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ 1Π‘:БухгалтСрия ΠΈΠ»ΠΈ 1Π‘:Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ΠΉ, остаток ΠΎΡ‚ дСлСния скрыт Π²Π½ΡƒΡ‚Ρ€ΠΈ слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². НапримСр, ΠΏΡ€ΠΈ расчСтС Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для опрСдСлСния количСства ΠΏΠΎΠ»Π½Ρ‹Ρ… мСсяцСв ΠΈ Π΄Π½Π΅ΠΉ Π² Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΌ мСсяцС ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ ΠΈΠ»ΠΈ ΡƒΠ²ΠΎΠ»ΡŒΠ½Π΅Π½ΠΈΠΈ сотрудника. Π’Π°ΠΊΠΆΠ΅ это Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для расчСта Π½Π°Π»ΠΎΠ³ΠΎΠ², Π³Π΄Π΅ суммы ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ ΠΊΠΎΠΏΠ΅Π΅ΠΊ, Π° накоплСнная ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π³Π΄Π΅-Ρ‚ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Ρ€Π°Π±ΠΎΡ‚Π° с ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄Π°ΠΌΠΈ. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ†ΠΈΡ„Ρ€Π° ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄Π° EAN-13 рассчитываСтся с использованиСм взвСшСнной суммы Ρ†ΠΈΡ„Ρ€, Π³Π΄Π΅ вСса Ρ‡Π΅Ρ€Π΅Π΄ΡƒΡŽΡ‚ΡΡ (1 ΠΈ 3). Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ шаг вычислСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы часто Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ дополнСния Π΄ΠΎ блиТайшСго числа, ΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ 10, Ρ‡Ρ‚ΠΎ ΠΏΠΎ сути являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊ Π²Π·ΡΡ‚ΠΈΡŽ остатка, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ остаток.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ 1Π‘ Π²Π°ΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡ΡƒΠΆΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ эти ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ΄Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° Π‘ΡƒΠΌΠΌΠ° - Π¦Π΅Π»(Π‘ΡƒΠΌΠΌΠ° / Π‘Π°Π·Π°) * Π‘Π°Π·Π°, Π·Π½Π°ΠΉΡ‚Π΅: ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ ручная рСализация взятия остатка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ смСло Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ % для упрощСния.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ % для Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… чисСл Π² 1Π‘?

ВСхничСски ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ссли Ρ‚ΠΈΠΏΡ‹ совмСстимы, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ % ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для цСлочислСнной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ. Для Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… чисСл Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠžΠΊΡ€ ΠΈΠ»ΠΈ матСматичСскиС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ с явным ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ точности, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ прСдставлСниС Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… чисСл Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ.

Π§Π΅ΠΌ отличаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ % Π² 1Π‘ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Mod Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках?

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π°. Однако Π² 1Π‘ сильная Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Если Π² C# Ρ‚ΠΈΠΏ decimal Π²Π΅Π΄Π΅Ρ‚ сСбя прСдсказуСмо, Ρ‚ΠΎ Π² 1Π‘ Ρ‚ΠΈΠΏ Число ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ β€” Π² 1Π‘ Π½Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ТСстко Π·Π°Π΄Π°Π½ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ остаток ΠΎΡ‚ дСлСния Π² запросС, Ссли ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ NULL?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π•Π‘Π’Π¬NULL. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π•Π‘Π’Π¬NULL(ПолС % Π”Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, 0). Если ΠΏΠΎΠ»Π΅ содСрТит NULL, вся арифмСтичСская опСрация Π²Π΅Ρ€Π½Π΅Ρ‚ NULL, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ строку ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈΠ»ΠΈ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° NULL ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π° для Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

ВлияСт Π»ΠΈ использованиС остатка ΠΎΡ‚ дСлСния Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…?

Π‘Π°ΠΌΠ° ΠΏΠΎ сСбС опСрация вычислСния остатка выполняСтся процСссором ΠΎΡ‡Π΅Π½ΡŒ быстро. Однако, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΅Ρ‘ Π² условии Π“Π”Π• большого запроса ΠΏΠΎ нСиндСксируСмому полю, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Table Scan), Ρ‡Ρ‚ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ индСксным полям ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 5 % 10 Π² 1Π‘?

Оно Π²Π΅Ρ€Π½Π΅Ρ‚ 5. Π­Ρ‚ΠΎ частый источник ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹. Если Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ мСньшС дСлитСля, Ρ‚ΠΎ цСлая Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ‚ дСлСния Ρ€Π°Π²Π½Π° 0, Π° остаток Ρ€Π°Π²Π΅Π½ самому Π΄Π΅Π»ΠΈΠΌΠΎΠΌΡƒ. Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ: 5 = 0 * 10 + 5.