Модульдік арифметика: бұл не және ол қайда қолданылады

Мазмұны:

Модульдік арифметика: бұл не және ол қайда қолданылады
Модульдік арифметика: бұл не және ол қайда қолданылады
Anonim

Математикада модульдік арифметика бүтін сандарды есептеу жүйесі болып табылады, оның көмегімен олар белгілі бір мәнге – модульге (немесе олардың көпше түріне) жеткенде «айналдырады». Ғылымның бұл түріне заманауи көзқарасты Карл Фридрих Гаусс 1801 жылы жарияланған Disquisitiones Arithmeticae еңбегінде жасады. Компьютер ғалымдары бұл әдісті қолдануды ұнатады, өйткені ол өте қызықты және сандармен операцияларда белгілі бір жаңа мүмкіндіктер ашады.

Модульдік арифметиканың көрнекілігі
Модульдік арифметиканың көрнекілігі

Эссенция

Сағат саны 12-ге жеткеннен кейін қайта басталатындықтан, бұл арифметикалық модуль 12. Төмендегі анықтамаға сәйкес 12 саны 12-ге ғана емес, 0-ге де сәйкес келеді, сондықтан " деп аталатын уақытты да атауға болады. 12:00". «0:00». Өйткені, 12 0 модулімен 12 бірдей.

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

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

Шегерімдер

Теориялық математикада модульдік арифметика сандар теориясының негіздерінің бірі болып табылады, оны зерттеудің барлық дерлік аспектілеріне әсер етеді, сонымен қатар топтар, сақиналар, түйіндер және абстрактілі алгебра теорияларында кеңінен қолданылады. Қолданбалы математика саласында ол компьютерлік алгебрада, криптографияда, информатикада, химияда, бейнелеу өнерінде және музыкада қолданылады.

Тәжірибе

Өте практикалық қолдану сериялық нөмір идентификаторларындағы бақылау сомасын есептеу болып табылады. Мысалы, кейбір жалпы кітап стандарттары арифметикалық модуль 11 (егер 2007 жылдың 1 қаңтарына дейін шығарылған болса) немесе 10 модулі (2007 жылдың 1 қаңтарына дейін немесе одан кейін шығарылған болса) пайдаланады. Сол сияқты, мысалы, Халықаралық банктік шот нөмірлерінде (IBAN). Бұл банктік шот нөмірлеріндегі пайдаланушы енгізу қателерін анықтау үшін модуль 97 арифметикасын пайдаланады.

Химияда CAS тіркеу нөмірінің соңғы саны (әр химиялық қосылыс үшін бірегей сәйкестендіру нөмірі) тексеру саны болып табылады. Ол CAS тіркеу нөмірінің алғашқы екі бөлігінің соңғы цифрын 1-ге көбейту, алдыңғы цифрды 2 есе, алдыңғы цифрды 3 есе және т.б. алып, оның барлығын қосып, 10 модулінің қосындысын есептеу арқылы есептеледі.

Криптография дегеніміз не? Істің мәні мұндаоның талқыланатын тақырыппен өте күшті байланысы бар. Криптографияда модульдік арифметика заңдары RSA және Diffie-Hellman сияқты ашық кілтті жүйелердің негізінде тікелей жатыр. Мұнда ол эллиптикалық қисықтардың астында жатқан соңғы өрістерді береді. Жетілдірілген шифрлау стандарты (AES), халықаралық деректерді шифрлау алгоритмі және RC4 сияқты әртүрлі симметриялық кілт алгоритмдерінде қолданылады.

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

Қолданба

Бұл әдіс сандарды оқу қажет аймақтарда қолданылады. Оны математиктер жасаған және оны барлығы пайдаланады, әсіресе информатика. Бұл 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-ге бөлінгенде қалған қалдық. 14 мод 12=2 мод 12 теңдеу 14 сағатты және 2 сағатты қарауды білдіреді 12 сағаттық сағатта бірдей. Олар үш есе теңдік белгісімен көрсетілген конгруентті: 14 ≡ 2 мод 12.

Тағы бір мысал: таңғы 8:00. Үлкен қол 25 сағаттан кейін қайда болады?

8-ге 25-ті қосудың орнына, 25 сағаттың жай ғана "1 күн + 1 сағат" екенін түсінуге болады. Жауап қарапайым. Сонымен, сағат тілі 1 сағат бұрын – 9:00-де аяқталады.

(8 + 25) мод 12 ≡ (8) мод 12 + (25) мод 12 ≡ (8) 12 + (1) мод 12 ≡ 9 мод 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 мод 12. Сондықтан оны сағат 2 деп ойлаңыз, сондықтан ұшақ таңғы сағат 5-те қонады. Шешім қарапайым: 3 + 2=таңғы 5. Бұл қарапайым модуль операциясына қарағанда біршама күрделірек, бірақ принцип бірдей.

Ұсынылған: