книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М
.pdfprnt := {Print ["###", |
II . It |
|
":", d, ":",a, ":"] , |
|
|
If[g<0,Print[ ] ] , |
Print[IntegerDigits[g,a]," |
|
If[r<0,Print["-" ]], Print[IntegerDigits[r,a]," |
|
|
If[s<0,Print[ ] ] , Print[IntegerDigits[s,a]]}; |
|
|
prnt 1 : = { P r i n t ["%%%",n, |
, d, " : " ] , |
|
I f [ r < 0 , P r i n t [ ” - " ] ] / P r i n t [ F r o m D i g i t s [ I n t e g e r D i g i t s [ r , a ] Д О |
] , |
|
I f [ s < 0 , P r i n t [ " - " ] ] , P r i n t [ F r o m D i g i t s [ I n t e g e r D i g i t s [ s , a ] , 1 0 ] ] } ; |
||
Основным определением здесь является p r n t l . И м енно это определение |
исполь |
зуется для первого вывода на печать значений п, т, d = НОД(л, /и), а также двоичных представлений г и s. Чтобы облегчить распознавание определения, которое выполняет
печать, в основном определении ( p r n t l ) |
ведущими символами являются |
###, |
а во |
вспомогательном ( p r n t) — %%%. Используя |
вспомогательное определение |
p r n t , |
пре |
дыдущую программу мож но переписать так.
Do [
Do [
D o [ { { g , [ r , s } } = E x t e n d e d G C D [ a a a [ a ,n ] , a a a [ a , m ] ] , p r n t } ,
{a , 2 , n+m+2} ] ,
{m ,n - 1 } ] ,
{n , 10} ]
Вспомогательное определение |
p r n t |
будет использоваться |
для |
первого |
вывода |
на |
печать только тех представлений |
г и 5, |
которые отличаются |
от |
первого. |
Поэтому |
в |
этом определении предусмотрен вывод дополнительной информации: представления g и основания системы счисления а.
Теперь программу мож но модифицировать с учетом нового определения функции печати. Возникает соблазн написать программу так.
Do [
Do [ {
D o [ { { g , { r , s } } = E x t e n d e d G C D [ a a a [a ,n ] , a a a [ a , m ] ] , Л f [ a = = 2 , { [ g 0 , { r O ,s O } } = { g , { r , s } } , p r n t l } ] , I f [ { g 0 , { r 0 , s 0 } } ! = { g , { r , s } } , p r n t ] },
({a , 2 , n+m+2 } ] }, { m ,n - 1 } ] ,
{n , 1 0 }]
Но это совсем не то, что мы хотели! Ведь условие {g0,{rO,sO}} ! = {д, {г,s}} будет
выполнено при а ! =2. Все дело в том, что значения г и s зависят от основания системы счисления а\ Не зависит от основания системы счисления а лишь их представление в системе счисления с основанием а. Поэтому проверять нужно им енно неизменность представления в системе счисления с основанием я. Кроме того, проверка g 0 ! = g лишняя. Поэтому лучше добавить ещ е одно определение.
newrs:= |
|
|
{ |
S i g n [ r 0 ] , S i g n f s O ] , |
|
{ |
S i g n [ r ] , |
S i g n [ s ] , |
I n t e g e r D i g i t s [ r O , 2 ] , |
I n t e g e r D i g i t s [ s O , 2] |
} ! = |
I n t e g e r D i g i t s [ r, a ] , |
I n t e g e r D i g i t s [ s , a] |
} |
Теперь можно записать программу.
Do [
Do [ {
Do[{{g,{r,s}}=ExtendedGCD[aaa[a,n],aaa[a,m]],
I f [ a = = 2 , { { r O ,s O } = { r , s }, p r n t l } ] , I f [ n e w r s , p r n t ] },
Арифметика: наибольший общий делитель... |
181 |
{а, 2, n+m+2}]}, {m, n-1}•],
in,20}]
Теперь выполним программу. Сколько раз сработала вспомогательная печать? Ни разу! Это значит, что по всем найденным значениям г и s можно восстановить многочлены фг) и фх) и написать тождество d(x) = /<х)я(х)+фс)й(х)! Полученные ре зультаты стоят того, чтобы собрать их в таблицу (табл. Б.ЗЗ).
Полученная таблица заслуживает более внимательного рассмотрения. Рассмотрим, например, одну строку таблицы.
20 |
17 |
1 |
1001001001001001 |
-1001001001001001010 |
|
|||
Так как d(x) = |
x ' - l = х-1, эта строка означает, что х-1 |
= d(x) |
= r(x)a(x)+s(x)b(x)t |
|||||
где |
O(JC) = |
л-20 -1 , |
Ь(х) = х'7 -1 , |
Кх) = 1+х3+х6 + х 9 +х12 +х15, |
||||
s(x) = -(х+ Л-5 + х‘ +х9+х,2 + х’5 +х18). |
Иными |
словами, |
она |
означает, |
что |
|||
х —1 = d(x) - |
г(х) (х20 -1) +4д)(д|7-1) |
для указанных только что полиномов г(х) |
и $(х). |
|||||
Впрочем, вместо фс) и s(x) |
можно подставить их выражения, и тогда получится сле |
|||||||
дующее тождество: |
|
|
|
|
|
|
|
д-1 = (1+ х3+х<Ч х9+х12+х15) (дм-1)-(х*-х, +х6+х9+х,2+х'5+х") (д17 —1).
Таким образом, мы видим, что каждая строка полученной таблицы фактически основана на полиномиальном тождестве и фактически является кратким его кодом!
Давайте теперь сравним полученные значения для г и s в равенстве! НОД(а, b) = ra+sb для а = хп+| -1 , b = х т+1 -1 (х целое) с теми, которые были полу чены ранее для такого же равенства для чисел а и Ь, десятичная запись которых состоит из т единиц и п единиц. (Нужную таблицу мы подготовили заранее.) Не слу чайно ли значения г и s совпадают? Нет, не случайно. Дело в том, что если справедли во равенство НОД(о, b) = ra+sb для а = хя+| -1 , b = хя,+1 -1 (х целое, отличное от 1), то
справедливо |
|
и |
равенство НОД(—— ,—— ] = г—— |
|
, |
потому что |
||
|
|
|
|
^х-1 х -1 J |
х —1 |
х —1 |
|
|
иГкП( |
а |
b |
Л |
НОД(а,Ь) |
а |
Ъ |
целые при целомх |
|
НОД |
----- , ------ |
|
= ------------. (Напомню, что числа------ и ----- |
|||||
Iх-1 х-1 1 |
х-1 |
х-1 |
х-1 |
|
|
|||
и а = |
х*+| —1, b = |
х ^ - 1 . ) Более того, запись чисел |
и |
b |
в системе счисления |
|||
|
|
|
|
|
х-1 |
х-1 |
|
|
с целым основанием х как раз и состоит из п единиц и т единиц. Поскольку равенст-
ва НОД(а, Ь) = ra+sb и Н О д ( - ^ - , — 1 = г— |
+ s — для о = д"+' - 1 , Ь = х"+'-1 |
|
^х-1 х - 1 ) |
Х-1 |
Х-1 |
(х целое, отличное от 1) равносильны, то г и s принимают в них одинаковые значе ния, Отсюда, в частности, следует, что если числа г и s из равенства НОД(д,6) = ra+sb имели одно и то же представление для любого основания системы счисления х, то же
самое |
будет |
справедливо |
и |
для |
чисел |
г |
и |
s |
из |
равенства |
НОДf _ a ____Ь _ |
= г а +J b |
потому что значения г и s |
в этих равенствах одина |
|||||||
[ х - Г х - 1 |
) Гх-1 S x - \ |
|
|
|
|
|
|
|
|
|
ковы! Это немного неожиданно, потому что сами значения а = |
хЛ+|-1, |
b = хя+,-1, |
оЬ
^ги J зависят от основания системы счисления х! Эта независимость как
I
182 |
Глава 6 |
раз и является следствием полиномиальных тождеств. Причем тождества, получаемые для чисел, десятичная запись которых состоит из т единиц и п единиц, и тождества,
получаемые для чисел а = хп+] -1 и Ъ?= jcm+l -1 , фактически отличаются только мно жителем дг-1. Например, из тождества
х-1 = ( l + j c 3 + j r 6 + jc 9 + j c l 2 + j t 15) (дс20 — 1) — ( JC+ JC3 + JC6 + JC9 + JC12 + JC15 -»-JC18 ) ( JC, 7 - 1 )
получается еще более длинное тождество:
1= (1+ Х Ъ + Х Ь + Х 9 +JC12 +*15 ) (JC19 +JC18 +JC17 + ... + JC+ 1) - ( Х + хъ+х6+ х9 +JC12 +дг15 +х18 )х
X ( JC16 +х15+дс14 + . . . + Х + 1).
Обратите, наконец, внимание на то, что в полученной таблице представления чи сел г и s содержат только нули и единицы. Это означает, что коэффициенты полино мов г(х) и s(x), построенных по представлениям чисел г и 5, тоже будут равны 0 и 1 (либо “ 1, если перед представлением стоит знак минус).
Наименьшее общее кратное — функция LCM
Во множестве всех кратных нескольких данных чисел всегда найдется такое, которое является делителем всякого другого общего кратного этих чисел: это — общее наименьшее кратное.
А. К. Сушкевич. Теория чисел. Глава 1. О делимости чисел. Теорема 8
Функция ьсм находит наименьшее общее кратное в области целых, рациональных и гауссовых чисел.
3 2
(LCM[2, 3 , 5 ] , L C M [ j , - у ] / LCM [2 + 3 i , 3 - 4 ж] }
{ 3 0 ,6 ,1 8 + 1 }
Что такое наименьшее общее кратное нескольких рациональных чисел? Это, ко нечно, такое наименьшее рациональное число, частные от деления которого на дан ные рациональные числа являются целыми.
Пример 6.11. Наименьшее общее кратное первой тысячи чисел. Вот как можно его найти.
LCM00Range [1 0 0 0 ]
7 1 2 8 8 6 5 2 7 4 6 6 5 0 9 3 0 5 3 1 6 6 3 8 4 1 5 5 7 1 4 2 7 2 9 2 0 6 6 8 3 5 8 8 6 1 8 8 5 8 9 3 0 4 0 4 5 2 0 0 1 9 9 1 1 5 4 3 2 4
0 8 7 5 8 1 1 1 1 4 9 9 4 7 6 4 4 4 1 5 1 9 1 3 8 7 1 5 8 6 9 1 1 7 1 7 8 1 7 0 1 9 5 7 5 2 5 6 5 1 2 9 8 0 2 6 4 0 6 7 6 2 1 0 0 9 2 5 1 4
6 5 8 7 1 0 0 4 3 0 5 1 3 1 0 7 2 6 8 6 2 6 8 1 4 3 2 0 0 1 9 6 6 0 9 9 7 4 8 6 2 7 4 5 9 3 7 1 8 8 3 4 3 7 0 5 0 1 5 4 3 4 4 5 2 5 2 3 7 3 9 7 4 5 2 9 8 9 6 3 1 4 5 6 7 4 9 8 2 1 2 8 2 3 6 9 5 6 2 3 2 8 2 3 7 9 4 0 1 1 0 6 8 8 0 9 2 6 2 3 1 7 7 0 8 8 61'979 5 4 0 7 9 1 2 4 7 7 5 4 5 5 8 0 4 9 3 2 6 4 7 5 7 3 7 8 2 9 9 2 3 3 5 2 7 5 1 7 9 6 7 3 5 2 4 8 0 4 2 4 6 3 6 3 8 0 5 1 1 3 7 0 3 4 3 3 1 2 1 4 7 8 1 7 4 6 8 5 0 8 7 8 4 5 3 4 8 5 6 7 8 0 2 1 8 8 8 0 7 5 3 7 3 2 4 9 9 2 1 9 9 5 6 7 2 0 5 6 9 3 2 0 2 9 0 9 9 3 9 0 8 9 1 6 8 7 4 8 7 6 7 2 6 9 7 9 5 0931603520000
Это, конечно же, существенно меньше, чем 1000!. В
1000 !/LCM0@Range[1 0 0 0 ]
5 6 4 4 4 7 8 3 9 2 7 5 5 1 1 5 2 0 7 2 1 7 3 4 6 9 6 7 3 4 8 4 3 4 9 2 7 0 8 4 3 4 0 3 8 0 2 0 2 8 6 5 0 7 6 1 3 1 3 4 8 6 1 8 8 7 8 0 9 9
3 3 7 1 0 9 9 7 9 7 2 5 2 6 0 9 6 9 7 0 8 6 8 0 3 0 3 4 4 3 4 1 8 4 5 6 8 1 5 0 8 7 3 2 2 3 8 9 6 8 6 8 7 2 5 9 5 6 6 5 4 6 3 4 7 9 5 0 9 0
4 2 4 1 9 0 0 5 7 3 6 7 1 7 3 2 6 0 5 4 0 5 8 1 3 9 0 2 1 7 1 7 9 0 2 7 3 2 9 1 1 7 9 3 5 2 1 4 7 9 7 9 2 4 9 0 6 4 4 1 1 9 7 6 2 1 2 0 1 6
2 1 8 5 5 8 0 2 3 9 1 6 5 8 8 5 9 5 9 7 8 9 1 1 3 2 3 8 5 9 7 1 4 5 7 5 0 4 3 9 6 9 4 7 3 8 0 6 3 9 0 5 2 4 6 4 9 5 5 1 3 5 3 4 9 2 6 0 7 8
Арифметика: наибольший общий делитель... |
183 |
6269240235976327708307400278060510041387149846139732431537416495360938
1131953517675333413439526744779132766911579673805361479699109899315840
2514786222371287563487122797718567505966000274864041649240503703312964
8944110921905225897893847784255235833563028640027449707297915920152663
5793744631801013481920273004153185432745697649289446291719568986968720
3419792935228989810950692529597394515927351449958319072841271244884591
9304373706635482530034667735673674820266712486162694399661471420747532
03120503170367033278.67740772926557874646883014191158013314020690145258
8063198721392150507236250301994683844900294618643762224657344930984696
6680312776306878099412928682069520281618125090171627537596507634046767
5248247585468526950093561397456484848397922331130363653941912093281755
1556922214647924545433219079357350385246350059813457324385952011410846
0239993192050052395124585731623165549285250318616802295761210452366701
9411997327786880368751581542010640315804829921622400668744894629837105
4577558260150893577331489234272856887857409955220456469558882770327261
6489819792161385271403640949968821800600426821467429016281300340818536
6740497847075783700955635816618307634240698753828518904983893744809533
6398201079736341935453147314308218498178386631522034419848915644774532
9514244821448400901893454119135235799727951785823723867849034064139605
8469511170217377411150861201294122776677572494130004598702648806925812
1145828704197168873503121891023633592374921184105574640450047298261226
0825457361064437007475267189689029999429238731902168522554489421543108
8885494912353647835912451288476186771607310924213835809370046973607936
оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо
оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо
оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо
00000000000000000000000000000000000
раз! Заметьте, что наименьшее общее кратное первой тысячи чисел заканчивается всего лишь четырьмя нулями.
Пример 6.12. Графики функции ьсм.
Давайте теперь построим несколько графиков функции ьсм. Поскольку это функ ция двух аргументов, построим изображения поверхности z = ЬСМ[IntegerPart[х], IntegerPart [у] ]. Для этого используем функцию Plot3D.
Plot3D[ЬСМ[IntegerPart[х],IntegerPart[у]], {х,1,100}, {у,1,50),
PlotPoints->50, PlotRange->All,Mesh->FalseJ;
100
184 |
Глава б |
А вот вид вблизи.
plot3D[LCM[IntegerPart[х],IntegerPart[у]],{х,1,10}/{у,1,10},PlotPoints-
>50,PlotRange->All/Mesh->False] ;
Резюме
Задача нахождения наибольшего общего делителя и наименьшего общего кратного нескольких чисел столь важна, что ее приходится решать практически постоянно. Даже занимаясь решением задач вариационного исчисления, математической физики, линейной алгебры, математического анализа, аналитической геометрии или просто решая какие-нибудь дифференциальные уравнения, вам практически не удастся из бежать сложения или вычитания дробей — действий, которым учатся в пятом классе. И как только вам приходится выполнять эти действия, вы так или иначе вспоминаете о наибольшем общем делителе и наименьшем общем кратном. К счастью, система Mathematica если и не позволяет забыть об этих двух важнейших понятиях арифмети ки, то избавляет вас от рутинной работы по их нахождению. В системе Mathematica реализованы весьма эффективные, вполне современные алгоритмы нахождения наи большего общего делителя и наименьшего общего кратного. Пользуясь ими, вы може те быть уверены, что используете самые современные инструменты. Конечно, их применение целиком зависит от вас. Вы можете составить таблицы, найти тождества, решить неопределенные уравнения...
Задачи
Задача 6.1 (линейное представление наибольшего общего делителя чисел Фибоначчи). Так как наибольший общий делитель п- и т-го чисел Фибоначчи равен числу Фибо наччи с номером d = НОД(л, /и), то это число можно представить в виде линейной комбинации л- и /w-го чисел Фибоначчи. Составьте таблицу коэффициентов г и s ли нейного представления в зависимости от л и т. Иными словами, найдите такие числа
гИ 5, что
НОД(Fibonacci[n],Fibonacci[m]) = Fibonacci[НОД(n,m)] =
= r Fibonacci[n] +s Fibonacci[m].
Арифметика: наибольший общий делитель... |
185 |
Глава 7
Модулярная арифметика: деление с остатком,
вычеты, сравнения
и китайская теорема об остатках
Вэт ой главе...
♦Деление с остатком
♦Возведение в степень в модулярной арифметике — функция PowerMod
♦Китайская теорема об остатках — функция ChineseRemainder
♦Корни в системе остаточных классов
♦Критерии простоты чисел специального вида
♦Резюме
♦Задачи
Существует один интересный способ выполнения ариф метических действий с большими целыми числами, осно ванный на некоторых простых фактах теории чисел. Идея этого метода состоит в том, чтобы иметь несколько модулей т , , т , , тг , которые взаимно просты, и оперировать не
непосредственно с числом и, а с его “остатками” и mod /и,,
иmod т2 , ..., и mod тг .
Д.Кнут. Искусство программирования для ЭВМ. Том 2. Получисленные алгоритмы. Глава 4. Арифметика. §4.3.
Арифметика многократной точности. п°4.3.2. Модулярная арифметика
В области целых чисел есть только два делителя, на которые делятся все числа: 1и -1. На остальные же числа деление выполняется далеко не всегда без остатка. Именно делению с остатком и действиям над остатками как раз и посвящена настоящая глава.
Деление с остатком
При выполнении операции деления с остатком получается частное и остаток. Для нахождения частного и остатка в системе Mathematica предусмотрены функции
Quotient и Mod.
Частное при делении с остатком — функция Quotient
Чтобы получить частное при делении (с остатком) п на т, нужно воспользоваться функцией Quotient [n,m]. Рассмотрим пример.
Quotient[16,5]
3
Для целых п и т выражение Quotient [n,m] равносильно Floor [m/n]. Однако п и: тмогут быть вещественными и даже комплексными числами.
Quotient [ЕА10,Е Л8] 7
Quotient [Ел 10+25*1 ,Ел8+41] 7-1
В случае вещественных чисел Quotient[n,m] — это такое целое число х, что 0<л-/и х<т. Однако часто нужно найти целое число х, такое, что d<n—m x<d+m. По жалуйста, укажите сдвиг d третьим параметром.
Quotient [16, 5,14]
О
Вот как можно найти частные от деления чисел 0, 1,2, ..., 21 на 3.
Quotient [Range [0,21] , 3]
{О, 0 , 0 , 1 , 1 , 1 , 2 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 4 , 5 , 5, 5, 6, б, 6,7}
А вот частные, когда задан сдвиг 1.
Quotient [Range [0,21], 3,1]
{-1,0,0, 0 , 1 , 1 , 1 , 2 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 4 , 5 , 5 , 5, б, 6,6}
А вот частные, когда задан сдвиг 2.
Quotient [Range [0,21] ,3,2]
{1,-1,0, 0, 0, 1 , 1 , 1 , 2 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 4 , 5 , 5, 5, 6, 6}
Пример 7.1. Графики функции Quotient.
Давайте теперь построим несколько графиков функции Quotient. Поскольку это функция двух аргументов, построим изображения поверхности z = Q u o t i e n t [х, у]. Для этого используем функцию Plot3D.
Модулярная арифметика... |
187 |
Остаток отделения — функция Mod
Чтобы получить остаток от деления п на /я, нужно воспользоваться функцией Mod[n,mb Наименьший возможный остаток в этом случае равен нулю, а наиболь ший... Как вы думаете, чему равен наибольший возможный остаток? “ Конечно, т -1 " , — возможно, подумали вы. Ну, что же, я, конечно, приветствую ваши глубокие познания в теории чисел, ибо именно так написано во всех классических учебниках по этой дисциплине, если, конечно, именно в этом месте нет какой-либо досадной опечатки. Но должен вас разочаровать: вы не угадали. Зато, надеюсь, вам будет при ятно узнать, что возможности функции Mod значительно шире, чем требуется для ре шения задач из задачников по классической теории чисел. Дело в том, что аргументы
188 |
Гпава Т |
этой функции могут быть не только целыми (это предусмотрено классическими учеб никами теории чисел), но и вещественными и даже комплексными! А во множестве вещественных чисел, как вы, надеюсь, ещ е помните, полно сюрпризов... Н о сначала давайте рассмотрим простейший случай целых аргументов.
Mod[ 7 ,5 ]
2
Ну вот, при делении 7 на 5 остаток равен 2. Просто и понятно, даже в уме можно вычислить. Вот ещ е один пример.
Mod[3A1 0 , 5]
4
Тоже в уме, и тоже просто и понятно. Н о вот несколько примеров с вещественны ми числами.
Mod[Pi / 1 ]
-3+71
Mod[ 1 4 9 / 1 0 , 5 ]
i i
10
Mod[ 1 4 9 9 / 1 0 0 , 5]
499
100
Mod[ 1 4 9 9 9 /1 0 0 0 ,5 ]
4999
1000
Теперь, надеюсь, вы поняли, что множество значений Mod[n,m] не имеет наболь шего элемента. М ож но лишь утверждать, что при вещественных т и п 0<M od[n,m ]<m , причем все значения из открытого справа интервала [0, т) функция Mod[n,m] при нимает. Но иногда нужно сдвинуть этот интервал на d. Нет проблем: укажите сдвиг d
третьим параметром.
Вот как можно найти остатки от деления чисел 0, 1 ,2 , ..., 21 на 3.
Mod [Range [ 0 ,2 1 ] , 3]
{0,1 , 2 , 0 , 1 , 2 , 0 , 1 , 2 , 0 , 1 , 2 , 0 , 1 , 2 , 0 , 1 , 2 , 0 , 1 , 2 , 0 }
А вот те же остатки, когда задан сдвиг 1.
Mod[Range [ 0 ,2 1 ] , 3 , 1 ]
{ 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 }
А вот те же остатки, когда задан сдвиг 2.
Mod[Range[0,21] , 3 , 2 ]
1 3 , 4 , 2 , 3 , 4 , 2 , 3 , 4 , 2 , 3 , 4 , 2 , 3 , 4 , 2 , 3 , 4 , 2 , 3 , 4 , 2 , 3 }
Ниже приведены основные свойства функций Q u o t i e n t и Mod:
[ ■ |
n * Q u o tie n t [m, n , |
d] + Mod[m, |
n, |
d] = m при любых допустимых /я, /I, d\ |
|||
■ |
знак Mod [m, |
n] |
совпадает со знаком п при любых допустимых вещественных /я, я; |
||||
■ |
Mod[m, |
n] |
= |
m - n * Q u o tie n t [m, |
n] |
при любых допустимых /я, я; |
|
■ |
Mod [m, |
n, |
d] |
= |
m - n * Q u o tie n t[m , |
n, d] при любых допустимых m, я, d\ |
|
■ |
Mod [x, |
1] |
равно дробной части x. |
|
|
Ну и, наконец, полезно иметь в виду, что аргументы функции Mod могут быть сп и сками. Это, например, позволяет найти остаток от деления данного числа сразу на не сколько чисел.
Модулярная арифметика... |
189 |
Mod[2 4 4 , [ 4 , 9, 1 2 1 }]
[0 ,1 ,2 }
Можно также найти остатки от деления нескольких чисел на заданное число.
Mod[ [ 0 , 1 , 2 , 3 , 4 } Л2 , 5 ]
[О,1,4,4,1}
Пример 7.2. Графики функции Mod.
Теперь давайте построим несколько графиков функции Mod. Поскольку это функ ция двух аргументов, построим изображения поверхности z = M od[x, у ] . Для этого используем функцию P lot3D .
P lo t3 D [M o d [x , у ] , [ х , 0, 1 0 0 0 } , {у, 1 , 1 0 0 0 } ] ;
1000
А вот вид вблизи.
P lo t3 D [M o d [x , у ] , { х , 0 , 1 0 0 } , { у , 1 , 1 0 } ] ;
100
190 |
Глава 7 |