Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / 2_Арифметические_операции_Реализация_в_Python_ipynb_Colab (1)

.pdf
Скачиваний:
0
Добавлен:
28.06.2026
Размер:
906.41 Кб
Скачать

Арифметические операции. Реализация в языках программирования.

Арифметические операции

Арифметика - раздел математики, изучающий числа, их отношения и свойства. Предметом арифметики является понятие числа (натуральные, целые, рациональные, вещественные, комплексные числа) и его свойства.

В арифметике определенны следующие вычислительные операции (прямые и обратные им).

Прямая операция

Обратная операция

Сложение

Вычитание

Умножение

Деление

Возведение в степень

Извлечение корня

Натуральные числа

Натуральные числа числа, возникающие естественным образом при счёте (например, 1, 2, 3, 4, ...).

Внимание! Отрицательные и нецелые числа к натуральным не относят.

Место нуля в понятии натурального числа Существуют два подхода к определению натуральных чисел:

1.Порядковый подход числа, возникающие при подсчёте (нумерации) предметов: первый, второй, третий, четвёртый, пятый...

(ноль отсутствует)

2.Количественный подход числа, возникающие при обозначении количества предметов: 0 предметов, 1 предмет, 2 предмета, 3 предмета, 4 предмета, 5 предметов...

(ноль присутствует)

Обозначения

Символ Значение

Натуральные числа с нулём

* Натуральные числа без нуля

Примечание: В разных учебных заведениях и странах могут использовать разные обозначения.

Целые числа

Целые числа расширение множества натуральных чисел, получаемое добавлением к нему нуля и отрицательных чисел.

Согласно своему построению, множество целых чисел состоит из трёх частей: 1. Натуральные числа (или, что то же самое, целые положительные):

2. Ноль число, обозначаемое . Его определяющее свойство:

для любого

3. Целые отрицательные числа:

(при записи помечаются спереди знаком минус)

Свойство противоположных чисел

 

 

 

Для каждого целого числа существует и единственно противоположное ему число, обозначаемое

, обладающее свойством:

Если

положительно, то

отрицательно.

 

 

 

Если

отрицательно, то

положительно.

.

 

 

Ноль противоположен самому себе:

 

 

Обозначение

 

 

 

 

Множество целых чисел обозначается символом:

от нем

числа

 

 

 

 

 

Обозначение Значение

Все целые числа:

Положительные целые числа (натуральные):

Отрицательные целые числа:

Все целые числа, кроме нуля

Примечание: В некоторых учебных пособиях

может означать неотрицательные целые числа (

).

Рациональные числа

Рациональное число число, которое можно представить в виде обыкновенной дроби:

где:

 

 

 

 

целое число (

)

 

)

 

натуральное число (

,

Примеры рациональных чисел

 

 

 

 

Число Представление в виде дроби

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обозначение

Множество рациональных чисел обозначается символом:

от англ

частное

Обозначение Значение

Все рациональные числа

Положительные рациональные числа

Отрицательные рациональные числа

Все рациональные числа, кроме нуля

Важные свойства

1. Любое целое число является рациональным, так как его можно представить в виде :

2. Рациональные числа замкнуты относительно сложения, вычитания, умножения и деления (кроме деления на ноль):

Сумма рациональных чисел рациональное число Произведение рациональных чисел рациональное число

Разность рациональных чисел рациональное число Частное рациональных чисел (при ненулевом делителе) — рациональное число

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

Вещественные числа

Вещественные (или действительные) числа расширение множества рациональных чисел путём добавления иррациональных чисел.

Иррациональные числа

Иррациональное число число, которое не может быть представлено в виде обыкновенной дроби

 

, где

,

.

 

Примеры чисел

Рациональные числа Иррациональные числа

Обозначение

Множество вещественных чисел обозначается символом:

от англ

действительный

Обозначение Значение

Все вещественные числа

Положительные вещественные числа

Отрицательные вещественные числа

Все вещественные числа, кроме нуля

Важные свойства вещественных чисел

1.Континуум множество вещественных чисел непрерывно (нет "дырок" на числовой прямой)

2.Всякое иррациональное число можно представить в виде бесконечной непериодической десятичной дроби:

3.Вещественные числа заполняют числовую прямую сплошь:

Любой точке на числовой прямой соответствует вещественное число Любому вещественному числу соответствует точка на числовой прямой

Примечание: Иррациональные числа вместе с рациональными образуют множество вещественных чисел. Иррациональных чисел "больше", чем рациональных.

Комплексные числа

Комплексные числа числа вида

, где:

 

вещественные числа (

)

 

 

мнимая единица

 

 

 

 

Мнимая единица обладает свойством:

 

 

 

 

 

 

 

Терминология

 

 

 

 

 

Для комплексного числа

 

:

 

 

 

Компонент

Название

Обозначение

 

Действительная часть

 

 

 

 

 

 

Мнимая часть

 

 

 

 

 

 

Мнимая единица

 

 

 

 

 

 

Примеры комплексных чисел

 

 

 

 

 

Число

Действительная часть Мнимая часть

 

(чисто действительное)

(чисто мнимое)

Обозначение

Множество комплексных чисел обозначается символом:

от англ

комплексный

Обозначение Значение

Все комплексные числа

Основные операции с комплексными числами

Для чисел

и

:

Сложение

 

|

Вычитание

 

|

Умножение

 

|

Сопряжение

 

|

Модуль

 

|

Важно: Комплексные числа позволили решить уравнения, которые не имеют решений в действительных числах,

например

, корнями которого являются

и

.

 

 

 

Связь между числовыми множествами

 

 

Все вещественные числа являются частным случаем комплексных (при

):

Где:

натуральные числа

целые числа

рациональные числа

вещественные числа

комплексные числа

Числовые типы в Python

Целые числа ( int )

Тип: int — ссылочный тип с поддержкой длинной арифметики

(размер числа ограничен только доступной памятью)

#ПримерыцелыхчиселвPython

a=

42

 

b=

-7

 

c=

123456789012345678901234567890 #оченьбольшоечисло

d=

0b1010

#двоичноечисло(10вдесятичной)

e=

0xFF

#шестнадцатеричноечисло(255вдесятичной)

print(f"a= {a},тип: {type(a)}") print(f"c= {c},тип: {type(c)}")

print(f"d= {d},e=

{e}")

a = 42, тип: <class 'int'>

c

= 123456789012345678901234567890, тип: <class 'int'>

d

= 10, e = 255

 

Рациональные числа (Fraction)

Тип: Fraction из модуля fractions для точных вычислений с дробями

from fractions import Fraction

#Созданиедробей f1=Fraction( 1, 3) f2=Fraction( 2, 6) f3=Fraction( '0.75') f4=Fraction( 5, 1)

#1/3

#автоматическисократитсядо1/3

#изстроки3/4:

#целоечислокакдробь5/1:

print(f"f1=

{f1}")

 

 

print(f"f2=

{f2} (автоматическисократилась)"

)

print(f"f1+f3=

 

{f1+f3}

")

 

#Проверканаравенство

 

 

 

print(f"f1==f2:

{f1==f2}

") #True

 

 

 

 

 

 

 

f1

= 1/3

 

 

 

 

f2

= 1/3 (автоматически сократилась)

 

f1

+ f3 = 13/12

 

 

 

f1

== f2: True

 

 

 

Вещественные числа

float ссылочный тип с ограниченной точностью

Тип: float соответствует типу double в C (64 бита, ~15-17 значащих цифр)

#Проблематочностиfloat a= 0.1 + 0.2

print(f"0.+10.2= {a}")

print(f"0.+10.==2 0.3: {a== 0.3}") #Falseиз-погрешностиза !

#Специальныезначения inf= float('inf') nan= float('nan')

print(f"Бесконечность: {inf}") print(f"NaN(нечисло): {nan}")

0.1 + 0.2 = 0.30000000000000004

0.1 + 0.2 == 0.3: False

Бесконечность: inf NaN (не число): nan

Decimal ссылочный тип с длинной арифметикой

Тип: Decimal из модуля decimal для точных десятичных вычислений

from decimal import Decimal,getcontext

#Настройкаточности(количествозначащихцифр) getcontext()= .prec 28

#СозданиеDecimal(лучшеиспользоватьстроки!) d1=Decimal( '0.1') d2=Decimal( '0.2')

d3=d1+d2

print(f"Decimal('0+Decimal('0.1')= .2') {d3}") print(f"Равно0.3? {d3==Decimal( '0.3')}") #True!

#Сравнениесfloat

 

print(f"Decimal('0*3=.1')

{Decimal('0.1')* 3}")

print(f"float(0*3.=1)

{0.1 * 3}")

Decimal('0.1') + Decimal('0.2') = 0.3 Равно 0.3? True

Decimal('0.1') * 3 = 0.3

float(0.1) * 3 = 0.30000000000000004

Комплексные числа (complex)

Тип: complex ссылочный тип с ограниченной точностью (как float)

#Созданиекомплексныхчисел

 

z1=

2 + 3j

#прямаязапись

z2=

complex(4, -5)

#черезконструктор

z3=

1j

#чистомнимоечисло

print(f"z1=

{z1},тип: {type(z1)}")

print(f"z2=

{z2}")

print(f"z3=

{z3}")

#Доступкчастям

 

 

 

print(f"Действительнаячастьz1:

 

{z1.real}")

print(f"Мнимчастьяz1:

{z1.imag}")

 

#Операциискомплекснымичислами

 

 

 

print(f"Сложение: {z1} +

{z2} =

{z1+z2}

")

print(f"Умножение: {z1} *

{z2} =

{z1*z2}

")

print(f"Модуль |z1|: {abs(z1)}")

z1 = (2+3j), тип: <class 'complex'>

z2 = (4-5j)

z3 = 1j

Действительная часть z1: 2.0 Мнимая часть z1: 3.0

Сложение: (2+3j) + (4-5j) = (6-2j) Умножение: (2+3j) * (4-5j) = (23+2j) Модуль |z1|: 3.605551275463989

Сводная таблица числовых типов Python

Тип

Модуль

 

 

Точность

Особенности

int

встроенный

 

неограниченная

длинная арифметика, размер ограничен только памятью

float

встроенный

ограниченная (≈15-17 знаков)

соответствует типу double в C, есть проблемы с десятичными дробями

complex

встроенный

 

ограниченная

состоит из двух float (действительная и мнимая части)

Fraction

fractions

абсолютная точность

точные рациональные дроби, автоматическое сокращение

Decimal

decimal

 

настраиваемая

точные десятичные дроби, настраиваемая точность вычислений

Рекомендации по выбору типа

 

Для каких задач

 

 

Какой тип использовать

Обычные математические расчёты

float

 

Денежные расчёты, финансы

 

Decimal

 

Точные дробные вычисления

 

Fraction

 

Очень большие целые числа

 

int

 

Комплексные числа, электротехника

complex

 

Приоритет арифметических операций

Порядок выполнения операций указывается скобками. Если скобок нет, то приоритет операций, в порядке убывания, следующий.

1.Возведение в степень.

2.Умножение и деление.

3.Сложение и вычитание.

Если в выражении используются операции с одинаковым приоритетом то вычисления производятся слева направо.

Сложение

Сложение одна из основных бинарных математических операций (арифметических действий) двух аргументов (слагаемых),

результатом которой является новое число (сумма), получаемое увеличением значения первого аргумента на значение второго аргумента.

У сложения есть несколько важных свойств:

Коммутативность:

Ассоциативность:

Наличие нуля:

Вычитание

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

Разность число результат сложения которого с вычитаемым дает уменьшаемое.

На письме обычно обозначается с помощью знака «минус»:

.

Вычитание операция обратная сложению.

 

У вычитания есть несколько важных свойств:

 

Антикоммутативность:

Неассоциативность:

Вычитание 0 (нулевого элемента) даёт число равное исходному:

Реализация на Python

Используются операторы + и -.

import decimal

a= 3 b= 2 c=a+b

a1= 2.5

b1= 3.5 c=a1+b1

a2=decimal.Decimal( "0.3")

b2=decimal.Decimal( "0.1")

c2=a2-(b2+b2+b2)

Особенности реализации

Для float точность представления числа ограниченна (формате IEEE 754 с плавающей точкой). Что приводит к элементам несоответствия операций для вещественных типов в Python и в арифметике.

a= 0.3 b= 0.1

c=a-(b+b+b) print(c)

-5.551115123125783e-17

Умножение

Умножение одна из основных математических операций над двумя аргументами (множителями, сомножителями). Первый аргумент называют множителем; результат умножения двух аргументов называют произведением.

Умножение имеет различные формы:

здесь и являются множителями, а произведение.

здесь и являются операндами, а сумма.

Так, для натуральных чисел умножаемые числа можно записать в виде произведения:

где и множители, а произведение.

Умножение свойства

Коммутативность:

Ассоциативность:

Дистрибутивность:

Относительно умножения существует единственный нейтральный элемент 1. Умножение любого числа на 1 (нейтральный элемент) даёт число, равное исходному:

Нейтральный элемент:

Умножение на 1 идемпотентно, то есть повторное применение операции к объекту даёт тот же результат, что и одинарное:

Идемпотентность:

Умножение на 0 даёт 0:

Нулевой элемент:

Реализация на Python

Используется оператор *

import decimal

a= 3 b= 2 c=a*b

a1= 2.5

b1= 3.5 c=a1*b1

a2=decimal.Decimal( "0.3")

b2=decimal.Decimal( "0.1")

c2=a2*b2

Деление

Деление действие, обратное умножению.

делимое

делитель

частное Нахождение частного сводится к нахождению числа которое при умножении на делитель дает делимое.

Свойства деления

Не коммутативно:

Не ассоциативно:

Дистрибутивность:

Нейтральный элемент справа:

Существует единственный обратный элемент, получаемый делением единицы на число, что даёт число, обратное исходному.

Обратный элемент:

Нулевой элемент слева:

Деление на ноль (нулевой элемент) не определено.

Деление на противоположный элемент даёт минус единицу:

Деление целых чисел. Вычисление остатка.

Для целых чисел деление определяться следующим образом.

делимое (целое)

 

делитель (целое)

 

неполное частное (целое)

(натуральное)

остаток от деления.

Важно! Остаток всегда должен быть положительным.

Например рассмотрим деление 5 на 2. запишем:

Примеры деления целых чисел и вычисления остатка

,

,

,

,

Реализация на Python

Для целочисленного деления и вычисления остатка используются операторы // и %

a= 5 b= 3 r=a//b q=a%b

Особенности реализации

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

Делимое (a)

Делитель (b)

Неполное частное (r)

Остаток от деления (q)

Согласованность с мат. определением

5

3

1

2

Да

5

-3

-2

-1

Нет

-5

3

-2

1

Да

-5

-3

1

-2

Нет

Деление вещественных чисел. Реализация.

Используется оператор /

import decimal

a= 5.2 b= 2.1 c=a/b

a1=decimal.Decimal( "5.2")

b1=decimal.Decimal( "2.1")

c1=a1/b1

Возведение в степень

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

Степень с основанием и натуральным показателем обозначается как :

Свойства возведения в степень

Не коммутативно

Не ассоциативно

Существование единицы

Возведение в степень 0

Дистрибутивность относительно умножения

Свойство произведения степеней

Свойство степени степени

Возведение в степень. Реализация.

Используется оператор **

a= 3 b= 2 c=a**b

Извлечение корня

Корень -й степени из числа определяется как такое число , что

. Здесь натуральное число, называемое

показателем корня (или степенью корня).

 

Свойства корня:

нечетное

четное

Извлечение корня. Реализация.

Частный случай

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

Примеры извлечения корня через возведение в степень

Пример

Математическая запись Запись в Python Результат

1

8 ** (1/3)

2

16

** (1/4)

3

32

** (1/5)