Модулдук арифметика: бул эмне жана кайда колдонулат

Мазмуну:

Модулдук арифметика: бул эмне жана кайда колдонулат
Модулдук арифметика: бул эмне жана кайда колдонулат
Anonim

Математикада модулдук арифметика – бүтүн сандар үчүн эсептөө системасы, анын жардамы менен алар белгилүү бир мааниге жеткенде – модулга (же алардын көптүк санына) жеткенде «айланышат». Илимдин бул түрүнө заманбап мамилени Карл Фридрих Гаусс 1801-жылы жарык көргөн Disquisitiones Arithmeticae аттуу эмгегинде иштеп чыккан. Компьютердик илимпоздор бул ыкманы колдонууну абдан жакшы көрүшөт, анткени ал абдан кызыктуу жана сандар менен иштөөдө белгилүү бир жаңы мүмкүнчүлүктөрдү ачат.

Модулдук арифметиканын визуализациясы
Модулдук арифметиканын визуализациясы

Эссенция

Сааттардын саны 12ге жеткенден кийин кайра башталгандыктан, ал арифметикалык модул 12. Төмөндөгү аныктамага ылайык, 12 12ге эле эмес, 0гө да туура келет, ошондуктан " деп аталган убакытты да атаса болот. 12:00". "0:00". Анткени, 12 0 модулу 12 менен бирдей.

Модулдук арифметиканы бүтүн сандарга карата операцияларга шайкеш келген конгруенттик байланышты киргизүү аркылуу математикалык түрдө иштетүүгө болотсандар: кошуу, кемитүү жана көбөйтүү. Оң бүтүн n саны үчүн, а жана b эки саны n модулу деп аталат, эгерде алардын айырмасы a - b n санына эселенген болсо (б.а. a - b=kn болгон бүтүн k саны бар болсо).

Модулдук сандар
Модулдук сандар

Чегерүүлөр

Теориялык математикада модулдук арифметика сандар теориясынын негиздеринин бири болуп саналат, аны изилдөөнүн дээрлик бардык аспектилерине таасирин тийгизет, ошондой эле топтордун, шакекчелердин, түйүндөрдүн жана абстракттуу алгебранын теориясында кеңири колдонулат. Колдонмо математика тармагында ал компьютердик алгебрада, криптографияда, информатикада, химияда, визуалдык искусстводо жана музыкада колдонулат.

Практика

Абдан практикалык колдонуу бул сериялык номер идентификаторлорунда текшерүү суммасын эсептөө. Мисалы, кээ бир жалпы китеп стандарттары арифметикалык модуль 11 (эгерде 2007-жылдын 1-январына чейин чыкса) же 10 модулу (эгерде 2007-жылдын 1-январына чейин же андан кийин чыкса) колдонот. Ошо сыяктуу эле, мисалы, Эл аралык банк эсебинин номерлери (IBANs). Бул банк эсебинин номерлериндеги колдонуучунун киргизүү каталарын аныктоо үчүн модуль 97 арифметикасын колдонот.

Химияда CAS каттоо номеринин акыркы саны (ар бир химиялык кошулма үчүн уникалдуу идентификациялык номер) текшерүү цифрасы болуп саналат. Ал CAS каттоо номеринин биринчи эки бөлүгүнүн акыркы цифрасын 1ге, мурунку цифраны 2 эсеге, мурунку цифраны 3 эсеге жана башкаларга алып, анын баарын кошуп, 10 модулунун суммасын эсептөө менен эсептелет.

Криптография деген эмне? Бул фактанын талкууланып жаткан тема менен абдан бекем байланышы бар. Криптографияда модулдук арифметика мыйзамдары RSA жана Диффи-Хеллман сыяктуу ачык ачкыч системаларынын негизинде түздөн-түз жатат. Бул жерде эллиптикалык ийри сызыктардын түбүндө жаткан чектүү талааларды берет. Ар кандай симметриялык ачкыч алгоритмдеринде, анын ичинде Өркүндөтүлгөн Шифрлөө Стандартында (AES), Эл аралык Маалымат Шифрлөө Алгоритминде жана RC4 колдонулат.

Элементардык арифметика
Элементардык арифметика

Колдонмо

Бул ыкма сандарды окуу керек болгон жерлерде колдонулат. Аны математиктер иштеп чыгышкан жана аны баары колдонушат, өзгөчө компьютердик илимпоздор. Бул Modular Arifmetic for Dummies сыяктуу китептерде жакшы жазылган. Бирок, бир катар эксперттер мындай адабияттарды олуттуу кабыл албоону сунушташат.

Информатикада модулдук арифметика көбүнчө биттик жана белгиленген туурасы тегерек маалымат структураларын камтыган башка операцияларда колдонулат. Аналитиктер аны колдонууну жакшы көрүшөт. Модулдук операция көптөгөн программалоо тилдеринде жана эсептегичтерде ишке ашырылат. Бул учурда, мындай өтүнмөнүн бир мисалы болуп саналат. Программалоодо модулдарды салыштыруу, калдык менен бөлүү жана башка амалдар да колдонулат.

Музыкада 12 арифметикалык модулу октава жана энгармония эквиваленттүү болгон он эки тондун бирдей темперамент системасын кароодо колдонулат. Башка сөз менен айтканда, 1-2 же 2-1 катышындагы ачкычтар эквиваленттүү. Музыкада жана башка гуманитардык илимдерде арифметика олуттуу роль ойнойт, бирок окуу китептериндеАдатта компьютердик илимпоздор бул жөнүндө жазышпайт.

Балдардын арифметикасы
Балдардын арифметикасы

Тогузду азайтуу ыкмасы

9s айландыруу ыкмасы кол менен ондук арифметикалык эсептөөлөрдү тез текшерүүнү сунуштайт. Ал 9 модулдук арифметикалык модулга жана өзгөчө 10 10 1 чечүүчү касиетине негизделген.

башка мисалдар бар. Арифметикалык модуль 7 белгилүү бир дата үчүн жуманын күнүн аныктоочу алгоритмдерде колдонулат. Айрыкча, Зеллердин конгруенциясы жана Кыямат алгоритми 7 арифметикалык модулду көп колдонот.

Башка колдонмолор

Криптографиядагы модулдук арифметика жөнүндө буга чейин айтылган. Бул чөйрөдө, ал жөн эле алмаштырылгыс болуп саналат. Жалпысынан модулдук арифметика укук, экономика (мисалы, оюн теориясы сыяктуу) жана коомдук илимдердин башка тармактарында да колдонмолорду табат. Башкача айтканда, ресурстарды пропорционалдуу бөлүштүрүү жана бөлүштүрүү чоң роль ойногон жерде.

Эсептөө долбоору
Эсептөө долбоору

Модульдук арифметиканын кеңири колдонулушу бар болгондуктан, салыштыруулар системасын чечүү канчалык кыйын экенин билүү маанилүү. Конгруенциялардын сызыктуу системасы көп мүчөлүк убакытта Гаусстук жоюу түрүндө чечилиши мүмкүн. Бул сызыктуу конгруенция теоремасы менен кененирээк сүрөттөлөт. Жөнөкөй арифметикалык операцияларды эффективдүү аткарууга мүмкүндүк берүү үчүн Монтгомери кыскартуу сыяктуу алгоритмдер да бар. Мисалы, чоң сандар үчүн көбөйтүү жана экспонентациялоо модулу n. Бул эмнени түшүнүү үчүн билүү үчүн абдан маанилүүкриптография. Анткени, ал жөн эле окшош операциялар менен иштейт.

Конгренция

Кээ бир операциялар, мисалы, дискреттик логарифмди же квадраттык конгруенцияны табуу, бүтүн санды факторизациялоо сыяктуу татаал жана ошондуктан криптографиялык алгоритмдердин жана шифрлөөнүн башталышы болуп саналат. Бул көйгөйлөр NP-intermediate болушу мүмкүн.

Мисалдар

Төмөндө үч ылдам C функциясы бар - экөө модулдук көбөйтүүнү аткаруу үчүн жана бири 63 битке чейинки белгисиз бүтүн сандар үчүн модулдук сандарга көтөрүү үчүн, убактылуу ашыкча.

Бүтүн сандар ачылгандан көп өтпөй (1, 2, 3, 4, 5…) алар эки топко бөлүнгөнү айкын болот:

  • Жупа: 2ге бөлүнөт (0, 2, 4, 6..).
  • Так: 2ге бөлүнбөйт (1, 3, 5, 7…).

Бул айырмачылык эмне үчүн маанилүү? Бул абстракциянын башталышы. Биз сандын өзүн эле эмес ("37") эмес, анын касиеттерин (мис., жуп же так) байкайбыз.

Бул бизге математиканы тереңирээк изилдөөгө жана конкреттүү эмес сан түрлөрүнүн ортосундагы мамилелерди табууга мүмкүндүк берет.

Манжалар менен эсептөө
Манжалар менен эсептөө

Сандын касиеттери

"Үч" болуу - бул сандын дагы бир касиети. Балким, жуп/так сыяктуу дароо эле пайдалуу эмес, бирок ал бар. Биз "он үч x үч вена=он үч" жана башкалар сыяктуу эрежелерди түзө алабыз. Бирок бул жинди. Биз ар дайым жаңы сөздөрдү айта албайбыз.

Модуль операциясы (кыскартылган mod же көп программалоо тилдеринде "%") калган учурдабөлүү. Мисалы, "5 mod 3=2", бул 5ти 3кө бөлгөндө 2 калганын билдирет.

Күнүмдүк терминдерди математикага айландырганда "жуп сан" бул жерде "0 mod 2" болот, 2ге бөлгөндө калган 0 болот. Так сан "1 mod 2" (калдыгы бар). 1).

Эсептөө приборлору
Эсептөө приборлору

Жуп жана так сандар

Жуп x жуп x так x так деген эмне? Ооба, бул 0 x 0 x 1 x 1=0. Чындыгында, жуп сан каалаган жерде көбөйтүлгөнүн көрө аласыз, анда бүт натыйжа нөлгө барабар болот.

Модулдук математиканын айласы - биз аны убакытты сактоо үчүн колдонгонбуз - кээде "саат арифметикасы" деп да аталат.

Мисалы: таңкы 7:00 (саат/саат - маанилүү эмес). 7 сааттан кийин сааттын жебеси кайда болот?

Модуляциялар

(7 + 7) mod 12=(14) mod 12=2 mod 12 [2 - 14 12ге бөлүнгөндө калган калды. ошол эле 12 сааттык саатта. Алар конгруенттүү, үч эселенген барабар белгиси менен белгиленет: 14 ≡ 2 mod 12.

Дагы бир мисал: саат 8:00. Чоң кол 25 сааттан кийин кайда болот?

8ге 25ти кошуунун ордуна, 25 саат жөн гана "1 күн + 1 саат" экенин түшүнсө болот. Жооп жөнөкөй. Ошентип, саат 1 саат алдыга - 9:00дө бүтөт.

(8 + 25) mod 12 ≡ (8) mod 12 + (25) mod 12 ≡ (8) mod 12 + (1) mod 12 ≡ 9 mod 12. Сиз интуитивдик түрдө 25ти 1ге өзгөрттүңүз жана муну коштуңуз 8.

чейин

Саатты аналогия катары колдонуп, биз саатты аныктай алабызмодулдук арифметика эрежелери жана алар иштейт.

Сандардын жана формулалардын күчү
Сандардын жана формулалардын күчү

Кошуу/Кечирүү

Саатыбызда эки жолу бирдей көрүнсүн дейли («2:00» жана «14:00»). Эгерде экөөнө тең бирдей x сааттарды кошсок, эмне болот? Ооба, алар саат боюнча бирдей суммага өзгөрөт! 2:00 + 5 саат ≡ 14:00 + 5 саат - экөө тең 7:00ду көрсөтөт.

Эмне үчүн? Экөө тең бар 2 калдыкка 5ти жөн эле кошсок болот жана алар бир эле жол менен илгерилейт. Бардык конгруенттүү сандар (2 жана 14) үчүн кошуу жана кемитүү бирдей натыйжага ээ.

Көбөйтүү ошол эле бойдон калса, билүү кыйыныраак. Эгерде 14 ≡ 2 (mod 12) болсо, эки санды тең көбөйтүп, бирдей жыйынтыкты ала алабызбы? 3кө көбөйткөндө эмне болорун карап көрөлү.

Жакшы, 2:003 × 6:00. Бирок 14:003 деген эмне?

Эсиңизде болсун, 14=12 + 2. Ошентип,

деп айта алабыз.

143=(12 + 2)3=(123) + (23)

Биринчи бөлүккө (123) көңүл бурбай коюуга болот! 14 саатка созулган 12 сааттын толуп кетиши бир нече жолу кайталанат. Бирок кимге кам көрөт? Баары бир толуп кеткенге көңүл бурбайбыз.

Арифметикалык аспаптар
Арифметикалык аспаптар

Көбөйтүү

Көбөйткөндө калганы гана маанилүү, башкача айтканда, 14:00 жана 2:00 үчүн бирдей 2 саат. Интуитивдик түрдө, мен көбөйтүүнүн модулдук математика менен байланышты өзгөртпөгөнүн ушинтип көрүп жатам (модулдук мамилелердин эки тарабын тең көбөйтүп, бирдей натыйжаны ала аласыз).

Биз муну интуитивдик түрдө жасайбыз, бирок ага ат берүү жакшы. Саат 15:00дө учуп келет. Ал14 саатка кечиктирилди. Ал саат канчада конот?

14 ≡ 2 mod 12. Андыктан, аны саат 2 деп ойлоп көрүңүз, учак таңкы саат 5те конот. Чечим жөнөкөй: 3 + 2=5 саат. Бул жөнөкөй модулдук операцияга караганда бир аз татаалыраак, бирок принцип бирдей.

Сунушталууда: