Кольцо целых чисел. Теорема о делении с остатком

Примеры

a + b i {\displaystyle a+bi} где a {\displaystyle a} и b {\displaystyle b} рациональные числа, i {\displaystyle i} - мнимая единица . Такие выражения можно складывать и перемножать по обычным правилам действий с комплексными числами , и у каждого ненулевого элемента существует обратный, как это видно из равенства (a + b i) (a a 2 + b 2 − b a 2 + b 2 i) = (a + b i) (a − b i) a 2 + b 2 = 1. {\displaystyle (a+bi)\left({\frac {a}{a^{2}+b^{2}}}-{\frac {b}{a^{2}+b^{2}}}i\right)={\frac {(a+bi)(a-bi)}{a^{2}+b^{2}}}=1.} Из этого следует, что рациональные гауссовы числа образуют поле, являющееся двумерным пространством над (то есть квадратичным полем).
  • Более общо, для любого свободного от квадратов целого числа d {\displaystyle d} Q (d) {\displaystyle \mathbb {Q} ({\sqrt {d}})} будет квадратичным расширением поля Q {\displaystyle \mathbb {Q} } .
  • Круговое поле Q (ζ n) {\displaystyle \mathbb {Q} (\zeta _{n})} получается добавлением в Q {\displaystyle \mathbb {Q} } примитивного корня n -й степени из единицы. Поле должно содержать и все его степени (то есть все корни n -й степени из единицы), его размерность над Q {\displaystyle \mathbb {Q} } равняется функции Эйлера φ (n) {\displaystyle \varphi (n)} .
  • Действительные и комплексные числа имеют бесконечную степень над рациональными, поэтому они не являются числовыми полями. Это следует из несчетности: любое числовое поле является счётным .
  • Поле всех алгебраических чисел A {\displaystyle \mathbb {A} } не является числовым. Хотя расширение A ⊃ Q {\displaystyle \mathbb {A} \supset \mathbb {Q} } алгебраично, оно не является конечным.

Кольцо целых числового поля

Поскольку числовое поле является алгебраическим расширением поля Q {\displaystyle \mathbb {Q} } , любой его элемент является корнем некоторого многочлена с рациональными коэффициентами (то есть является алгебраическим). Более того, каждый элемент является корнем многочлена с целыми коэффициентами, так как можно домножить все рациональные коэффициенты на произведение знаменателей. Если же данный элемент является корнем некоторого унитарного многочлена с целыми коэффициентами, он называется целым элементом (или алгебраическим целым числом). Не все элементы числового поля целые: например, легко показать что единственные целые элементы Q {\displaystyle \mathbb {Q} } - это обычные целые числа .

Можно доказать, что сумма и произведение двух алгебраических целых чисел - снова алгебраическое целое число, поэтому целые элементы образуют подкольцо числового поля K {\displaystyle K} , называемое кольцом целых поля K {\displaystyle K} и обозначаемое . Поле не содержит делителей нуля и это свойство наследуется при переходе к подкольцу, поэтому кольцо целых целостно ; поле частных кольца O K {\displaystyle {\mathcal {O}}_{K}} - это само поле K {\displaystyle K} . Кольцо целых любого числового поля обладает следующими тремя свойствами: оно целозамкнуто , нётерово и одномерно . Коммутативное кольцо с такими свойствами называется дедекиндовым в честь Рихарда Дедекинда .

Разложение на простые и группа классов

В произвольном дедекиндовом кольце существует и единственно разложение ненулевых идеалов в произведение простых . Однако не любое кольцо целых удовлетворяет свойству факториальности : уже для кольца целых квадратичного поля O Q (− 5) = Z [ − 5 ] {\displaystyle {\mathcal {O}}_{\mathbb {Q} ({\sqrt {-5}})}=\mathbb {Z} [{\sqrt {-5}}]} разложение не единственно:

6 = 2 ⋅ 3 = (1 + − 5) (1 − − 5) {\displaystyle 6=2\cdot 3=(1+{\sqrt {-5}})(1-{\sqrt {-5}})}

Введя на этом кольце норму, можно показать, что эти разложения действительно различны, то есть одно нельзя получить из другого умножением на обратимый элемент .

Степень нарушения свойства факториальности измеряют при помощи группы классов идеалов , эта группа для кольца целых всегда конечна и её порядок называют числом классов.

Базисы числового поля

Целый базис

Целый базис числового поля F степени n - это множество

B = {b 1 , …, b n }

из n элементов кольца целых поля F , такое что любой элемент кольца целых O F поля F можно единственным способом записать как Z -линейную комбинацию элементов B ; то есть для любого x из O F существует и единственно разложение

x = m 1 b 1 + … + m n b n ,

где m i - обычные целые числа. В этом случае любой элемент F можно записать как

m 1 b 1 + … + m n b n ,

где m i - рациональные числа. После это целые элементы F выделяются тем свойством, что это в точности те элементы, для которых все m i целые.

Используя такие иструменты как локализация и эндоморфизм Фробениуса , можно построить такой базис для любого числового поля. Его построение является встроенной функцией во многих системах компьютерной алгебры .

Степенной базис

Пусть F - числовое поле степени n . Среди всех возможных базисов F (как Q -векторного пространства), существуют степенные базисы, то есть базисы вида

B x = {1, x , x 2 , …, x n −1 }

для некоторого x F . Согласно теореме о примитивном элементе , такой x всегда существует, его называют примитивным элементом данного расширения.

Норма и след

Алгебраическое числовое поле является конечномерным векторным пространством над Q {\displaystyle \mathbb {Q} } (обозначим его размерность за n {\displaystyle n} ), и умножение на произвольный элемент поля является линейным преобразованием этого пространства. Пусть e 1 , e 2 , … e n {\displaystyle e_{1},e_{2},\ldots e_{n}} - какой-нибудь базис F , тогда преобразованию x ↦ α x {\displaystyle x\mapsto \alpha x} соответствует матрица A = (a i j) {\displaystyle A=(a_{ij})} , определяемая условием

α e i = ∑ j = 1 n a i j e j , a i j ∈ Q . {\displaystyle \alpha e_{i}=\sum _{j=1}^{n}a_{ij}e_{j},\quad a_{ij}\in \mathbf {Q} .}

Элементы этой матрицы зависят от выбора базиса, однако от него не зависят все инварианты матрицы, такие как определитель и след . В контексте алгебраических расширений, определитель матрицы умножения на элемент называется нормой этого элемента (обозначается N (x) {\displaystyle N(x)} ); след матрицы - следом элемента (обозначается Tr (x) {\displaystyle {\text{Tr}}(x)} ).

След элемента является линейным функционалом на F :

Tr (x + y) = Tr (x) + Tr (y) {\displaystyle {\text{Tr}}(x+y)={\text{Tr}}(x)+{\text{Tr}}(y)} и Tr (λ x) = λ Tr (x) , λ ∈ Q {\displaystyle {\text{Tr}}(\lambda x)=\lambda {\text{Tr}}(x),\lambda \in \mathbb {Q} } .

Норма является мультипликативной и однородной функцией:

N (x y) = N (x) ⋅ N (y) {\displaystyle N(xy)=N(x)\cdot N(y)} и N (λ x) = λ n N (x) , λ ∈ Q {\displaystyle N(\lambda x)=\lambda ^{n}N(x),\lambda \in \mathbb {Q} } .

В качестве исходного базиса можно выбрать целый базис , умножению на целое алгебраическое число (то есть на элемент кольца целых ) в этом базисе будет соответствовать матрица с целыми элементами. Следовательно, след и норма любого элемента кольца целых являются целыми числами.

Пример использования нормы

Пусть d {\displaystyle d} - - целый элемент, так как он является корнем приведенного многочлена x 2 − d {\displaystyle x^{2}-d} ). В этом базисе умножению на a + b d {\displaystyle a+b{\sqrt {d}}} соответствует матрица

(a d b b a) {\displaystyle {\begin{pmatrix}a&db\\b&a\end{pmatrix}}}

Следовательно, N (a + b d) = a 2 − d b 2 {\displaystyle N(a+b{\sqrt {d}})=a^{2}-db^{2}} . На элементах кольца эта норма принимает целые значения. Норма является гомоморфизмом мультипликативной группы Z [ d ] {\displaystyle \mathbb {Z} [{\sqrt {d}}]} на мультипликативную группу Z {\displaystyle \mathbb {Z} } , поэтому норма обратимых элементов кольца может быть равна только 1 {\displaystyle 1} или − 1 {\displaystyle -1} . Для того, чтобы решить уравнение Пелля a 2 − d b 2 = 1 {\displaystyle a^{2}-db^{2}=1} , достаточно найти все обратимые элементы кольца целых (также называемые единицами кольца ) и выделить среди них имеющие норму 1 {\displaystyle 1} . Согласно теореме Дирихле о единицах , все обратимые элементы данного кольца являются степенями одного элемента (с точностью до умножения на − 1 {\displaystyle -1} ), поэтому для нахождения всех решений уравнения Пелля достаточно найти одно фундаментальное решение.

См. также

Литература

  • Х. Кох. Алгебраическая теория чисел . - М. : ВИНИТИ , 1990. - Т. 62. - 301 с. - (Итоги науки и техники. Серия «Современные проблемы математики. Фундаментальные направления».).
  • Чеботарев Н.Г. Основы теории Галуа. Часть 2. - М. : Едиториал УРСС, 2004.
  • Вейль Г. Алгебраическая теория чисел. Пер. с англ.. - М. : Едиториал УРСС, 2011.
  • Serge Lang , Algebraic Number Theory, second edition, Springer, 2000

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Вятский государственный гуманитарный университет

Математический факультет

Кафедра математического анализа и методики
преподавания математики

Выпускная квалификационная работа

на тему: Кольцо целых чисел Гаусса.

Выполнил:

студент V курса

математического факультета

Гнусов В.В.

___________________________

Научный руководитель:

старший преподаватель кафедры

алгебры и геометрии

Семенов А.Н..

___________________________

Рецензент:

кандидат физ.-мат. наук, доцент

кафедры алгебры и геометрии

Ковязина Е.М.

___________________________

Допущена к защите в ГАК

Зав. кафедрой________________ Вечтомов Е.М.

« »________________

Декан факультета___________________ Варанкина В.И.


Введение.

Кольцо целых комплексных чисел

было открыто Карлом Гауссом и названо в его честь гауссовым.

К. Гаусс пришел к мысли о возможности и необходимости расширения понятия целого числа в связи с поиском алгоритмов решения сравнений второй степени. Он перенес понятие целого числа на числа вида

, где - произвольные целые числа, а - является корнем уравнения На данном множестве К. Гаусс впервые построил теорию делимости, аналогичную теории делимости целых чисел. Он обосновал справедливость основных свойств делимости; показал, что в кольце комплексных чисел существует только четыре обратимых элемента: ; доказал справедливость теоремы о делении с остатком, теоремы о единственности разложения на простые множители; показал какие простые натуральные числа останутся простыми и в кольце ; выяснил природу простых целых комплексных чисел.

Развитая К. Гауссом теория, описанная в его труде «Арифметические исследования», явилась фундаментальным открытием для теории чисел и алгебры.

В выпускной работе были поставлены следующие цели:

1. Развить теорию делимости в кольце чисел Гаусса.

2. Выяснить природу простых гауссовых чисел.

3. Показать применение гауссовых чисел при решении обычных диофантовых задач.

ГЛАВА 1. ДЕЛИМОСТЬ В КОЛЬЦЕ ЧИСЕЛ ГАУССА.

Рассмотрим множество комплексных чисел. По аналогии с множеством действительных чисел в нем можно выделить некоторое подмножество целых чисел. Множество чисел вида

, где назовем целыми комплексными числами или гауссовыми числами. Нетрудно проверить, что для этого множества выполняются аксиомы кольца. Таким образом, это множество комплексных чисел является кольцом и называется кольцом целых чисел Гаусса . Обозначим его как , так как оно является расширением кольца элементом: .

Поскольку кольцо гауссовых чисел является подмножеством комплексных чисел, то для него справедливы некоторые определения и свойства комплексных чисел. Так, например, каждому гауссовому числу

соответствует вектор с началом в точке и с концом в . Следовательно, модуль гауссова числа есть . Заметим, что в рассматриваемом множестве, подмодульное выражение всегда есть число неотрицательное целое. Поэтому в некоторых случаях удобнее пользоваться нормой , то есть квадратом модуля. Таким образом . Можно выделить следующие свойства нормы. Для любых гауссовых чисел справедливо: (1) (2) (3) (4) (5) - множество натуральных чисел, то есть целых положительных чисел.

Справедливость данных свойств тривиальным образом проверяется с помощью модуля. Попутно заметим, что (2), (3), (5) справедливы и для любых комплексных чисел.

Кольцо гауссовых чисел - это коммутативное кольцо без делителей 0, так как оно является подкольцом поля комплексных чисел. Отсюда следует мультипликативная сократимость кольца

, то есть (6)

1.1 ОБРАТИМЫЕ И СОЮЗНЫЕ ЭЛЕМЕНТЫ.

Посмотрим, какие гауссовы числа будут обратимыми. Нейтральным по умножению является

. Если гауссово число обратимо , то, по определению, существует такое, что . Переходя к нормам, согласно свойству 3, получим . Но эти нормы натуральны, следовательно . Значит, по свойству 4, . Обратно, все элементы данного множества обратимы, поскольку . Следовательно, обратимыми будут числа с нормой равной единице, то есть , .

Как видно не все гауссовы числа будут обратимы. Поэтому интересно рассмотреть вопрос делимости. Как обычно, мы говорим, что

делится на , если существует такое, что .Для любых гауссовых чисел , а также обратимых справедливы свойства. (7) (8) (9) (10) , где (11) (12)

Легко проверяются (8), (9), (11), (12). Справедливость (7) следует из (2), а (10) следует из (6). В силу свойства (9), элементы множества

В различных разделах математики, а также в применении математики в технике, часто встречается ситуация, когда алгебраические операции производятся не над числами, а над объектами иной природы. Например сложение матриц, умножение матриц, сложение векторов, операции над многочленами, операции над линейными преобразованиями и т.д.

Определение 1. Кольцом называется множество математических объектов, в котором определены два действия − "сложение" и "умножение", которые сопоставляют упорядоченным парам элементов их "сумму" и "произведение", являющиеся элементами того же множества. Данные действия удовлетворяют следующим требованиям:

1. a+b=b+a (коммутативность сложения).

2. (a+b)+c=a+(b+c) (ассоциативность сложения).

3. Существует нулевой элемент 0 такой, что a +0=a , при любом a .

4. Для любого a существует противоположный элемент −a такой, что a +(−a )=0.

5. (a+b)c=ac+bc (левая дистрибутивность).

5". c(a+b)=ca+cb (правая дистрибутивность).

Требования 2, 3, 4 означают, что множество математических объектов образует группу , а вместе с пунктом 1 мы имеем дело с коммутативной (абелевой) группой относительно сложения.

Как видно из определения, в общем определении кольца на умножения не накладывается никаких ограничений, кроме дистрибутивности со сложением. Однако при различных ситуациях возникает необходимость рассматривать кольца с дополнительными требованиями.

6. (ab)c=a(bc) (ассоциативность умножения).

7. ab=ba (коммутативность умножения).

8. Существование единичного элемента 1, т.е. такого a ·1=1·a=a , для любого элемента a .

9. Для любого элемента элемента a существует обратный элемент a −1 такой, что aa −1 =a −1 a= 1.

В различных кольцах 6, 7, 8, 9 могут выполняться как отдельно так и в различных комбинациях.

Кольцо называется ассоциативным, если выполняется условие 6, коммутативным, если выполнено условие 7, коммутативным и ассоциативным если выполнены условия 6 и 7. Кольцо называется кольцом с единицей, если выполнено условие 8.

Примеры колец:

1. Множество квадратных матриц.

Действительно. Выполнение пунктов 1-5, 5" очевидна. Нулевым элементом является нулевая матрица. Кроме этого выполняется пункт 6 (ассоциативность умножения), пункт 8 (единичным элементом является единичная матрица). Пункты 7 и 9 не выполняются т.к. в общем случае умножение квадратных матриц некоммутативна, а также не всегда существует обратное к квадратной матрице.

2. Множество всех комплексных чисел.

3. Множество всех действительных чисел.

4. Множество всех рациональных чисел.

5. Множество всех целых чисел.

Определение 2. Всякая система чисел, содержащая сумму, разность и произведение любых двух своих чисел, называется числовым кольцом .

Примеры 2-5 являются числовыми кольцами. Числовыми кольцами являются также все четные числа, а также все целые числа делящихся без остатка на некоторое натуральное число n. Отметим, что множество нечетных чисел не является кольцом т.к. сумма двух нечетных чисел является четным числом.

Опр. Кольцо K называется кольцом целых чисел, если аддитивная группа кольца K является аддитивной группой целых чисел и умножение в кольце K коммутативно и продолжает умножение натуральных чисел (в системе N натуральных чисел).

Т1. Пусть - аддитивная группа целых чисел, есть естественное умножение в ней и 1 – единица системы N натуральных чисел. Тогда алгебра Z=является кольцом целых чисел.

Док-во. Покажем, что алгебра Z есть коммутативное кольцо. По условию, алгебра - аддитивная группа кольца – есть абелева группа, как аддитивная группа целых чисел.

Пусть a, b, c – произвольные элементы множества Z. Их можно представить в виде радости натуральных чисел. Пусть (1) a=m-n, b=p-q, c=r-s (m, n, p, q, r, s N).

Естественное умножение в Z определяется формулой (2) a*b=(m-n)*(p-q)=(mp+nq)-(mq+np).

Естественное умножение коммутативно, так как b*a= (p-q)*(m-n)=(pm+qn)-(pn+qm), и коммутативно сложение и умножение натуральных чисел.

Естественное умножение ассоциативно. В самом деле, в силу (1) и (2) имеем:

a*(b*c)=(m-n)[(p-q)(r-s)]=(m-n)[(pr+qs)-(ps-qr)]=(mpr+mqs+nps+nqr)-(mps+mqr+npr+nqs);

(a*b)*c=[(m-n)(p-q)](r-s)=[(mp+nq)-(mq+np)](r-s)=(mpr+nqr+mqs+nps)-(mps+nqs+mqr+npr).

Следовательно, в силу коммутативности сложения натуральных чисел a*(b*c)= (a*b)*c.

Элемент 1 является нейтральным относительно естественного умножения. В самом деле, для любого a из 2 имеем a*1=(m-n)(1-0)=m*1-n*1=m-n=a.

Следовательно, алгебра является коммутативным моноидом.

Опр. Если для целых чисел aи bсуществует такое натуральное число k, что a+k=bи k 0,то говорят, что «a меньше или b», и пишут ab тогда и только тогда, когда b

Т2. Пусть Z=кольцо целых чисел. Тогда: 1) для любых целых чисел a и b выполняется одно и только одно из трех услоий: a

2) для любого целого числа a выполняется одно и только одно из трех условий: a<0, a=0, 0

3) отношение < монотонно относительно сложения, т.е. для любых целых a, bи c

a

4) отношение <монотонно относительно умножения, т.е. для любых целых a, bи с

если a0, то ac

Т. о делении с остатком. Пусть a – целое число и b – натуральное число, отличное от нуля. Разделить число a и b с остатком – значит представить его в виде a=bq+r, где 0 r

Деление с остатком всегда выполнимо, а неполное частное и остаток однозначно определяются делимым и делителем.

Т. Для любых целых чисел a, bпри b>0существует единственная пара целых чисел qи r, удовлетворяющая условиям: (1) a=bq+rи 0 r

Док-во. Докажем, что существует хотя бы одна пара чисел q, r удовлетворяющая условиям (1). Вначале рассмотрим случай, когда a – натуральное число. Фиксируем b и индукцией по a докажем, что (2) существует пара целых чисел q, r, удовлетворяющая (1).

Для a=0 утверждение (2) верно, так как 0=b*0+0. Предположим, что (2) верно для a=n, т.е. существуют целые q, rтакие, что (3) n=bq+rи 0 r

Наибольший общий делитель. Целое число c называется общим делителем целых чисел a 1 , …, a n , если cесть делитель каждого из этих чисел.

Опр. Наибольшим общим делителем целых чисел a 1 , …, a n называется такой их общий делитель, который делится на любой общий делитель этих чисел.

Целые числа a 1 , …, a n называется взаимно простыми, если их наибольший общий делитель чисел равен единице.

НОД чисел a 1 , …, a n обозначается НОД(a 1 , …, a n), положительный НОД этих чисел обозначается нод(a 1 , …, a n).

След-ие 1. Если d есть НОД целых чисел a 1 , …, a n , то множество всех общих делителей этих чисел совпадает с множеством всех делителей числа d.

След-ие 2. Любые два НОД целых чисел a 1 , …, a n ассоциированы, т.е. могут отличаться только знаком. Если d есть НОД чисел a 1 , …, a n , то число (-d) также есть НОД этих чисел.

Алгоритм Евклида. Способ нахождения НОД двух целых чисел.

Предложение. Пусть aи b–два целых числа, b≠0 и (1) a=bq+r (0 r<|b|).

Тогда нод(a,b)=нод(b,r).

Док-во. Из (1) следует, что любой общий делитель чисел aи bесть делитель числа r=a-bqи любой общий делитель чисел bи rесть делитель числа a. Поэтому множество всех общих делителей чисел aи bсовпадает с множеством всех общих делителей чисел bи r. Отсюда следует, что положительный общий делитель чисел aи bсовпадает с положительным общим делителем чисел bи r, т.е. нод(a,b)=нод(b,r).



Если b|a, где b≥1, то очевидно, нод(a,b)=b. Для нахождения нод двух целых чисел применяют способ «последовательного деления», называемый алгоритмом Евклида. Сущность этого способа состоит в том, что в силу доказанного выше предложения задача нахождения нод чисел a и bсводится к более простой задаче нахождения нод чисел bи r, где 0≤r<|b|. Если r=0, то нод(a,b)=b. Если же r≠0, то рассуждения повторяем, отправляясь от bи r. В результате получим цепочку равенств.

Если a=0, то b=0*c=0 и теорема верна. Если же a≠0, то из (1) следует cd=1. По теореме, из равенства cd=1 следует, что d= 1. Кроме того, a=bd; следовательно, a= b. Доказано.

Наименьшее общее кратное. Целое число cназывается общим кратным целых чисел a 1 , …, a n , если оно делится на каждое из этих чисел.

Опр. Наименьшим общим кратным целых чисел a 1 , …, a n называется такое их общее кратное, которое делит любое общее кратное этих чисел. Об-ие: НОК(a 1 , …, a n). Положительное наименьшее общее кратное чисел a 1 , …, a n , отличных от нуля, об-ся через .

Сл-ие. Любые два наименьших общих кратных целых чисел a 1 , …, a n ассоциированы в Z, т.е. могут отличаться только знаком. Если число mесть НОК(a 1 , …, a n), то и число (-m) есть НОК(a 1 , …, a n).

Сл-ие. Если m – наименьшее общее кратное чисел a 1 , …, a n , то множество всех общих кратных этих чисел совпадает с множеством всех кратных числа m.

Из курса программирования известно, что целое число может быть представлено в памяти компьютера разными способами, в частности, это представление зависит от того, как оно описано: как величина типа integer , или real , или string . При этом в большинстве языков программирования под целыми числами понимаются числа из весьма ограниченного диапазона: типичный случай - от -2 15 = -32768 до 2 15 - 1 = 32767 . Системы компьютерной алгебры имеют дело с большими целыми числами, в частности, любая такая система умеет вычислять и выводить в десятичной записи числа вида 1000 ! (более тысячи знаков).

В данном курсе мы будем рассматривать представление целых чисел в символьном виде и не вдаваться в подробности, какая память отводится для записи одного символа (бит, байт или другая). Наиболее распространенным является представление целых чисел в позиционных системах счисления . Такая система определяется выбором основания счисления, например, 10 . Множество десятичных целых чисел обычно описывается следующим образом:

Выписанное определение целых чисел дает однозначность представления каждого такого числа, и аналогичное определение (только, может быть, с другим основанием) используется в большинстве систем компьютерной алгебры . Пользуясь таким представлением, удобно реализовать арифметические операции над целыми числами. При этом сложение и вычитание являются относительно "дешевыми" операциями, а умножение и деление - "дорогими" . При оценке сложности арифметических операций следует учитывать как стоимость элементарной операции (одноразрядной), так и количество одноразрядных операций для выполнения какого-либо действия над многозначными числами. Сложность умножения и деления обусловлена, в первую очередь, тем, что с ростом длины числа (его записи в какой-либо системе счисления) количество элементарных операций увеличивается по квадратичному закону, в отличие от линейного для сложения и вычитания. К тому же, то, что мы обычно называем алгоритмом деления многозначных чисел, в действительности основано на переборе (часто весьма значительном) возможной очередной цифры частного, и при этом недостаточно просто воспользоваться правилами деления однозначных чисел. При большом основании системы счисления (часто оно может иметь порядок 2 30 ) этот способ малоэффективен.

Пусть - натуральное число (записанное в десятичной системе). Чтобы получить его запись в -ичной системе счисления, можно воспользоваться следующим алгоритмом ( обозначает целую часть числа ):

Дано: A-натуральное число в десятичной системе счисления k > 1-натуральное число Надо: A-запись числа A в k-ичной системе счисления Начало i:= 0 цикл пока A > 0 bi:= A (mod k) A:= i:= i + 1 конец цикла dA:= i - 1 Конец

Для восстановления десятичного числа по последовательности его k -ичной записи используется следующий алгоритм:

Дано: k > 1-натуральное число последовательность цифр, представляющих число A в k-ичной системе Надо: A-запись числа A в десятичной системе счисления Начало A:= 0 цикл пока не конец последовательности b:= очередной элемент последовательности A:= A * k + b конец цикла Конец

1.2. УПРАЖНЕНИЕ. Объясните, почему для перевода числа из десятичной системы в k -ичную используется деление, а для перевода из k -ичной системы в десятичную - умножение.

Перемножая "столбиком" два двузначных числа в десятичной системе счисления, мы выполняем следующие операции:

(10a + b)(10c + d) = 100ac + 10(ad + bc) + bd,

т. е. 4 операции умножения одноразрядных чисел, 3 операции сложения и 2 операции умножения на степень основания счисления, которые сводятся к сдвигу. При оценке сложности можно учитывать все элементарные операции, не разделяя их по весам (в данном примере мы имеем 9 элементарных операций). Задача оптимизации алгоритма сводится при данном подходе к минимизации общего числа элементарных операций. Можно, однако, считать, что умножение является более "дорогой" операцией, чем сложение, которое, в свою очередь, "дороже" сдвига. Учитывая только наиболее дорогие операции, мы получаем, что мультипликативная сложность умножения двузначных чисел "столбиком" равна 4.

В параграфе 5 рассматриваются алгоритмы вычисления наибольших общих делителей и оценивается их сложность.

Рассмотренное представление не является единственным каноническим представлением целых чисел. Как уже отмечалось, для выбора канонического представления можно воспользоваться единственностью разложения натурального числа на простые множители. Такое представление целого числа может быть применено в тех задачах, где используются только операции умножения и деления, так как они становятся очень "дешевыми" , однако несоизмеримо возрастает стоимость операций сложения и вычитания, что препятствует использованию подобного представления. В некоторых задачах отказ от канонического представления дает значительный выигрыш в быстродействии, в частности, может использоваться частичное разложение числа на множители. Особенно полезен аналогичный метод при работе не с числами, а с многочленами.

Если известно, что при работе программы все встречающиеся в вычислениях целые числа ограничены по абсолютной величине некоторой заданной константой, то можно использовать для задания таких чисел их систему вычетов по модулям некоторых взаимно простых чисел, произведение которых превосходит упомянутую константу. Вычисления с классами вычетов выполняются, как правило, быстрее, чем арифметика многократной точности. А арифметикой многократной точности при таком подходе нужно пользоваться только при вводе или выводе информации.

Отметим, что наряду с каноническими представлениями в системах компьютерной алгебры используются и другие представления. В частности, желательно, чтобы наличие или отсутствие знака "+" перед целым числом не влияло на восприятие его компьютером. Таким образом, для положительных чисел получается неоднозначное представление, хотя форма отрицательных чисел определена однозначно.

Другое требование - на восприятие числа не должно влиять наличие нулей перед первой значащей цифрой.

1.3. УПРАЖНЕНИЯ.

  1. Оценить количество одноразрядных умножений, используемых при умножении столбиком m -значного числа на n - значное.
  2. Показать, что два двузначных числа можно перемножить, используя только 3 умножения однозначных чисел и увеличив число сложений.
  3. Найти алгоритм деления длинных чисел, не требующий большого перебора при нахождении первой цифры частного.
  4. Описать алгоритм перевода натуральных чисел из m -ичной системы счисления в n -ичную.
  5. В римской нумерации для записи чисел используются следующие символы: I - единица, V - пять, X - десять, L - пятьдесят, C - сто, D - пятьсот, M - тысяча. Символ считается отрицательным, если правее него найдется символ большего числа, и положительным в противном случае. Например, число 1948 в этой системе запишется так: MCMXLVIII . Сформулировать алгоритм перевода числа из римской записи в десятичную и обратно. Реализовать полученный алгоритм на одном из алгоритмических языков (например, C ). Ограничения на исходные данные: 1 <= N < 3700 , в записи результата ни один символ не должен появляться больше 3 раз.
  6. Сформулировать алгоритм и написать программу сложения натуральных чисел в римской нумерации.
  7. Будем говорить, что мы имеем дело с системой счисления со смешанным или векторным основанием , если нам задан вектор из n натуральных чисел M = (m 1 , . . . ,m n) (осно вание счисления) и запись K = (k 0 , k 1 , . . . , k n) обозначает число k = k 0 +m 1 (k 1 +m 2 (k 2 +· · ·+m n ·k n) . . .)) . Написать программу, которая по данным (день недели, часы, минуты, секунды) определяет, сколько секунд прошло с начала недели (понедельник, 0, 0, 0) = 0 , и выполняет обратное преобразование.
Прически