Модуль числа это: Что такое модуль числа? Ответ на webmath.ru

Содержание

Модуль числа. Абсолютная величина | Математика

Модуль числа обозначается двумя вертикальными чертами, между которыми заключается число:

|-7|  —  модуль числа  -7.

Модуль числа — это абсолютная величина числа. Абсолютная величина — это неотрицательное число, удовлетворяющее условиям:

|x| = x,   если   x ⩾ 0;

|x| = —x,   если   x < 0.

Следовательно, модуль числа – это положительное число или нуль.

Модуль на координатной прямой

Модуль числа — это расстояние от начальной точки до соответствующей точки на координатной прямой. Рассмотрим координатную прямую с точками  A  и  B:

Точка  A  соответствует числу  -5,  которое находится в пяти единичных отрезках от начальной точки, то есть длина отрезка  AO  равна  5. Так как модуль равен расстоянию от начала координат до точки, то модуль числа  -5  равен  5,  это можно записать так:

|-5| = 5.

Точка  B  соответствует числу  4,5,  значит длина отрезка  OB  равна  4,5. Следовательно, модуль числа  4,5  равен  4,5:

|4,5| = 4,5.

Точка  O  соответствует числу  0  и является начальной точкой, следовательно, модулем нуля будет нуль:

|0| = 0.

Следует иметь ввиду, что чем дальше от нуля точка, изображающая данное число, тем больше модуль этого числа.

Свойства абсолютной величины

Абсолютной величиной нуля является число нуль.

Пример:

|+0| = |-0| = 0.

Модулем положительного числа называется само это число.

Пример:

|+2| = 2;   |+35| = 35   и т. д.

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

Пример:

|-10| = 10,

потому что  -(-10) = 10.

Модули противоположных чисел равны.

Пример:

|+7| = |-7| = 7,   |-5| = |+5| = 5.

Модуль числа. Модуль разности чисел. Модуль действительного числа.

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


Что такое модуль числа?


Модуль числа — это его абсолютное значение (отрицательное или положительное значение)  обозначается как  \(|a |\) :

  \(|5 | =5 \) если \(5>0 \)
  \(|-\frac{4}{7}|= -(-\frac{4}{7}) = \frac{4}{7}\) если \(-\frac{4}{7}<0 \)
  \( |0|=0\), так как \( 0≥0 \)

 Пример 1. \(|x-3 |=4\)
Решение :
  \(x-3= 4 \)      \(-(х-3)= 4\)
        \( х= 7 \)        \( x-3= -4 \)
                          \( x= -1\)

Ответ: \( х= 7 \) ; \( x= -1\)
         
 Пример 2. Решить \( |3x-2 | = |5x+4| \)

Решение:

                                                                                        \( |3x-2 | = |5x+4| \)                \(3x-2 = — (5x+4)\)

                                                                                         \(3x-5x = 4+2\)                     \(x=-\frac{1}{4}\)

                                                                                         \( — 2x = 6\)

                                                                                          \( x = -3 \)

                                                                                           Ответ: \( x = -3 \) ; \(x=-\frac{1}{4}\)

Больше уроков и заданий по математике вместе с преподавателями нашей онлайн-школы «Альфа». Запишитесь на пробное занятие уже сейчас!

Запишитесь на бесплатное тестирование знаний!

Наши преподаватели

Оставить заявку

Репетитор по математике

Армавирский государственный университет, Днепропетровский государственный университет

Проведенных занятий:

Форма обучения:

Дистанционно (Скайп)

Репетитор 5-11 классов. Имею большой опыт работы со школьниками. Профессионально устраню любые пробелы в знаниях, доходчиво объясню учебный материал, подготовлю к ОГЭ, ГВЭ, ЕГЭ, поступлению в лицей, колледж, ВУЗ. В работе использую ИК — технологии. Смогу помочь понять математику как не сложную науку, а как интересную и нужную.

Оставить заявку

Репетитор по математике

Витебский государственный педагогический институт им. Кирова

Проведенных занятий:

Форма обучения:

Дистанционно (Скайп)

Репетитор 5-11 классов. Я люблю математику, потому что она первой научила меня думать. Не бояться присмотреться к сложной задаче, разложить ее на простые и понятные части и решить. Дала веру в свои силы и право на ошибку. Сегодня я могу поделиться своими знаниями с вами. Работать будем по методике поэтапного усвоения материала, т.е. учим один раз и навсегда. Я готова к диалогу с каждым учеником, ваши проблемы — это вызов моему профессионализму. Жду вас. До встречи !

Оставить заявку

Репетитор по математике

МГУ им. Н.П. Огарева

Проведенных занятий:

Форма обучения:

Дистанционно (Скайп)

Репетитор 3-8 классов с опытом работы учителем математики в гимназии. С детства я испытывала огромное уважение к профессии учителя и уже в школе точно знала, что буду учителем математики. Я очень люблю свою работу и с радостью поделюсь своим опытом и знаниями со своими учениками, помогу им освоиться в этой невероятно увлекательной науке. Уверена, что в изучении математики важен не только результат, но и сам процесс. С каждым ребенком мы уверенно дойдем к поставленной цели в дружелюбной обстановке и отличном настроении. До встречи на занятиях!

Векторы

  • — Индивидуальные занятия
  • — В любое удобное для вас время
  • — Бесплатное вводное занятие

Похожие статьи

Модуль числа – что это такое: что значит абсолютная величина — объяснение и решение для 6 класса

В школе на уроке математики каждый год ученики разбирают новые темы. 6 класс обычно изучает модуль числа – это важное понятие в математике, работа с которым встречается далее в алгебре и высшей математики. Очень важно изначально правильно понять объяснение термина и разобраться в этой теме, чтобы успешно проходить прочие темы.

Величины в математике

Для начала следует понимать, что абсолютная величина – это параметр в статистике (измеряется количественно), который характеризует изучаемое явление по его объему. При этом явление должно осуществляться в определенных временных рамках и с определенным месторасположением. Различают значения:

  • суммарные – подходят для группы единиц или полностью всей совокупности,
  • индивидуальные – подходят только для работы с единицей некой совокупности.

Это интересно! Основы геометрии: что это такое биссектриса треугольника

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

Модуль числа

Что такое модуль числа?

Важно! Данное определение «module» с латыни переводиться как «мера» и означает абсолютную величину любого натурального числа.

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

Для того, чтобы определить данный показатель у числа, следует не учитывать его знак (минус, плюс), но при этом следует помнить то, что он никогда не может быть отрицательным. Данное значение на бумаге выделяется графически в виде квадратных скобок |a|. При этом, математическое определение такое:

|х| = х, если х больше или равен нулю и -х, если меньше нуля.

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

Это интересно! Как разложить на множители квадратный трехчлен: формула

В геометрии module можно рассмотреть на примере координатной прямой, на которое нанесены 2 произвольные точки. Предположим, одна А имеет значение 5, а вторая В — 6. При подробном изучении чертежа станет ясно, что расстояние от А до В – 5 единиц от нуля, т.е. начала координат, а точка В размещена от начала координат на 6 единиц. Можно сделать вывод, что module точки, А = 5, а точки В = 6. Графически это можно обозначить так: | 5 | = 5. Т. е. расстояние от точки до начала координат является модулем данной точки.

Полезное видео: что такое модуль действительного числа?

Свойства

Как у любого математического понятия, у module есть свои математические свойства:

  1. Он всегда положительный, поэтому модулем положительного значения будет оно само, например, модуль числа 6 и -6 равен 6. Математически это свойство можно записать как |a| = a, при a&gt, 0,
  2. Показатели противоположных чисел равны между собой. Это свойство понятнее в геометрическом изложении, поскольку на прямой данные числа располагаются в разных местах, но при этом от начала отсчета их отделяет равное количество единиц. Математически это записывается так: |а| = |-а|,
  3. Модуль нуля равен нулю, при условии, что действительное число – это ноль. Это свойство подтверждается тем фактом, что ноль является началом координат. Графически это записывают так: |0| = 0,
  4. Если требуется найти модуль двух умножающихся цифр, стоит понимать, что он будет равен полученному произведению. Другими словами, произведение величин А и В = АВ, при условии, что они положительные или же отрицательные, и тогда произведение равняется -АВ. Графически это можно записать как |А*В| = |А| * |В|.

Это интересно! Считаем правильно: как находить процент от суммы и числа

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

Свойства модуля

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

В уравнениях

В случае работы и решения математических неравенств, в которых присутствует module, всегда необходимо помнить, что для получения итогового правильного результата следует раскрыть скобки, т.е. открыть знак module. Зачастую, в этом и есть смысл уравнения.

При этом стоит помнить, что:

  • если в квадратных скобках записано выражение, его необходимо решить: |А + 5| = А + 5, при А больше или равным нулю и 5-А, в случае А меньше нуля,
  • квадратные скобки чаще всего должны раскрываться независимо от значений переменной, например, если в скобках заключено выражение в квадрате, поскольку при раскрытии в любом случае будет положительное число.

Это интересно! Уроки математики: умножение на ноль главное правило

Очень легко решаются уравнения с module путем занесения значений в систему координат, поскольку тогда легко увидеть визуально значения и их показатели.

Полезное видео: модуль действительного числа и его свойства

Вывод

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

Урок 17. противоположные числа. модуль числа — Математика — 6 класс

Математика

6 класс

Урок № 17

Противоположные числа. Модуль числа

Перечень рассматриваемых вопросов:

  1. Понятие противоположного числа.
  2. Понятие модуля числа.
  3. Решение различных заданий по теме «Противоположные числа. Модуль числа».

Тезаурус

Числа, которые отличаются только знаком, называются противоположными.

Модулем положительного числа называют само это число.

Модулем отрицательного числа называют противоположное ему (положительное) число.

Модулем числа 0 является число 0.

Основная литература

  1. Никольский С. М. Математика. 6 класс: Учебник для общеобразовательных учреждений // С. М. Никольский, М. К. Потапов, Н.Н. Решетников и др. — М.: Просвещение, 2017. — 258 с.

Дополнительная литература

  1. Чулков П. В. Математика: тематические тесты. 5-6 кл. // П. В. Чулков, Е.Ф. Шершнёв, О.Ф. Зарапина. — М.: Просвещение, 2009. — 142 с.
  2. Шарыгин И.Ф. Задачи на смекалку: 5-6 кл. // И.Ф. Шарыгин, А. В. Шевкин. — М.: Просвещение, 2014. — 95 с.

Теоретический материал для самостоятельного изучения

Считается, что если перед целым числом поставить знак «+», то это не изменяет самого числа.

Например,

число 7 можно записать как + 7

число – 7 можно записать как + (– 7)

7 = + 7

– 7 = + (– 7)

Поэтому ряд целых чисел можно записывать в виде:

…, – 6, – 5, – 4, – 3, – 2, – 1, 0, + 1, + 2, + 3, + 4, + 5, + 6, …

Числа, которые отличаются только знаком, называются противоположными.

Например, противоположные числа:

– 7 и + 7

– 53 и 53

Модуль или абсолютная величина числа.

Разбор заданий тренировочного модуля

№ 1. Единичный выбор.

Ответ: + 107.

№2. Ввод с клавиатуры пропущенных элементов в текст.

Модуль числа, сравнение чисел

Модуль числа

Модуль числа а обозначают $|a|$. Вертикальные черточки справа и слева от числа образуют знак модуля.

Например, модуль любого числа (натурального, целого, рационального или иррационального) записывается так: $|5|$, $|-11|$, $|2,345|$, $|\sqrt[4]{45}|$.

Определение 1

Модуль числа a равен самому числу $a$, если $a$ является положительным, числу $−a$, если $a$ является отрицательным, или $0$, если $a=0$.

Данное определение модуля числа можно записать следующим образом:

$|a|= \begin{cases} a, & a > 0, \\ 0, & a=0,\\ -a, &a

Можно использовать более краткую запись:

$|a|=\begin{cases} a, & a \geq 0 \\ -a, & a

Пример 1

Вычислить модуль чисел $23$ и $-3,45$.

Решение.

Найдем модуль числа $23$.

Число $23$ – положительное, следовательно, по определению модуль положительного числа равен этому числу:

$|23|=23$.

Найдем модуль числа $–3,45$.

Число $–3,45$ – отрицательное число, следовательно согласно определению модуль отрицательного числа равен числу, противоположному данному:

$|-3,45|=3,45$.

Ответ: $|23|=23$, $|-3,45|=3,45$.

Готовые работы на аналогичную тему

Определение 2

Модуль числа является абсолютной величиной числа.

Таким образом, модуль числа – число под знаком модуля без учета его знака.

Модуль числа как расстояние

Геометрическое значение модуля числа: модуль числа – это расстояние.

Определение 3

Модуль числа a – это расстояние от точки отсчета (нуля) на числовой прямой до точки, которая соответствует числу $a$.

Пример 2

Например, модуль числа $12$ равен $12$, т.2}=14$.

Ответ: $|-14|=14$.

Сравнение отрицательных чисел

Сравнение отрицательных чисел основывается на сравнении модулей этих чисел.

Замечание 1

Правило сравнения отрицательных чисел:

  • Если модуль одного из отрицательных чисел больше, то такое число является меньшим;
  • если модуль одного из отрицательных чисел меньше, то такое число является большим;
  • если модули чисел равны, то отрицательные числа равны.

Замечание 2

На числовой прямой меньшее отрицательное число располагается левее большего отрицательного числа.

Пример 4

Сравнить отрицательные числа $−27$ и $−4$.

Решение.

Согласно правилу сравнения отрицательных чисел найдем сначала модули чисел $–27$ и $–4$, а затем сравним полученные положительные числа.

$|-27|=27$

$|-4|=4$

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

$27 > 4$.

Таким образом, получаем, что $–27 |-4|$.

Ответ: $–27

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

Сравнение чисел с противоположными знаками

Замечание 3

Правило сравнения чисел с противоположными знаками:

Положительное число всегда больше отрицательного, а отрицательное число всегда меньше положительного.

Пример 5

Сравнить целые числа $−53$ и $8$.

Решение.

Числа имеют противоположные знаки. Согласно правилу сравнения чисел с противоположными знаками получаем, что отрицательное число $−53$ меньше положительного числа $8$.

Ответ: $−53

Пример 6

Сравнить числа $3 \frac{11}{13}$ и $–5,(123)$.

Решение.

Согласно правилу сравнения чисел с противоположными знаками отрицательное число всегда меньше положительного. Следовательно, $–5,(123)

Ответ: $–5,(123)

По данному правилу можно сравнивать также и действительные числа с противоположными знаками.

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

Что такое модуль числа в математике

Термин (module) в буквальном переводе с латинского означает «мера». Это понятие было введено в математику английским учёным Р. Котесом. А немецкий математик К. Вейерштрасс ввёл в обращение знак модуля — символ, которым это понятие обозначается при написании.

Вконтакте

Facebook

Twitter

Google+

Мой мир

Впервые данное понятие изучается в математике по программе 6 класса средней школы. Согласно одному из определений, модуль — это абсолютное значение действительного числа. Другими словами, чтобы узнать модуль действительного числа, необходимо отбросить его знак.

Графически абсолютное значение а обозначается как |a|.

Основная отличительная черта этого понятия заключается в том, что он всегда является неотрицательной величиной.

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

Это интересно: умножение на 0 — правило для любого числа.

Геометрическое значение

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

  1. Для примера можно взять координатную прямую и на ней нанести 2 произвольные точки. Допустим, одна из точек (А) будет иметь числовое значение 5, а вторая (В) — 6.
  2. Если рассмотреть полученный чертёж, можно увидеть, что точка, А находится на расстоянии 5 единиц от нуля (начала координат). Точка В находится от нуля на 6 единиц. Таким образом, модулем точки, А будет число 5, а модулем точки В — число 6.
  3. В этом случае графическое обозначение выражения будет следующим: | 5 | = 5.
  4. Иными словами, если взять любое произвольное число и обозначить его на координатной прямой в виде точки А, то расстояние от нуля до этой точки и будет модулем числа А.

Графически это можно выразить следующим образом: |a| = OA.

Это интересно: признак перпендикулярности прямой и плоскости, теория и практика.

Свойства абсолютной величины

Ниже будут рассмотрены все математические свойства этого понятия и способы записи в виде буквенных выражений:

  1. Модулем любой цифры является величина неотрицательная. Таким образом, абсолютным значением положительной величины будет выступать она сама. Графически эта закономерность выражается следующим образом: |a| = a, если a> 0.
  2. Модули противоположных величин равны друг другу Это объясняется тем фактом, что на координатной прямой противоположные числа хотя и располагаются в разных точках, но находятся на одинаковом расстоянии от начальной точки отсчёта. Графически это выражается как: |а| = |-а|.
  3. Третьим свойством является то, что абсолютным значением нуля равняется сам нуль. Это условие считается верным в том случае, когда действительное число является нулем. Поскольку нулю соответствует начало отсчета в системе координат, то модулем числа ноль является сам ноль по определению. Графически: |0| = 0|.
  4. Еще одним важным свойством является то, что абсолютное значение произведений двух любых действительных чисел равняется произведению двух этих величин. Это условие необходимо рассмотреть более подробно. Иначе говоря, абсолютным значением произведения величин, А и В будет АВ в случае если оба этих значения положительные или же оба отрицательные, или -АВ при условии, что одно из этих чисел будет отрицательным. В записи эта закономерность будет выглядеть следующим образом: |А*В| = |А| * |В|.
  5. Абсолютная величина суммы любых двух действительных чисел меньше или равна сумме их модулей.
  6. Абсолютная величина разности двух произвольных величин меньше или равна разности двух абсолютных величин.
  7. Если в математическом выражении имеется постоянный положительный множитель, его можно выносить за знак | |.
  8. Такое же правило распространяется и на показатель степени выражения.

Это интересно: что такое разность в математике?

Особенности решения уравнений с модулем

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

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

|А + 5| = А + 5, если, А больше или равняется нулю.

5-А, если, А значение меньше нуля.

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

Рассмотрим ещё одни пример. Построим координатную прямую, на которой отметим все числовые значения абсолютной величиной которых будет 5.

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

Таким образом, мы можем увидеть, что на этой координатной прямой будут две интересующие нас точки со значениями 5 и -5.

Видео: Модуль числа. Математика 6 класс.

Модуль числа Арифметика

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

. Об этом говорит сайт https://intellect.icu

Обозначим на координатной прямой две точки, которые соответствуют числам -4 и 2.

модуль числа на координатной прямой» />

Точка A, соответствующая числу -4, находится на расстоянии 4 единичных отрезков от точки 0 (начала отсчета), то есть длина отрезка OA равна 4 единицам.

Число 4 (длина отрезка OA) называют модулем числа -4.

Обозначают модуль числа так: |-4| = 4

Читают символы выше следующим образом: «модуль числа минус четыре равен четырем».

Точка B, соответствующая числу +2, находится на расстоянии двух единичных отрезков от начала отсчета, то есть длина отрезка OB равна двум единицам.

Число 2 называют модулем числа +2 и записывают: |+2| = 2 или |2| = 2.

Если взять некоторое число «a» и изобразить его точкой A на координатной прямой, то расстояние от точки A до начала отсчета (другими словами длина отрезка OA) и будет называться модулем числа «a».

|a| = OA 

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

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

Запишем свойства модуля с помощью буквенных выражений, рассмотрев все возможные случаи.

  1. Модуль положительного числа равен самому числу. 
    |a| = a, если a > 0;
  2. Модуль отрицательного числа равен противоположному числу. 
    |-a| = a, если a < 0;
  3. Модуль нуля равен нулю. 
    |0| = 0, если a = 0;
  4. Противоположные числа имеют равные модули. 
    |-a| = |a|;

Примеры модулей рациональных чисел:

  • |-4,8| = 4,8
  • |0| = 0
  • |-3/8| = |3/8|

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

Модуль комплексного числа: определение и примеры — видео и стенограмма урока

Нахождение модуля

Обратите внимание, что вектор, представляющий комплексное число a + bi , также является гипотенузой (или самым длинным участком) прямоугольного треугольника с более короткими сторонами длиной a и b .

Из-за этого есть хорошо известная теорема, которую мы можем использовать, чтобы найти общую формулу для модуля комплексного числа.Эта теорема — теорема Пифагора. Теорема Пифагора гласит: «Если прямоугольный треугольник имеет длину стороны a , b и c , где c — гипотенуза или самая длинная сторона, то a 2 + b . 2 = c 2. »

Если c — это модуль комплексного числа, a + bi , то теорема Пифагора дает a 2 + b 2 = c . 2.Если извлечь квадратный корень из обеих частей этого уравнения, мы получим следующее:

c = √ ( a 2 + b 2)

Это дает нам общую формулу для модуля комплексного числа: a + bi . Поскольку он описывает длину, вы можете видеть, что √ ( a 2 + b 2) даст нам только положительное действительное число или ноль для модуля. Давайте рассмотрим несколько примеров нахождения модуля комплексных чисел.

Некоторые примеры

Предположим, что мы хотим найти модуль комплексного числа 3–4 i . Все, что нам нужно сделать, это определить a и b , а затем вставить эти значения в нашу формулу для модуля. В 3 — 4 i , a = 3 и b = -4. Подставляя их в формулу, получаем следующее:

c = √ ((3) 2 + (-4) 2) = √ (9 + 16) = √ (25) = 5

Мы получаем, что модуль упругости комплексное число 3-4 и равно 5.Эта формула, несомненно, упрощает задачу!

Рассмотрим другой пример. В этом примере мы хотим найти модуль комплексного числа, показанного на графике ниже.

На графике комплексного числа стоит точка (2, 7). Это говорит нам, что a = 2 и b = 7, поэтому мы имеем дело с комплексным числом 2 + 7 i . Чтобы найти модуль, мы просто подставляем a = 2 и b = 7 в нашу формулу:

c = √ (22 + 72) = √ (4 + 49) = √ (53) ≈ 7.28

Модуль комплексного числа, показанного на графике, равен √ (53), или приблизительно 7,28. Я думаю, мы уже разбираемся в этом!

Краткое содержание урока

Комплексное число — это число в форме a + bi , где a и b — действительные числа, а i — мнимое число √ (-1) . Мы можем изобразить комплексное число a + bi на комплексной плоскости, нанеся точку ( a , b ) на комплексной плоскости.Это дает модуль комплексного числа.

Если мы проведем отрезок линии от начала комплексной плоскости до нанесенного на график комплексного числа ( a , b ), мы создадим вектор , представляющий комплексное число a + bi . Модуль , c , a + bi — это длина этого направленного отрезка прямой или величина вектора, и его можно найти по следующей формуле:

c = √ ( a 2 + b 2)

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

Модуль упругости

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

Covid-19 привел мир к феноменальному переходу.

За электронным обучением будущее уже сегодня.

Оставайтесь дома, оставайтесь в безопасности и продолжайте учиться !!!

Пусть z = a + ib — комплексное число. Затем модуль комплексного числа z, обозначаемый | z |, определяется как неотрицательное действительное число.2 $ = 0 ⇒ a = 0 и b = 0
, т.е. z = 0 + i0 = 0
Итак, | z | = 0, если, z = 0

(III) Абсолют произведения двух комплексных чисел z1 и z2 равен произведению абсолютных значений чисел. т.е.
$ \ left | z1.z2 \ right | $ = $ \ left | z1 \ право. | $ $ \ left | z2 \ right | $

(IV) Абсолют частного двух комплексных чисел z1 и z2 (0) равен частному абсолютных значений делимого и делителя.
$ \ осталось | \ frac {z1} {z2} \ right | $ = $ \ frac {\ left | z1 \ right |} {\ left | z2 \ right |} $

(V) Абсолют суммы двух сопряженных комплексные числа z1 и z2 никогда не могут превышать сумму своих абсолютных значений, т.е. $ \ left | z1 + z2 \ right | $ $ \ leq $ $ \ left | z1 \ right | $ + $ \ left | z2 \ right | $
Это неравенство называется неравенством треугольника .

11-й класс по математике

От модуля комплексного числа к дому

Covid-19 повлиял на физическое взаимодействие между людьми.

Не позволяйте этому влиять на ваше обучение.

Праймер для комплексных чисел

Показать уведомление для мобильных устройств Показать все заметки Скрыть все заметки

Похоже, вы используете устройство с «узкой» шириной экрана (, т.е. , вероятно, вы используете мобильный телефон).Из-за особенностей математики на этом сайте лучше всего просматривать в ландшафтном режиме. Если ваше устройство не находится в альбомном режиме, многие уравнения будут отображаться сбоку от вашего устройства (вы сможете прокручивать их, чтобы увидеть их), а некоторые пункты меню будут обрезаны из-за узкой ширины экрана.

Сопряжение и модуль

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


Комплексный конъюгат

Первое, что мы рассмотрим, это комплексное сопряжение (или просто сопряжение). С учетом комплексного числа \ (z = a + bi \) комплексное сопряжение обозначается \ (\ overline z \) и определяется как,

\ begin {уравнение} \ overline z = a — bi \ end {уравнение}

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

Вот несколько основных фактов о конъюгатах.

\ begin {align} \ overline {\ overline {z}} & = z \\ \ overline {{z_1} \ pm {z_2}} & = {\ overline z_1} \ pm {\ overline z_2} \ label {eq: consum} \\ \ overline {{z_1} {z_2}} & = {\ overline z_1} \, {\ overline z_2} \ label {eq: conprod} \\ \ overline {\ left ({\ frac {{{z_1}}} {{{z_2}}}} \ right)} & = \ frac {{{{\ overline z} _1}}} {{{{\ overline z} _2}}} \ end {align}

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

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

Пример 1 Рассчитайте каждое из следующих значений.
  1. \ (\ overline {\ overline {z}} \) для \ (z = 3 — 15i \)
  2. \ (\ overline {{z_1} — {z_2}} \) для \ ({z_1} = 5 + i \) и \ ({z_2} = — 8 + 3i \)
  3. \ ({\ overline {z_1}} — {\ overline {z_2}} \) для \ ({z_1} = 5 + i \) и \ ({z_2} = — 8 + 3i \)
Показать решение На самом деле с этим особо нечего делать, кроме работы, так что,

а \ (\ overline {z} = 3 + 15i \ hspace {0.5 дюймов} \ Rightarrow \ hspace {0,5 дюйма} \ overline {\ overline {z}} = \ overline {3 + 15i} = 3 — 15i = z \)

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

b \ ({z_1} — {z_2} = 13 — 2i \ hspace {0,5 дюйма} \ Rightarrow \ hspace {0,5 дюйма} \ overline {{z_1} — {z_2}} = \ overline {13 — 2i} = 13 + 2i \)

c \ ({\ overline z_1} — {\ overline z_2} = \ overline {5 + i} — \ left ({\ overline {- 8 + 3i}} \ right) = 5 — i — \ left ({- 8 — 3i} \ right) = 13 + 2i \)

Мы видим, что результаты из (b) и (c) совпадают с предполагаемым фактом.

Есть еще один интересный факт, в котором используются конъюгаты, на которые, вероятно, стоит обратить внимание. Однако вместо того, чтобы просто выдавать этот факт, давайте выведем его. Мы начнем с комплексного числа \ (z = a + bi \), а затем выполните каждую из следующих операций.

\ [\ begin {array} {rlcrl} z + \ overline {z} & = a + bi + \ left ({a — bi} \ right) & \ hspace {0,5in} & z — \ overline {z} & = a + bi — \ left ({a — bi} \ right) \\ & = 2a & \ hspace {0.5in} & & = 2bi \ end {array} \]

Теперь, вспоминая, что \ ({\ mathop {\ rm Re} \ nolimits} \, z = a \) и \ ({\ mathop {\ rm Im} \ nolimits} \, z = b \), мы видим, что иметь,

\ begin {Equation} {\ mathop {\ rm Re} \ nolimits} z = \ frac {{z + \ overline z}} {2} \ hspace {0,75in} {\ mathop {\ rm Im} \ nolimits} z = \ frac {{z — \ overline z}} {{2i}} \ label {eq: ReImDefn} \ end {уравнение}
Модуль

T Другая операция, которую мы хотим рассмотреть в этом разделе, — это модуль комплексного числа.2} \]

Если мы извлечем квадратный корень из обеих сторон, получим

\ [\ left | г \ право | \ ge \ left | {{\ mathop {\ rm Re} \ nolimits} \, z} \ right | \]

, где \ (\ left | {\, \, \ cdot \,} \ right | \) на \ (z \) — это модуль комплексного числа, а \ (\ left | {\, \, \ cdot \,} \ right | \) на \ ({\ mathop {\ rm Re} \ nolimits} \, z \) — столбцы абсолютного значения. Наконец, для любого действительного числа \ (a \) мы также знаем, что \ (a \ le \ left | a \ right | \) (абсолютное значение…), и поэтому мы получаем

\ begin {Equation} \ left | г \ право | \ ge \ left | {{\ mathop {\ rm Re} \ nolimits} \, z} \ right | \ ge {\ mathop {\ rm Re} \ nolimits} \, z \ label {eq: zRez} \ end {уравнение}

Мы можем использовать аналогичный аргумент, чтобы прийти к,

\ begin {Equation} \ left | г \ право | \ ge \ left | {{\ mathop {\ rm Im} \ nolimits} \, z} \ right | \ ge {\ mathop {\ rm Im} \ nolimits} \, z \ label {eq: zImz} \ end {уравнение}

Существует очень хорошая связь между модулем комплексного числа и его сопряженным.2} \ label {eq: zConjz} \ end {уравнение}

Иногда бывает приятный и удобный факт.

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

\ begin {Equation} \ left | г \ право | = \ left | {\ overline z} \ right | \ label {eq: MzMzbar} \ end {уравнение}

и

\ begin {Equation} \ left | {- z} \ right | = \ left | z \ right | \ end {уравнение}

Теперь мы можем формализовать процесс деления из предыдущего раздела, теперь, когда у нас есть модуль и сопряженные обозначения.2}}} {{164}} = \ frac {{21}} {{41}} — \ frac {9} {{82}} i \]

Вот еще несколько интересных фактов о модуле комплексного числа.

\ begin {align} {\ rm {If}} \ left | г \ право | & = 0 \, \, \, {\ rm {then}} \, z = 0 \ label {eq: Mzero} \\ \ left | {{z_1} \, {z_2}} \ right | & = \ left | {{z_1}} \ right | \, \ left | {{z_2}} \ right | \ label {eq: MProd} \\ \ left | {\ frac {{{z_1}}} {{{z_2}}}} \ right | & = \ frac {{\ left | {{z_1}} \ right |}} {{\ left | {{z_2}} \ right |}} \ label {eq: MQuot} \ end {align}

Свойство \ (\ eqref {eq: Mzero} \) должно иметь для вас некоторый смысл.2} \]

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

\ [\ left | {{z_1} \, {z_2}} \ right | = \ left | {{z_1}} \ right | \, \, \ left | {{z_2}} \ right | \]

Свойство \ (\ eqref {eq: MQuot} \) можно проверить с помощью аналогичного аргумента.

Неравенство треугольника и варианты

Свойства \ (\ eqref {eq: MProd} \) и \ (\ eqref {eq: MQuot} \) связывают модуль произведения / частного двух комплексных чисел с произведением / частным модуля отдельных чисел.Теперь нам нужно взглянуть на аналогичное соотношение для сумм комплексных чисел, которое называется неравенством треугольника и равно

. \ begin {Equation} \ left | {{z_1} + {z_2}} \ вправо | \ le \ left | {{z_1}} \ right | + \ влево | {{z_2}} \ right | \ label {экв: треугольник} \ end {уравнение}

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

Неравенство треугольника на самом деле довольно просто доказать, так что давайте сделаем это.2} = {z_1} \, {\ overline z_1} + {z_1} \, {\ overline z_2} + {z_2} \, {\ overline z_1} + {z_2} \, {\ overline z_2} \ label {eq : tripfone} \ end {уравнение}

Затем обратите внимание, что

\ [\ overline {{z_2} {{\ overline z} _1}} = {\ overline z_2} {\ overline {\ overline {z_1}}} = {\ overline z_2} {z_1} \]

и поэтому, используя \ (\ eqref {eq: ReImDefn} \), \ (\ eqref {eq: zRez} \) и \ (\ eqref {eq: MzMzbar} \), мы можем написать два средних члена правой части \ (\ eqref {eq: tripfone} \) как

\ [{z_1} \, {\ overline z_2} + {z_2} \, {\ overline z_1} = {z_1} \, {\ overline z_2} + \ overline {{z_1} \, {{\ overline z} _2 }} = 2 {\ mathop {\ rm Re} \ nolimits} \ left ({{z_1} \, {{\ overline z} _2}} \ right) \ le 2 \ left | {{z_1} \, {{\ overline z} _2}} \ right | = 2 \ влево | {{z_1}} \ right | \, \ left | {{{\ overline z} _2}} \ right | = 2 \ влево | {{z_1}} \ right | \, \ left | {{z_2}} \ right | \]

Также используйте \ (\ eqref {eq: zConjz} \) в первом и четвертом членах в \ (\ eqref {eq: tripfone} \), чтобы записать их как,

\ [{z_1} \, {\ overline z_1} = {\ left | {{z_1}} \ right | ^ 2} \ hspace {0.2} \]

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

\ [\ left | {{z_1} + {z_2}} \ вправо | \ le \ left | {{z_1}} \ right | + \ влево | {{z_2}} \ right | \]

Существует несколько вариантов неравенства треугольника, которые легко вывести.

Давайте сначала начнем с предположения, что \ (\ left | {{z_1}} \ right | \ ge \ left | {{z_2}} \ right | \). Это не требуется для вывода, но поможет получить более общая версия того, что мы собираемся здесь получить.Итак, давайте начнем с \ (\ left | {{z_1}} \ right | \) и поработаем над ним.

\ begin {align *} \ left | {{z_1}} \ right | & = \ left | {{z_1} + {z_2} — {z_2}} \ вправо | & \\ & \ le \ left | {{z_1} + {z_2}} \ вправо | + \ влево | {- {z_2}} \ right | & \ hspace {0.25in} {\ text {Используя неравенство треугольника}} \\ & = \ left | {{z_1} + {z_2}} \ вправо | + \ влево | {{z_2}} \ right | & \ end {выровнять *}

Теперь немного перепишем, и мы получим

\ begin {Equation} \ left | {{z_1} + {z_2}} \ вправо | \ ge \ left | {{z_1}} \ right | — \ left | {{z_2}} \ right | \ ge 0 \ label {eq: revtrione} \ end {уравнение}

Если теперь предположить, что \ (\ left | {{z_1}} \ right | \ le \ left | {{z_2}} \ right | \), мы можем проделать тот же процесс, что и выше, за исключением этого переключателя времени \ ({ z_1} \) и \ ({z_2} \), и мы получаем

\ begin {Equation} \ left | {{z_1} + {z_2}} \ вправо | \ ge \ left | {{z_2}} \ right | — \ left | {{z_1}} \ right | = — \ left ({\ left | {{z_1}} \ right | — \ left | {{z_2}} \ right |} \ right) \ ge 0 \ label {eq: revtritwo} \ end {уравнение}

Теперь, вспоминая определение абсолютного значения, мы можем объединить \ (\ eqref {eq: revtrione} \) и \ (\ eqref {eq: revtritwo} \) в следующий вариант неравенства треугольника.

\ begin {Equation} \ left | {{z_1} + {z_2}} \ вправо | \ ge \ left | {{\ kern 1pt} \ left | {{z_1}} \ right | — \ left | {{z_2}} \ right | {\ kern 1pt}} \ right | \ label {eq: revtrithree} \ end {уравнение}

Кроме того, если мы заменим \ ({z_2} \) на \ (- {z_2} \) в \ (\ eqref {eq: треугольник} \) и \ (\ eqref {eq: revtrithree} \), мы получим два больше вариаций неравенства треугольника.

\ begin {Equation} \ left | {{z_1} — {z_2}} \ right | \ le \ left | {{z_1}} \ right | + \ влево | {{z_2}} \ right | \ end {уравнение} \ begin {Equation} \ left | {{z} _ {1}} — {{z} _ {2}} \ right | \ ge \ left | \ left | {{z} _ {1}} \ right | — \ left | {{z} _ {2}} \ right | \ право | \ label {eq: revtri} \ end {уравнение}

Иногда вы увидите \ (\ eqref {eq: revtri} \), называемое неравенством обратного треугольника .

Абсолютное значение (модуль / величина) онлайн-калькулятора комплексных чисел

Поиск инструмента

Комплексное число Модуль / величина

Инструмент для вычисления значения модуля / величины комплексного числа | z | (абсолютное значение): длина сегмента между исходной точкой комплексной плоскости и точкой z

Результаты

Модуль комплексного числа / величина — dCode

Тег (-ы): Арифметика, Геометрия

Поделиться

dCode и др. 2} $.2} = \ sqrt {5} $

Вычисление также применимо к экспоненциальной форме комплексного числа.

Как рассчитать модуль действительного числа?

Модуль (или величина) действительного числа эквивалентен его абсолютному значению.

Пример: $ | -3 | = 3 $

Каковы свойства модуля?

Для комплексных чисел $ z, z_1, z_2 $ комплексный модуль имеет следующие свойства:

$$ | z_1 \ cdot z_2 | = | z_1 | \ cdot | z_2 | $$

$$ \ осталось | \ frac {z_1} {z_2} \ right | = \ frac {| z_1 |} {| z_2 |} \ quad z_2 \ ne 0 $$

$$ | z_1 + z_2 | \ le | z_1 | + | z_2 | $$

Модуль — это абсолютное значение, поэтому обязательно положительное (или нулевое):

$$ | z | \ ge 0 $$

Модуль комплексного числа и сопряженного с ним числа равны:

$$ | \ overline z | = | z | $$

Задайте новый вопрос

Исходный код

dCode сохраняет за собой право собственности на исходный код онлайн-инструмента «Модуль комплексного числа / величина».За исключением явной лицензии с открытым исходным кодом (обозначенной CC / Creative Commons / free), любой алгоритм, апплет или фрагмент «Модуль комплексного числа / величина» (конвертер, решатель, шифрование / дешифрование, кодирование / декодирование, шифрование / дешифрование, переводчик) или любые другие Функция «Модуль комплексного числа / величина» (вычислить, преобразовать, решить, расшифровать / зашифровать, расшифровать / зашифровать, декодировать / закодировать, перевести), написанная на любом информационном языке (Python, Java, PHP, C #, Javascript, Matlab и т. Д.) и никакая загрузка данных, скрипт, копирование-вставка или доступ к API для «Комплексного числового модуля / величины» не будут бесплатными, то же самое для автономного использования на ПК, планшете, iPhone или Android! dCode распространяется бесплатно и онлайн.

Нужна помощь?

Пожалуйста, посетите наше сообщество dCode Discord для запросов о помощи!
NB: для зашифрованных сообщений проверьте наш автоматический идентификатор шифра!

Вопросы / комментарии

Сводка

Похожие страницы

Поддержка

Форум / Справка

Ключевые слова

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

Ссылки


Источник: https: // www.dcode.fr/complex-number-modulus

© 2021 dCode — Идеальный «инструментарий» для решения любых игр / загадок / геокэшинга / CTF. Калькулятор по модулю

[Примеры модификаций]

Этот калькулятор по модулю — удобный инструмент, если вам нужно найти результат операций по модулю. Все, что вам нужно сделать, это ввести начальное число x и целое число y , чтобы найти число по модулю r , согласно x mod y = r . Читайте дальше, чтобы узнать, что такое операции по модулю, как вычислить по модулю и как правильно использовать этот калькулятор.

Что такое операции по модулю?

Представьте себе часы, висящие на стене. Допустим, уже поздно — 23 часа. Вы задаетесь вопросом, во сколько вы проснетесь после 8 часов сна. Вы не можете просто прибавить 8 к 11, потому что нет такого времени, как 19 часов утра. Чтобы найти правильный ответ, вам нужно выполнить операцию по модулю (mod 12) — вы складываете эти два числа и продолжаете вычитать 12, пока не получите число меньше 12. В этом случае 7. Вы только что подсчитали, что проснетесь в 7 утра.

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

x модуль y = r

истинно, если такое целое число q (называемое частным ) существует, тогда:

y * q + r = x .

В противном случае число r — это остаток от деления, где x — это делимое , а y делитель .

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

Что такое сравнение по модулю?

Два числа a и b считаются равными по модулю n , когда их разность a - b целиком делится на n (так что (a - b) делится на n ).

Математически формула сравнения по модулю записывается как:

a ≡ b (мод. N)

и n называется модулем сравнения.

С другой стороны, вы можете сказать, что a и b считаются равными по модулю n , когда они оба имеют одинаковый остаток при делении на n:

мод n = r

b мод n = r

, где r — общий остаток.

Итак, проще говоря — совпадение по модулю происходит, когда два числа имеют одинаковый остаток после одного и того же делителя, например: 24 по модулю 10 и 34 по модулю 10 дают тот же ответ: 4.Следовательно, 24 и 34 сравнимы по модулю 10.

Давайте посмотрим на другой пример:

9 ≡ 21 (мод.6) ,

, потому что 21 - 9 = 12 делится на 6. Его также можно кратко записать как 6 | (21 - 9) . Или, что то же самое, 21 и 9 имеют одинаковый остаток, когда мы делим их на 6:

.

9 мод 6 = 3

21 mod 6 = 3

Как вычислить по модулю — пример

Рассчитать модуль вручную — несложная задача.Просто следуйте инструкциям ниже!

  1. Начните с выбора начального числа (перед выполнением операции по модулю). Допустим, 250. Это наши дивиденды.
  2. Выберите делитель. Возьмем 24. Операция, которую мы хотим вычислить, будет тогда 250 mod 24 ( 250% 24 , если используется другое соглашение).
  3. Разделите одно число на другое с округлением в меньшую сторону: 250/24 = 10 . Это частное. Кроме того, вы можете думать об этой операции как о целочисленном делении и — типе деления, при котором нам не важна дробная часть результата.
  4. Умножьте делитель на частное. Итак, в нашем примере это 10 * 24 = 240 .
  5. Вычтите это число из вашего начального числа (делимого). Здесь: 250 - 240 = 10 .
  6. Полученное число является результатом операции по модулю. Мы можем записать это как 250 mod 24 = 10 .

Как пользоваться нашим калькулятором модов? 10 mod 3 и другие примеры modulo

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

  1. Введите начальное число — делимое — в первое поле . Возьмем пример из предыдущего абзаца, поэтому введите 250.
  2. Введите делитель . В нашем случае 24.
  3. Тадааа! Наш калькулятор по модулю вернет вам результат — остаток! И это неудивительно, оно равно 10 — то же самое число, которое мы вычисляли ранее.

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

  • 1 mod 1 = 0 (поскольку mod 1 всегда равен 0)
  • 1 мод 2 = 1
  • 1 мод 3 = 1
  • 5 мод 2 = 1
  • 5 мод 3 = 2
  • 6 мод 3 = 0
  • 7 мод 3 = 1
  • 10 мод 3 = 1
  • 18 мод 3 = 0
  • 100 мод 3 = 1
  • 100 мод 7 = 2

Если вы не видите здесь тот, который хотите найти, воспользуйтесь нашим калькулятором по модулю!

Модульная арифметика

Модульная арифметика — это, вообще говоря, арифметическая система для целых чисел, в которой числа «оборачивают» определенное число.Подведем итог тому, что мы узнали о различных представлениях операций по модулю — все приведенные ниже утверждения являются эквивалентами:

  • A ≡ B (мод. C)
  • A мод C = B мод C
  • C | (А - В)
  • A = B + K * C , где K — некоторое целое число

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

1. Модульное сложение и вычитание

(A + B) мод C = (A мод C + B мод C) мод C

(A - B) мод C = (A мод C - B мод C) мод C

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

  • А = 11, В = 7, С = 4

    (11 + 7) по модулю 4 = (11 по модулю 4 + 7 по модулю 4) по модулю 4

    левая часть уравнения: (11 + 7) mod 4 = 18 mod 4 = 2

    правая часть уравнения: (11 mod 4 + 7 mod 4) mod 4 = (3 + 3) mod 4 = 6 mod 4 = 2

Аналогично, вычисления аналогичны для вычитания.

2. Модульное умножение

(A * B) мод C = (A мод C * B мод C) мод C

Такое уравнение может быть полезно при работе с большими числами, и мы не можем сразу узнать модуль этого большого числа. Давайте посмотрим на тот же пример (A = 11, B = 7, C = 4) — можете ли вы найти результат 77 mod 4 на месте? 11 mod 4 и 7 mod 4 вычислить проще:

  • (11 * 7) по модулю 4 = (11 по модулю 4 * 7 по модулю 4) по модулю 4

    левая часть уравнения: (11 * 7) по модулю 4 = 77 по модулю 4 = 1

    правая часть уравнения: (11 mod 4 * 7 mod 4) mod 4 = (3 * 3) mod 4 = 9 mod 4 = 1

3.100 мод 3 = (1 * 1) мод 3 = 1

Для некоторых конкретных случаев существуют даже более быстрые методы модульного возведения в степень (если B — степень двойки). Если вы хотите прочитать о них и попрактиковаться в модульной арифметике, ознакомьтесь с отличным учебником от Khan Academy под названием «Что такое модульная арифметика?»

Неопределенность определения модуля

Слово modulo происходит от латинского слова modus , означающего меру. Обычно, когда мы используем слово по модулю , мы имеем в виду операцию по модулю , например, e.грамм. 11 по модулю 3 равно 2, поэтому нужно просто найти остаток. Строгое определение по модулю означает:

.

По указанному модулю

или

A то же самое, что B по модулю C, за исключением различий, учитываемых или объясняемых C

Это определение, о котором мы писали в сравнении по модулю абзаца.

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

Дизайн был лучшим до сих пор, по модулю тех частей, которые все еще нуждаются в доработке.

Percent — символ операции по модулю

Операция по модулю часто используется в языках программирования. Для этого% — процент — используется для обозначения этой операции (или иногда оператор остатка для отрицательных чисел).Если вам интересно узнать о происхождении знака%, мы настоятельно рекомендуем вам прочитать небольшой абзац, который мы составили об истории знака процента.

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

Приложения Modulo

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

  1. Наиболее очевидным и известным примером является так называемая арифметика часов .Это может быть добавление часов, как в объяснении по модулю выше, или минут, или секунд! Никто не скажет, что «у вас осталось 40 минут 90 секунд », верно? Единственный вариант — выполнить операцию по модулю и найти частное и остаток — 60 * 1 + 30 = 90 . 41 минута 30 секунд звучит намного лучше.

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

  • GTIN, UPC, EAN контрольных цифр используются для подтверждения целостности штрих-кода. В формуле для контрольных цифр используется модуль 10.
  • Номера ISBN и ISSN , которые являются уникальными периодическими идентификаторами и идентификаторами книг, имеют модуль 11 или 10, а в формуле контрольной цифры применяется средний вес.
  • IBAN — Номера международных банковских счетов — используйте модуль 97, чтобы проверить, правильно ли клиент ввел номер.
  • NPI — Национальный идентификатор провайдера США использует операцию по модулю 10 для вычисления десятой цифры.

Поскольку контрольные цифры используются для выявления человеческих ошибок транскрипции, они часто используются для длинных серийных номеров. Другие примеры алгоритмов контрольных цифр с использованием операций по модулю:

  • национальный идентификационный номер (например, в Исландии, Турции, Польше)
  • фискальный идентификационный номер (Испания)
  • идентификационный номер автомобиля (США)
  • и многие, многие другие.
  1. Он применяется во многих научных областях, таких как компьютерная алгебра, криптография, информатика или простая школьная математика — как в алгоритме Евклида для вычисления наибольшего общего множителя.

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

Предположим, что в большой пицце для вечеринки 10 ломтиков, а вы — группа из трех человек.Сколько кусочков останется, если пиццу разделить поровну?

Это именно тот случай, когда вы можете использовать по модулю! 10 mod 3 = 1. Другими словами, 10, разделенное на 3, равняется 3, но остается 1 кусок 🍕. Это был не самый сложный пример, но мы надеемся, что вы видите полезность модуло.

Кстати , а вы видели нашу коллекцию калькуляторов пиццы? У нас есть удивительный калькулятор пиццы, который может помочь оценить, сколько пиццы вам нужно заказать, а также инструменты, помогающие сравнить размеры пиццы — если вы когда-нибудь задумывались, что лучше купить две пиццы среднего размера или одну большую, пиццу Калькулятор сравнения — беспроигрышный вариант.Также мы подготовили калькуляторы для тех, кто хочет испечь идеальной пиццы самостоятельно!

О нет. Мы проголодались. Давайте оставим это вкусное отвлечение и вернемся на Землю. Если вы заинтересованы в поиске более забавных приложений модульной арифметики, ознакомьтесь с этим сообщением в блоге betterexplained.com.

Модуль или абсолютное значение комплексного числа?

На моей странице полярной формы комплексного числа в IntMath я указываю:

Для комплексного числа x + yj = r (cos θ + j sin θ), r — это абсолютное значение (или модуль ) комплексного числа.

Читатель Саншайн из Филиппин оспорил это утверждение, сказав:

Абсолютное значение

не имеет того же определения, что и модуль

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

Итак, Саншайн верна?

Это был мой ответ ей.

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

В этих других математических ресурсах оба термина также используются для обозначения одного и того же:

Комплексные числа отрубного узла

Абсолютное значение Википедии

Абсолютное значение комплексного числа Mathwords

Тем не менее, Pauls Online Notes (Университет Ламара) проводит некоторое различие между модулем комплексного числа и абсолютным значением действительного числа (последнее является вырожденным случаем первого).

Но в том смысле, что «абсолютное значение» означает расстояние от начала координат для действительного числа (на одномерной числовой прямой), а «модуль» означает расстояние от начала координат для комплексного числа (на двумерной комплексной плоскости ), Я не думаю, что существует большая проблема с взаимозаменяемостью терминов.Концепция, безусловно, та же, и это не приводит к большой путанице.

Я бы, вероятно, не стал писать «абсолютное значение комплексного числа» — это, конечно, менее распространено, и предпочитаю «модуль комплексного числа».

Спасибо, что побудили меня задуматься об этом!

Читатели, что вы думаете по этому поводу? Что написано в вашем учебнике или конспектах лекций?

См. 6 комментариев ниже.

Как использовать оператор% — Real Python

Python поддерживает широкий спектр арифметических операторов, которые вы можете использовать при работе с числами в вашем коде.Одним из этих операторов является оператор по модулю (% ), который возвращает остаток от деления двух чисел.

Оператор по модулю Python иногда может быть упущен из виду. Но хорошее понимание этого оператора даст вам бесценный инструмент в вашем арсенале инструментов Python.

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

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

Классический пример модульной арифметики — двенадцать часов. Двенадцатичасовые часы имеют фиксированный набор значений от 1 до 12. При подсчете двенадцатичасовых часов вы рассчитываете до модуля 12, а затем возвращаетесь к 1. Двенадцатичасовые часы можно классифицировать как « по модулю 12 », иногда сокращается до« по модулю 12 ».

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

Например, предположим, что вы хотите определить, сколько времени будет через девять часов после 8:00. В двенадцатичасовом формате вы не можете просто прибавить 9 к 8, потому что вы получите 17. Вам нужно взять результат, 17, и используйте мод , чтобы получить эквивалентное значение в двенадцатичасовом контексте:

  8 часов + 9 = 17 часов
17 мод 12 = 5
  

17 mod 12 возвращает 5 . Это означает, что девять часов после 8:00 — это 17:00. Вы определили это, взяв число 17 и применив его к контексту mod 12 .

Теперь, если подумать, 17 и 5 эквивалентны в контексте mod 12 . Если бы вы посмотрели на часовую стрелку в 5:00 и 17:00, она была бы в том же положении. В модульной арифметике есть уравнение, описывающее эту взаимосвязь:

Это уравнение гласит: « a и b равны по модулю n ». Это означает, что a и b эквивалентны в mod n , поскольку они имеют одинаковый остаток при делении на n .В приведенном выше уравнении n — это модуль для a и b . Используя значения 17 и 5 из предыдущих, уравнение будет выглядеть так:

Это гласит: « 17 и 5 равны по модулю 12 ». 17 и 5 имеют одинаковый остаток, 5 , при делении на 12 . Таким образом, в модели mod 12 числа 17 и 5 эквивалентны.

Подтвердить это можно с помощью деления:

  17/12 = 1 К 5
5/12 = 0 R 5
  

Обе операции имеют одинаковый остаток, 5 , поэтому они эквивалентны по модулю 12 .

Теперь это может показаться сложным математическим делом для оператора Python, но эти знания подготовят вас к использованию оператора по модулю в примерах далее в этом руководстве. В следующем разделе вы познакомитесь с основами использования оператора Python по модулю с числовыми типами int и float .

Основы операторов Python по модулю

Оператор по модулю, как и другие арифметические операторы, может использоваться с числовыми типами int и float . Как вы увидите позже, его также можно использовать с другими типами, такими как math.fmod () , decimal.Decimal и вашими собственными классами.

Оператор по модулю с

int

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

>>>
  >>> 15% 4
3

>>> 17% 12
5

>>> 240% 13
6

>>> 10% 16
10
  

Будьте осторожны! Как и в случае с оператором деления (/), Python вернет ZeroDivisionError , если вы попытаетесь использовать оператор по модулю с делителем 0 :

>>>
  >>> 22% 0
ZeroDivisionError: целочисленное деление или по модулю нуля
  

Далее вы познакомитесь с использованием оператора по модулю с плавающей точкой .

Оператор по модулю с поплавком

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

>>>
  >>> 12,5% 5,5
1.5

>>> 17,0% 12,0
5.0
  

Альтернативой использованию числа с плавающей запятой с оператором по модулю является использование math.fmod () для выполнения операций по модулю над значениями с плавающей запятой :

>>>
  >>> импорт математики
>>> математика.fmod (12.5, 5.5)
1.5

>>> math.fmod (8.5, 2.5)
1.0
  

Официальные документы Python предлагают использовать math.fmod () вместо оператора Python modulo при работе со значениями float , поскольку math.fmod () вычисляет результат операции по модулю. Если вы используете отрицательный операнд, вы можете увидеть разные результаты между math.fmod (x, y) и x% y . В следующем разделе вы более подробно исследуете использование оператора по модулю с отрицательными операндами.

Как и другие арифметические операторы, оператор по модулю и math.fmod () могут столкнуться с проблемами округления и точности при работе с арифметикой с плавающей запятой:

>>>
  >>> 13,3% 1,1
0,09999999999999964

>>> импорт математики
>>> math.fmod (13.3, 1.1)
0,09999999999999964
  

Если для вашего приложения важно поддерживать точность с плавающей запятой, вы можете использовать оператор по модулю с десятичным числом .Десятичный . Вы рассмотрите это позже в этом руководстве.

Оператор по модулю с отрицательным операндом

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

Как оказалось, способ, которым компьютеры определяют результат операции по модулю с отрицательным операндом, оставляет неоднозначность относительно того, должен ли остаток принимать знак делимого (делимое число) или знак делителя (число, на которое делится дивиденд).Разные языки программирования обрабатывают это по-разному.

Например, в JavaScript остаток примет знак делимого:

Остаток в этом примере, 2 , положителен, поскольку принимает знак дивиденда 8 . В Python и других языках остаток примет знак делителя:

Здесь вы можете видеть, что остаток -1 принимает знак делителя -3 .

Вы можете спросить, почему остаток в JavaScript равен 2 , а остаток в Python равен -1 .Это связано с тем, как разные языки определяют результат операции по модулю. Языки, в которых остаток принимает знак делимого, используют следующее уравнение для определения остатка:

Это уравнение состоит из трех переменных:

  1. r — остаток.
  2. a — дивиденд.
  3. n — делитель.

trunc () в этом уравнении означает, что используется усеченное деление , которое всегда округляет отрицательное число до нуля.Для получения дополнительных пояснений см. Шаги операции по модулю ниже, используя 8 в качестве делимого и -3 в качестве делителя:

  r = 8 - (-3 * усечение (8 / -3))
r = 8 - (-3 * усечение (-2,666666666667))
r = 8 - (-3 * -2) # Округление в сторону 0
г = 8 - 6
г = 2
  

Здесь вы можете увидеть, как такой язык, как JavaScript, получает остаток 2 . Python и другие языки, в которых остаток принимает знак делителя, используют следующее уравнение:

floor () в этом уравнении означает, что используется деление этажа .При положительных числах деление этажа вернет тот же результат, что и усеченное деление. Но с отрицательным числом деление по этажам округляет результат в меньшую сторону, в сторону от нуля:

  r = 8 - (-3 * этаж (8 / -3))
r = 8 - (-3 * этаж (-2.666666666667))
r = 8 - (-3 * -3) # Округление от 0
г = 8 - 9
г = -1
  

Здесь вы можете увидеть, что результат: -1 .

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

Вы можете увидеть пример этого, сравнив результаты 8.0% -3.0 и math.fmod (8.0, -3.0) :

>>>
  >>> 8.0% -3
-1,0

>>> импорт математики
>>> math.fmod (8.0, -3.0)
2.0
  

математ.fmod () принимает знак делимого с использованием усеченного деления, тогда как float использует знак делителя. Позже в этом руководстве вы увидите другой тип Python, в котором используется знак делимого — десятичное число . Десятичное число .

Оператор по модулю и

divmod ()

Python имеет встроенную функцию divmod () , которая внутренне использует оператор по модулю. divmod () принимает два параметра и возвращает кортеж, содержащий результаты деления по этажу и по модулю с использованием предоставленных параметров.

Ниже приведен пример использования divmod () с 37 и 5 :

>>>
  >>> divmod (37, 5)
(7, 2)

>>> 37 // 5
7

>>> 37% 5
2
  

Вы можете видеть, что divmod (37, 5) возвращает кортеж (7, 2) . 7 является результатом разделения этажей на 37 и 5 . 2 является результатом 37 по модулю 5 .

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

>>>
  >>> divmod (37, -5)
(-8, -3)

>>> 37 // -5
-8

>>> 37% -5
-3 # Результат имеет знак делителя
  

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

Приоритет оператора по модулю

Как и другие операторы Python, для оператора по модулю существуют особые правила, определяющие его приоритет при оценке выражений. Оператор по модулю (% ) имеет тот же уровень приоритета, что и операторы умножения ( * ), деления (/) и деления по полу ( // ).

Взгляните на пример приоритета оператора по модулю ниже:

>>>
  >>> 4 * 10% 12 - 9
-5
  

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

  1. 4 * 10 вычисляется, в результате получается 40% 12 - 9 .
  2. 40% 12 оценивается, в результате получается 4–9 .
  3. 4-9 вычисляется, в результате получается -5 .

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

>>>
  >>> 4 * 10% (12-9)
1
  

В этом примере сначала оценивается (12–9) , затем 4 * 10 и, наконец, 40% 3 , что равно 1 .

Оператор модуля Python на практике

Теперь, когда вы познакомились с основами оператора Python по модулю, вы рассмотрите несколько примеров его использования для решения реальных задач программирования. Иногда бывает трудно определить, когда использовать в коде оператор по модулю. Приведенные ниже примеры дадут вам представление о многих способах его использования.

Как проверить, четное или нечетное число

В этом разделе вы увидите, как использовать оператор по модулю, чтобы определить, является ли число четным или нечетным.Используя оператор по модулю с модулем 2 , вы можете проверить любое число, чтобы узнать, делится ли оно без остатка на 2 . Если оно делится без остатка, то это четное число.

Взгляните на is_even () , который проверяет, является ли параметр num четным:

  def is_even (число):
    вернуть число% 2 == 0
  

Здесь число% 2 будет равно 0 , если число четное, и 1 , если число нечетное.Проверка против 0 вернет логическое значение Истина или Ложь в зависимости от того, является ли число четным.

Проверка на нечетные числа очень похожа. Чтобы проверить нечетное число, вы инвертируете проверку равенства:

  def is_odd (число):
    вернуть число% 2! = 0
  

Эта функция вернет Истина , если num% 2 не равно 0 , что означает, что остаток доказывает, что num — нечетное число.Теперь вам может быть интересно, можно ли использовать следующую функцию, чтобы определить, является ли num нечетным числом:

  def is_odd (число):
    вернуть число% 2 == 1
  

Ответ на этот вопрос — да и нет. Технически эта функция будет работать так же, как Python вычисляет по модулю с целыми числами. Тем не менее, вам следует избегать сравнения результата операции по модулю с 1 , поскольку не все операции по модулю в Python будут возвращать тот же остаток.

Вы можете понять, почему, на следующих примерах:

>>>
  >>> -3% 2
1

>>> 3% -2
-1
  

Во втором примере остаток принимает знак отрицательного делителя и возвращает -1 . В этом случае логическая проверка 3% -2 == 1 вернет False .

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

. >>>
  >>> -2% 2
0

>>> 2% -2
0
  

Если вы будете сравнивать операцию Python по модулю с 0 , то у вас не должно возникнуть проблем с проверкой четных и нечетных чисел или любых других кратных чисел в вашем коде.

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

Как запускать код с определенными интервалами в цикле

С помощью оператора Python по модулю вы можете запускать код через определенные промежутки времени внутри цикла. 15}», end = «») если индекс% модуля == 0: Распечатать() Распечатать()

Этот код определяет split_names_into_rows () , который принимает два параметра. список_имён — это список имен, который следует разбить на строки. Модуль устанавливает модуль для операции, эффективно определяя, сколько имен должно быть в каждой строке. split_names_into_rows () будет перебирать name_list и начинать новую строку после достижения значения модуля .

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

>>>
  >>> names = ["Пикард", "Райкер", "Трой", "Крашер", "Ворф", "Дейта", "Ла Форж"]
>>> split_names_into_rows (имена)
---- Пикард ----- ----- Райкер ----- ----- Трой ------
---- Дробилка ---- ----- Worf ------ ----- Данные ------
--- Ла Форж ----
  

Как видите, список имен разделен на три строки, максимум по три имени в каждой строке.Модуль по умолчанию 3 , но вы можете указать любое число:

>>>
  >>> split_names_into_rows (имена, модуль = 4)
---- Пикард ----- ----- Райкер ----- ----- Трой ------ ---- Крашер ----
----- Ворф ------ ----- Данные ------ --- Ла Форж ----

>>> split_names_into_rows (имена, модуль = 2)
---- Пикард ----- ----- Райкер -----
----- Трой ------ ---- Дробилка ----
----- Worf ------ ----- Данные ------
--- Ла Форж ----

>>> split_names_into_rows (имена, модуль = 1)
---- Пикард -----
----- Райкер -----
----- Трой ------
----Дробилка----
----- Ворф ------
-----Данные------
--- Ла Форж ----
  

Теперь, когда вы увидели код в действии, вы можете разобрать, что он делает.Во-первых, он использует enumerate () для итерации по name_list , присваивая текущий элемент в списке имени и значению счетчика индексу . Вы можете видеть, что необязательный аргумент start для enumerate () имеет значение 1 . Это означает, что счетчик индекса начнется с 1 вместо 0 :

  для индекса, имя в перечислении (name_list, start = 1):
  

Затем внутри цикла функция вызывает print () для вывода name в текущую строку.15 Синтаксис указывает print () выполнить следующие действия:

  • Выведите не менее 15 символов, даже если строка короче 15 символов.
  • Выровняйте строку по центру.
  • Заполните любое пространство справа или слева от строки символом дефиса ( - ).

Теперь, когда имя напечатано в строке, взглянем на основную часть split_names_into_rows () :

  если индекс% модуля == 0:
    Распечатать()
  

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

Приведенный выше код является только одним примером. Использование шаблона index% modulus == 0 позволяет вам запускать другой код через определенные интервалы в ваших циклах. В следующем разделе вы немного углубитесь в эту концепцию и рассмотрите циклическую итерацию.

Как создать циклическую итерацию

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

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

  импортная черепаха
случайный импорт

def draw_with_cyclic_iteration ():
    colors = ["зеленый", "голубой", "оранжевый", "фиолетовый", "красный", "желтый", "белый"]

    turtle.bgcolor ("gray8") # Hex: # 333333
    turtle.pendown ()
    turtle.pencolor (random.выбор (цвета)) # Первый цвет случайный

    i = 0 # Начальный индекс

    в то время как True:
        i = (i + 1)% 6 # Обновить индекс
        turtle.pensize (i) # Установить размер pensize на i
        черепаха вперед (225)
        черепаха. правая (170)

        # Выберите случайный цвет
        если я == 0:
            turtle.pencolor (random.choice (цвета))
  

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

Важные части этого кода выделены ниже:

  импортная черепаха
случайный импорт

def draw_with_cyclic_iteration ():
    colors = ["зеленый", "голубой", "оранжевый", "фиолетовый", "красный", "желтый", "белый"]

    turtle.bgcolor ("gray8") # Hex: # 333333
    turtle.pendown ()
    turtle.pencolor (random.choice (цвета))

    i = 0 # Начальный индекс

    в то время как True:
        i = (i + 1)% 6 # Обновить индекс
        черепаха.pensize (i) # Установить размер pensize на i
        черепаха вперед (225)
        черепаха. правая (170)

        # Выберите случайный цвет
        если я == 0:
            turtle.pencolor (random.choice (цвета))
  

Каждый раз при прохождении цикла i обновляется на основе результатов (i + 1)% 6 . Это новое значение i используется для увеличения .pensize с каждой итерацией. Как только i достигнет 5 , (i + 1)% 6 будет равно 0 , а i вернется к 0 .

Вы можете увидеть шаги итерации ниже для более подробного пояснения:

  я = 0: (0 + 1)% 6 = 1
я = 1: (1 + 1)% 6 = 2
я = 2: (2 + 1)% 6 = 3
я = 3: (3 + 1)% 6 = 4
я = 4: (4 + 1)% 6 = 5
i = 5: (5 + 1)% 6 = 0 # Сброс
  

Когда i сбрасывается обратно на 0 , .pencolor изменяется на новый случайный цвет, как показано ниже:

  если i == 0:
    turtle.pencolor (random.choice (цвета))
  

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

Как переводить единицы

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

В этом первом примере вы преобразуете дюймы в футы. Оператор по модулю используется для получения оставшихся дюймов, которые неравномерно не делятся на футы.Оператор деления пола ( // ) используется для округления общего количества футов в меньшую сторону:

  def convert_inches_to_feet (total_inches):
    дюймы = total_inches% 12
    футов = total_inches // 12

    print (f "{total_inches} дюймов = {футов} футов и {дюймов} дюймов")
  

Вот пример используемой функции:

>>>
  >>> convert_inches_to_feet (450)
450 дюймов = 37 футов 6 дюймов
  

Как видно из выходных данных, 450% 12 возвращает 6 , то есть оставшиеся дюймы, которые не были равномерно разделены на футы.Результатом 450 // 12 будет 37 , что представляет собой общее количество футов, на которое дюймы были равномерно разделены.

В следующем примере вы можете пойти немного дальше. convert_minutes_to_days () принимает целое число, total_mins , представляющее количество минут, и выводит период времени в днях, часах и минутах:

  def convert_minutes_to_days (total_mins):
    дней = total_mins // 1440
    extra_minutes = total_mins% 1440

    часы = extra_minutes // 60
    минут = дополнительные_минуты% 60

    print (f "{total_mins} = {дней} дней, {часов} часов и {минут} минут")
  

Разбив это, вы можете увидеть, что функция выполняет следующее:

  1. Определяет общее количество равномерно делимых дней с total_mins // 1440 , где 1440 - количество минут в дне
  2. Вычисляет любые дополнительных_минут оставшихся с total_mins% 1440
  3. Использует дополнительных_минут , чтобы получить равномерно делимые часа и любые дополнительные минуты

Вы можете увидеть, как это работает, ниже:

>>>
  >>> convert_minutes_to_days (1503)
1503 = 1 день, 1 час и 3 минуты

>>> convert_minutes_to_days (3456)
3456 = 2 дня, 9 часов и 36 минут

>>> convert_minutes_to_days (35000)
35000 = 24 дня, 7 часов и 20 минут
  

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

Примечание : Оба приведенных выше примера можно изменить, чтобы использовать divmod () , чтобы сделать код более лаконичным. Если вы помните, divmod () возвращает кортеж, содержащий результаты деления этажа и по модулю с использованием предоставленных параметров.

Ниже операторы деления пола и модуля были заменены на divmod () :

  def convert_inches_to_feet_updated (total_inches):
    футы, дюймы = divmod (total_inches, 12)
    print (f "{total_inches} дюймов = {футов} футов и {дюймов} дюймов")
  

Как видите, divmod (total_inches, 12) возвращает кортеж, который распакован в фута и дюйма .

Если вы попробуете эту обновленную функцию, то получите те же результаты, что и раньше:

>>>
  >>> convert_inches_to_feet (450)
450 дюймов = 37 футов 6 дюймов

>>> convert_inches_to_feet_updated (450)
450 дюймов = 37 футов 6 дюймов
  

Вы получите тот же результат, но теперь код более лаконичный. Вы также можете обновить convert_minutes_to_days () :

  def convert_minutes_to_days_updated (total_mins):
    дней, extra_minutes = divmod (total_mins, 1440)
    часы, минуты = divmod (extra_minutes, 60)

    print (f "{total_mins} = {дней} дней, {часов} часов и {минут} минут")
  

При использовании divmod () функцию легче читать, чем в предыдущей версии, и она возвращает тот же результат:

>>>
  >>> convert_minutes_to_days (1503)
1503 = 1 день, 1 час и 3 минуты

>>> convert_minutes_to_days_updated (1503)
1503 = 1 день, 1 час и 3 минуты
  

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

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

Как определить, является ли число простым числом

В следующем примере вы посмотрите, как можно использовать оператор Python по модулю, чтобы проверить, является ли число простым числом . Простое число - это любое число, которое содержит только два множителя: 1 и само себя. Примеры простых чисел: 2 , 3 , 5 , 7 , 23 , 29 , 59 , 83 и 97 .

Код ниже представляет собой реализацию для определения простоты числа с помощью оператора по модулю:

  def check_prime_number (число):
    если число <2:
        print (f "{число} должно быть больше или равно 2, чтобы быть простым.")
        возвращаться

    факторы = [(1, число)]
    я = 2

    в то время как я * я <= число:
        если num% i == 0:
            Factors.append ((i, num // i))
        я + = 1

    если len (факторы)> 1:
        print (f "{число} не является простым. Имеет следующие множители: {факторы}")
    еще:
        print (f "{num} - простое число")
  

Этот код определяет check_prime_number () , который принимает параметр num и проверяет, является ли это простым числом.Если это так, то отображается сообщение о том, что num - простое число. Если это не простое число, отображается сообщение со всеми множителями числа.

Примечание: Приведенный выше код не самый эффективный способ проверки простых чисел. Если вы хотите копнуть глубже, посмотрите на Сито Эратосфена и Сито Аткина, где можно найти примеры более эффективных алгоритмов поиска простых чисел.

Прежде чем вы внимательно посмотрите на функцию, вот результаты с использованием некоторых других чисел:

>>>
  >>> check_prime_number (44)
44 не простое.Он имеет следующие факторы: [(1, 44), (2, 22), (4, 11)]

>>> check_prime_number (53)
53 - простое число

>>> check_prime_number (115)
115 не простое. Он имеет следующие факторы: [(1, 115), (5, 23)]

>>> check_prime_number (997)
997 - простое число
  

Углубившись в код, вы увидите, что он начинается с проверки, меньше ли num 2 . Простые числа могут быть не более 2 . Если число меньше 2 , то выполнение функции не требуется.Он будет print () сообщение и вернет :

  если число <2:
    print (f "{число} должно быть больше или равно 2, чтобы быть простым.")
    возвращаться
  

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

Вот основная часть функции:

  факторов = [(1, num)]
я = 2

в то время как я * я <= число:
    если num% i == 0:
        Factors.append ((i, num // i))
    я + = 1
  

Здесь есть что распаковать, так что давайте рассмотрим это шаг за шагом.

Сначала создается список факторов с начальными факторами (1, число) . Этот список будет использоваться для хранения любых других найденных факторов:

Затем, начиная с 2 , код увеличивает i , пока не достигнет квадратного корня из num .На каждой итерации он сравнивает num с i , чтобы увидеть, делится ли оно без остатка. Коду нужно только проверить квадратный корень из число включительно, потому что он не будет содержать никаких множителей выше этого:

  я = 2

в то время как я * я <= число:
    если num% i == 0:
        Factors.append ((i, num // i))
    я + = 1
  

Вместо того, чтобы пытаться определить квадратный корень из num , функция использует цикл , а также , чтобы увидеть, является ли i * i <= num .Пока i * i <= num , цикл не достиг квадратного корня из num .

Внутри цикла while оператор по модулю проверяет, делится ли num без остатка на i :

  факторов = [(1, num)]
i = 2 # Начать начальный индекс с 2

в то время как я * я <= число:
    если num% i == 0:
        Factors.append ((i, num // i))
    я + = 1
  

Если число делится без остатка на i , тогда i является множителем число , и кортеж множителей добавляется к списку множителей .

После завершения цикла и код проверяет, были ли найдены какие-либо дополнительные факторы:

  если len (факторы)> 1:
    print (f "{число} не является простым. Имеет следующие множители: {факторы}")
еще:
    print (f "{num} - простое число")
  

Если в списке факторов факторов существует более одного кортежа, то число число не может быть простым числом. Для непростых чисел коэффициенты распечатываются. Для простых чисел функция выводит сообщение о том, что num - простое число.

Как реализовать шифры

Оператор модуля Python может использоваться для создания шифров. Шифр - это тип алгоритма для выполнения шифрования и дешифрования входных данных, обычно текста. В этом разделе вы познакомитесь с двумя шифрами: шифром Цезаря и шифром Виженера .

Цезарь Шифр ​​

Первый шифр, на который вы посмотрите, - это шифр Цезаря, названный в честь Юлия Цезаря, который использовал его для тайной передачи сообщений.Это шифр подстановки, который использует подстановку букв для шифрования строки текста.

Шифр ​​Цезаря работает, взяв зашифровываемую букву и сдвинув ее на определенное количество позиций влево или вправо в алфавите. Какая бы буква ни находилась в этой позиции, используется как зашифрованный символ. Это же значение сдвига применяется ко всем символам в строке.

Например, если сдвиг был 5 , то A сместился бы на пять букв вверх, чтобы стать F , B превратился бы в G и так далее.Ниже вы можете увидеть процесс шифрования текста REALPYTHON со сдвигом 5 :

В результате получается шифр WJFQUDYMTS .

Расшифровка шифра выполняется реверсированием сдвига. Процессы шифрования и дешифрования можно описать следующими выражениями, где char_index - это индекс символа в алфавите:

  encrypted_char_index = (char_index + shift)% 26
decrypted_char_index = (char_index - сдвиг)% 26
  

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

  строка импорта

def caesar_cipher (текст, сдвиг, дешифрование = False):
    если не text.isascii () или не text.isalpha ():
        Raise ValueError ("Текст должен быть в формате ASCII и не содержать чисел.")

    нижний регистр = строка.ascii_lowercase
    верхний регистр = строка.ascii_uppercase
    результат = ""

    если расшифровать:
        сдвиг = сдвиг * -1

    для символа в тексте:
        если char.islower ():
            index = lowercase.index (char)
            результат + = нижний регистр [(индекс + сдвиг)% 26]
        еще:
            index = прописные буквы.индекс (символ)
            результат + = верхний регистр [(индекс + сдвиг)% 26]

    вернуть результат
  

Этот код определяет функцию с именем caesar_cipher () , которая имеет два обязательных параметра и один необязательный параметр:

  • текст - это текст, который нужно зашифровать или расшифровать.
  • сдвиг - количество позиций для сдвига каждой буквы.
  • decrypt - логическое значение, которое задается, если текст должен быть расшифрован.

decrypt включен, чтобы можно было использовать одну функцию для обработки как шифрования, так и дешифрования. Эта реализация может обрабатывать только буквенные символы, поэтому функция сначала проверяет, является ли текст буквенным символом в кодировке ASCII:

  def caesar_cipher (text, shift, decrypt = False):
    если не text.isascii () или не text.isalpha ():
        Raise ValueError ("Текст должен быть в формате ASCII и не содержать чисел.")
  

Затем функция определяет три переменные для хранения строчных символов ASCII, прописных символов ASCII и результатов шифрования или дешифрования:

  нижний регистр = строка.ascii_lowercase # "abcdefghijklmnopqrstuvwxyz"
uppercase = string.ascii_uppercase # "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
результат = ""
  

Затем, если функция используется для расшифровки текста , она умножает сдвиг на -1 , чтобы сдвинуть назад:

  если расшифровать:
    сдвиг = сдвиг * -1
  

Наконец, caesar_cipher () перебирает отдельные символы в тексте и выполняет следующие действия для каждого символа :

  1. Проверьте, является ли char строчными или прописными буквами.
  2. Получите индекс из char в списках строчных или прописных ASCII.
  3. Добавьте сдвиг к этому индексу , чтобы определить индекс используемого зашифрованного символа.
  4. Используйте % 26 , чтобы убедиться, что сдвиг вернется к началу алфавита.
  5. Добавить зашифрованный символ к строке результата .

После того, как цикл завершает итерацию по значению текста , возвращается результат :

  для символа в тексте:
    если char.islower ():
        index = lowercase.index (char)
        результат + = нижний регистр [(индекс + сдвиг)% 26]
    еще:
        index = uppercase.index (символ)
        результат + = верхний регистр [(индекс + сдвиг)% 26]

вернуть результат
  

Вот еще раз полный код:

  строка импорта

def caesar_cipher (текст, сдвиг, дешифрование = False):
    если не text.isascii () или не text.isalpha ():
        Raise ValueError ("Текст должен быть в формате ASCII и не содержать чисел.")

    нижний регистр = строка.ascii_lowercase
    прописные буквы = строка.ascii_uppercase
    результат = ""

    если расшифровать:
        сдвиг = сдвиг * -1

    для символа в тексте:
        если char.islower ():
            index = lowercase.index (char)
            результат + = нижний регистр [(индекс + сдвиг)% 26]
        еще:
            index = uppercase.index (символ)
            результат + = верхний регистр [(индекс + сдвиг)% 26]

    вернуть результат
  

Теперь запустите код в Python REPL, используя текст meetMeAtOurHideOutAtTwo со сдвигом 10 :

>>>
  >>> caesar_cipher ("meetMeAtOurHideOutAtTwo", 10)
woodWoKdYebRsnoYedKdDgy
  

Зашифрованный результат: woodWoKdYebRsnoYedKdDgy .Используя этот зашифрованный текст, вы можете запустить расшифровку, чтобы получить исходный текст:

>>>
  >>> caesar_cipher ("woodWoKdYebRsnoYedKdDgy", 10, decrypt = True)
MeetMeAtOurHideOutAtTwo
  

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

Шифр ​​Виженера

Шифр ​​Виженера представляет собой полиалфавитный замещающий шифр. Для шифрования он использует разные шифры Цезаря для каждой буквы входящего текста. Шифр Виженера использует ключевое слово, чтобы определить, какой шифр Цезаря следует использовать для поиска буквы шифра.

Вы можете увидеть пример процесса шифрования на следующем изображении. В этом примере входной текст REALPYTHON зашифрован с использованием ключевого слова MODULO :

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

Ниже представлена ​​реализация шифра Виженера. Как вы увидите, оператор по модулю используется в функции дважды:

  строка импорта

def vigenere_cipher (текст, ключ, decrypt = False):
    если не text.isascii () или не text.isalpha () или не text.isupper ():
        Raise ValueError ("Текст должен быть в верхнем регистре ASCII без цифр.")

    uppercase = string.ascii_uppercase # "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    результаты = ""

    для i, символ в перечислении (текст):
        current_key = ключ [i% len (ключ)]
        char_index = uppercase.index (символ)
        key_index = uppercase.index (текущий_ключ)

        если расшифровать:
            index = char_index - key_index + 26
        еще:
            index = char_index + key_index

        результаты + = верхний регистр [индекс% 26]

    вернуть результаты
  

Вы могли заметить, что подпись для vigenere_cipher () очень похожа на caesar_cipher () из предыдущего раздела:

  def vigenere_cipher (текст, ключ, decrypt = False):
    если не текст.isascii () или не text.isalpha () или не text.isupper ():
        Raise ValueError ("Текст должен быть в верхнем регистре ASCII без цифр.")

    верхний регистр = строка.ascii_uppercase
    результаты = ""
  

Основное отличие состоит в том, что вместо параметра shift vigenere_cipher () принимает параметр ключа , который является ключевым словом, используемым во время шифрования и дешифрования. Еще одно отличие - добавление text.isupper () . На основе этой реализации vigenere_cipher () может принимать только вводимый текст в верхнем регистре.

Подобно caesar_cipher () , vigenere_cipher () выполняет итерацию по каждой букве входного текста, чтобы зашифровать или расшифровать его:

  для i, символ в перечислении (текст):
    current_key = ключ [i% len (ключ)]
  

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

  current_key = ключ [i% len (ключ)]
  

Здесь значение current_key определяется на основе индекса, возвращенного из i% len (key) .Этот индекс используется для выбора буквы из строки ключа , например, M из MODULO .

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

Для каждой буквы входящего текста несколько шагов определяют, как ее зашифровать или расшифровать:

  1. Определите char_index на основе индекса char внутри в верхнем регистре .
  2. Определите key_index на основе индекса current_key внутри в верхнем регистре .
  3. Используйте char_index и key_index , чтобы получить индекс для зашифрованного или дешифрованного символа.

Взгляните на эти шаги в приведенном ниже коде:

  char_index = uppercase.index (char)
key_index = uppercase.index (текущий_ключ)

если расшифровать:
    index = char_index - key_index + 26
еще:
    index = char_index + key_index
  

Как видите, индексы для расшифровки и шифрования рассчитываются по-разному.Поэтому в этой функции используется расшифровка . Таким образом, вы можете использовать эту функцию как для шифрования, так и для дешифрования.

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

  результаты + = прописные буквы [индекс% 26]
  

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

Вот еще раз полный код шифра Виженера:

  строка импорта

def vigenere_cipher (текст, ключ, decrypt = False):
    если не text.isascii () или не text.isalpha () или не text.isupper ():
        Raise ValueError ("Текст должен быть в верхнем регистре ASCII без цифр.")

    uppercase = string.ascii_uppercase # "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    результаты = ""

    для i, символ в перечислении (текст):
        current_key = ключ [i% len (ключ)]
        char_index = uppercase.index (символ)
        key_index = прописные буквы.индекс (текущий_ключ)

        если расшифровать:
            index = char_index - key_index + 26
        еще:
            index = char_index + key_index

        результаты + = верхний регистр [индекс% 26]

    вернуть результаты
  

Теперь запустите его в Python REPL:

>>>
  >>> vigenere_cipher (text = "REALPYTHON", key = "MODULO")
DSDFAMFVRH

>>> encrypted = vigenere_cipher (text = "REALPYTHON", key = "MODULO")
>>> печать (в зашифрованном виде)
DSDFAMFVRH

>>> vigenere_cipher (зашифровано, "MODULO", decrypt = True)
РЕАЛПИТОН
  

Отлично! Теперь у вас есть рабочий шифр Виженера для шифрования текстовых строк.

Расширенное использование оператора модуля Python

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

Использование оператора Python по модулю с десятичным числом

. Десятичное число

Ранее в этом руководстве вы видели, как можно использовать оператор по модулю с числовыми типами, такими как int и float , а также с математикой .fmod () . Вы также можете использовать оператор по модулю с Decimal из модуля decimal . Вы используете decimal.Decimal , когда вам нужно дискретное управление точностью арифметических операций с плавающей запятой.

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

>>>
  >>> импортировать десятичный
>>> десятичное.Десятичное (15)% десятичное.Десятичное (4)
Десятичный ('3')

>>> десятичный.Десятичный (240)% десятичный. Десятичный (13)
Десятичный ('6')
  

Вот некоторые числа с плавающей запятой, используемые с десятичным числом . Десятичное число и оператор по модулю:

>>>
  >>> decimal.Decimal ("12,5")% decimal.Decimal ("5.5")
Десятичный ('1,5')

>>> decimal.Decimal ("13.3")% decimal.Decimal ("1.1")
Десятичный ('0,1')
  

Все операции по модулю с десятичным числом . Десятичное число возвращают те же результаты, что и другие числовые типы, за исключением случаев, когда один из операндов отрицательный.В отличие от int и float , но как math.fmod () , decimal. Decimal использует знак делимого для результатов.

Взгляните на приведенные ниже примеры, в которых сравниваются результаты использования оператора по модулю со стандартными значениями int и с плавающей запятой и с десятичным числом . Десятичное число :

>>>
  >>> -17% 3
1 # Знак делителя

>>> десятичное.Десятичное (-17)% десятичное.Десятичное (3)
Десятичный (-2) # Знак дивиденда

>>> 17% -3
-1 # Знак делителя

>>> десятичный.Десятичный (17)% десятичный. Десятичный (-3)
Десятичный ("2") # Знак дивиденда

>>> -13,3% 1,1
1.0000000000000004 # Знак делителя

>>> decimal.Decimal ("- 13,3")% decimal.Decimal ("1,1")
Десятичный ("- 0,1") # Знак дивиденда
  

По сравнению с math.fmod () , десятичное. Десятичное число будет иметь тот же знак, но точность будет другой:

>>>
  >>> decimal.Decimal ("- 13,3")% decimal.Decimal ("1,1")
Десятичный ("- 0,1")

>>> математика.fmod (-13,3, 1,1)
-0,09999999999999964
  

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

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

Использование оператора Python по модулю с пользовательскими классами

Модель данных Python позволяет вам переопределить встроенные методы в объекте Python, чтобы настроить его поведение.В этом разделе вы узнаете, как переопределить .__ mod __ () , чтобы вы могли использовать оператор по модулю со своими собственными классами.

В этом примере вы будете работать с классом Студент . Этот класс будет отслеживать количество времени, которое студент учился. Вот начальный номер Student class:

  класс Студент:
    def __init __ (я, имя):
        self.name = имя
        self.study_sessions = []

    def add_study_sessions (самостоятельно, сеансы):
        себя.study_sessions + = сеансы
  

Класс Student инициализируется параметром name и начинается с пустого списка study_sessions , который будет содержать список целых чисел, представляющих количество минут, изученных за сеанс. Также существует .add_study_sessions () , который принимает параметр sessions , который должен быть списком учебных сессий, который нужно добавить к study_sessions .

Теперь, если вы помните из раздела преобразования единиц выше, convert_minutes_to_day () использовал оператор Python по модулю для преобразования total_mins в дни, часы и минуты.Теперь вы реализуете модифицированную версию этого метода, чтобы увидеть, как можно использовать собственный класс с оператором по модулю:

  def total_study_time_in_hours (студент, всего_мин.):
    часы = total_mins // 60
    минут = total_mins% 60

    print (f "{student.name} изучил {часы} часы и {минуты} минуты")
  

Эту функцию можно использовать с классом Студент для отображения общего количества часов, которые изучил Студент . В сочетании с классом Student выше код будет выглядеть так:

  класс Студент:
    def __init __ (я, имя):
        себя.name = имя
        self.study_sessions = []

    def add_study_sessions (самостоятельно, сеансы):
        self.study_sessions + = сеансы

def total_study_time_in_hours (студент, total_mins):
    часы = total_mins // 60
    минут = total_mins% 60

    print (f "{student.name} изучил {часы} часы и {минуты} минуты")
  

Если вы загрузите этот модуль в Python REPL, то можете использовать его так:

>>>
  >>> jane = Студент ("Джейн")
>>> jane.add_study_sessions ([120, 30, 56, 260, 130, 25, 75])
>>> total_mins = сумма (джейн.study_sessions)
>>> total_study_time_in_hours (Джейн, всего_минут)
Джейн занималась 11 часов 36 минут
  

Приведенный выше код распечатывает общее количество часов, которые изучила Джейн . Эта версия кода работает, но требует дополнительного шага суммирования study_sessions , чтобы получить total_mins перед вызовом total_study_time_in_hours () .

Вот как можно изменить класс Student , чтобы упростить код:

  класс Студент:
    def __init __ (я, имя):
        себя.name = имя
        self.study_sessions = []

    def add_study_sessions (самостоятельно, сеансы):
        self.study_sessions + = сеансы

    def __mod __ (сам, другое):
        возвратная сумма (self.study_sessions)% other

    def __floordiv __ (я, другой):
        возвратная сумма (self.study_sessions) // другое
  

Переопределив .__ mod __ () и .__ floordiv __ () , вы можете использовать экземпляр Student с оператором по модулю. Вычисление суммы () из study_sessions также включен в класс Student .

С этими изменениями вы можете использовать экземпляр Student непосредственно в total_study_time_in_hours () . Поскольку total_mins больше не нужен, вы можете удалить его:

  def total_study_time_in_hours (студент):
    часы = студент // 60
    минут = студент% 60

    print (f "{student.name} изучил {часы} часы и {минуты} минуты")
  

Вот полный код после изменений:

  класс Студент:
    def __init __ (я, имя):
        себя.name = имя
        self.study_sessions = []

    def add_study_sessions (самостоятельно, сеансы):
        self.study_sessions + = сеансы

    def __mod __ (сам, другое):
        возвратная сумма (self.study_sessions)% other

    def __floordiv __ (я, другой):
        возвратная сумма (self.study_sessions) // другое

def total_study_time_in_hours (студент):
    часы = студент // 60
    минут = студент% 60

    print (f "{student.name} изучил {часы} часы и {минуты} минуты")
  

Теперь, вызвав код в Python REPL, вы увидите, что он гораздо лаконичнее:

>>>
  >>> jane = Студент ("Джейн")
>>> Джейн.add_study_sessions ([120, 30, 56, 260, 130, 25, 75])
>>> total_study_time_in_hours (Джейн)
Джейн занималась 11 часов 36 минут
  

Переопределяя .__ mod __ () , вы позволяете своим пользовательским классам вести себя больше как встроенные числовые типы Python.

Заключение

На первый взгляд, оператор по модулю Python может не привлечь ваше внимание. Тем не менее, как вы видели, в этом скромном операторе есть так много всего. От проверки четных чисел до шифрования текста - вы видели множество различных применений оператора по модулю.

Из этого руководства вы узнали, как:

  • Используйте оператор по модулю с int , float , math.fmod () , divmod () и decimal.Decimal
  • Вычислить результаты операции по модулю
  • Решите реальных проблем с помощью оператора по модулю
  • Переопределите .__ mod __ () в ваших собственных классах, чтобы использовать их с оператором по модулю

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

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *