Возведение в степень в модулярной арифметике (функция Power Mod)
Иногда приходится решать задачи такого типа:
- найти вычет аb по модулю n;
- найти последние m цифр числа аb в системе счисления с основанием с.
Конечно, совсем несложно написать что-нибудь вроде Mod[a^b,n] или Моd[а^b, с^m]. Однако все дело в том, что в исследовательских задачах b может быть столь велико, что для вычисления аb не хватит памяти. Кроме того, по мере вычисления аb часто бывает так, что требуется все больше памяти и начинает работать подкачка, что очень часто приводит к пробуксовыванию. А тогда процессор практически простаивает, и даже самая простая операция выполняется фантастически долго.
Пример 7.3.
Наибольшее число, которое можно записать тремя цифрами. Число 999 имеет 369 693 100 цифр, т.е. более трети миллиарда! Еще в 1953 году было известно, что это число начинается цифрами 428 124 773 175 747 048 036 987 115 930 563 521 339 055 482 241 443 514 174 753, а заканчивается цифрами 24178799359681422627177289. Какие цифры между ними, не было известно и в 1959 году. Ведь если это число напечатать более или менее четко на полоске бумаги, то эта полоска оказалась бы длиной 1200, а может и 1800 км. Если же напечатать это число в книге так, чтобы на каждой странице помещалось 14 000 цифр (на странице обычно помещается 2.5-3 тысячи знаков), то такая книга состояла бы из 33 томов по 800 страниц в каждом.
Но с помощью системы Mathematica несложно вычислить, например, первую и последнюю тысячу цифр числа 999. Чтобы вычислить первую тысячу цифр числа 999, нужно просто вычислить это число с разрядностью не менее тысячи знаков. Вот как это делается.
M[9^(9^9), 1000]4.281247731757470480369871159305635213390554822414435141747537230535238874717350483531936652994320333750604175336476310007803261390473386083208020603747061280916557413208644601986199961452031052442858148959811514719493517677965593021593933850150239694262310529675816569433334631474925538494859337781208762495721650419522060180457130151786405101459407904194866332733667183065441076023482363342793388473449171490713928387636703470733221615842638847026446505858035582482311577827786618011472099436290690473438366488664695023381735331493288811517612485971201533575644398760599562173395485039505369655445329554776218333817990375374298660361754107669609047183399239331453425470226983330651282587035207362363433308091619399923991435399517426262619225044491488935534629633876424710803619094832833935338326811681684096752173716022712403864241094486312416733616316025847385772731699338755672941887753792387627915181519716957486183969209217099360780264476440839592643445485180078094839593328539827016475025109538 Х 10369693099.
