Что такое mod
Перейти к содержимому

Что такое mod

Что такое mod

Оператор div и оператор mod

Оператор div и оператор mod

В этой статье речь пойдет о целочисленном делении и делении с остатком.

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

То есть например 20 / 5 = 4, 55 / 6 = 9, 100 / 3 = 33 и т.д.

Согласитесь, что в некоторых случаях это очень удобно и практично. Теперь поговорим о реализации этого метода в Паскале. Тут все достаточно просто, открывать Америку не придется. В паскале за целочисленное деление отвечает оператор div. Теперь как это записывается в Pascal’e

x — число , которое будем делить на y (делимое)
y — число , на которое будем делить число x (делитель)
z — результат целочисленного деления (целочисленное частное)

Таким образом, вот такая запись (55 / 6) нацело = 9 в результате использования оператора div будет выглядеть так

z будет равно 9. Запомните! При использовании оператора div дробная часть будет отброшена!

А сейчас поговорим о делении с остатком. Оно не особо отличается и главным здесь является то, что в результате отбрасывается как раз целая часть. То есть (40 / 6) с остатком = 4, (10 / 3) с остатком =1, (22 /5) с остатком = 2 и т.д. В паскале для этого есть оператор mod. Записывается он точно так же.

x — число , которое будем делить на y (делимое)
y — число , на которое будем делить число x (делитель)
z — остаток

Например (40 / 6) с остатком = 4 с оператором mod будет такой

И как результат получим z=1 .

Кстати оператор mod часто используют, для определения кратности чисел (кратность — это делимость на какое-нибудь число нацело. То есть например говорят, что числа 3, 6, 9, 12, 21 кратны трем. Или числа 5,10,15,20 кратны 5). В статье нахождение четных элементов массива я упоминал о числах кратных двум (четных). Итак как эту кратность определить в паскале. Обратите внимание, что если число кратное, то у него есть остаток (точнее оно имеет в остатке ноль). Этим и стоит воспользоваться.

Сейчас я привел пример условия, которое проверяет кратность, где v — это число, проверяемое на кратность по числу m. Например чтобы проверить,
является ли 40 кратным 4, используем оператор mod с условием и получим

Div, Mod, сложение, вычитание в Pascal.

Помимо операций умножения и сложения, над целочисленными переменными производятся операции Div (операция целочисленного деления), Mod (вычисление остатка от целочисленного деления), операция вычитания «-».

program number7; uses crt; var A,B,C: integer; begin clrscr; A:=17; B:=3; C:=A div B; writeln ('17 div 3 = ',C); C:=A mod B; writeln ('17 mod 3 = ',C); C:=A-B; writeln ('17-3 =',C); readln end.

В строке №8 используется операция Div. Это операция деления нацело, т. е. в результате получится целое число без остатка. Если 17 разделить на 3, то получится 5,66666… Здесь — целое число 5, оно и будет результатом операции div.
Строка №10. Операция Mod вычисляет остаток от целочисленного деления. Если мы разделим 17 на 3, то получится 5 – целое число и 2 – остаток. Таким образом, результатом операции Mod будет число 2
Теперь запишем нашу программу в Паскале и и запустим ее.

div mod

div mod.

Дополнение к материалу.

Правила приоритета при выполнении операций в Паскале.

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

Операции, которые имеют одинаковый приоритет (сложение и вычитание, деление и умножение) выполняются слева направо, т.е. в порядке очереди.

Комментарии

+9 # Irzorg 04.04.2012 17:46

помогите решить задачу 1811 mod 32 = 19! Как получается этот ответ, все испробывал, не могу получить!

+2 # Евгений 09.01.2015 18:56

Достаточно в выше показанной программе переменную А определить как 1811,а переменную В как 32 то переменная С (C:=A mod B) и определит искомые 19.

+67 # Administrator 05.04.2012 08:29

Делишь 1811 на 32, получается 56,59375. Из этого числа берем целое число, т.е. 56 и умножаем его на 32. Получится 1792. 1811-1792=19 Это и есть остаток от целочисленного деления.

+9 # Евгений 09.01.2015 13:08

Этому можно придать и иной смысл. Достато чно вспомнить мультфильм «тридцать восемь попугаев. Числ о,которым делят,становить ся мерой числа которое делят. И остаток 0.59375 выражает часть числа 32. Так что достаточно умножить 32 на 0.59375 что бы получилось искомые 19.

-181 # яю 23.04.2012 12:14
Забудь про паскаль.
И задачу тебе не нужно решать.
А если хочешь научиться, то начинай с Ассемблера.
+39 # Нео 02.12.2012 13:08
-27 оценка.
вижу никому не нравиться Ассамблер
+30 # Антон 23.02.2013 14:00
Ну просто обсуждается именно паскаль, а не ассемблер, поэтому и минусуют, что не по теме
+6 # alex 30.06.2012 14:04
🙂
8 строка: C := trunc(A/B);
10 cстрока: C := A — B * trunc(A/B);
-8 # помогите 28.01.2013 19:21

помогите решить задачу:дано 2 значное число,переверни те его справа налево.Допучсти м 32 ответ должен быть 23. или дано 78 ответ 87 заранее спосибо. )

+4 # Антон 23.02.2013 14:35

Program pr1;
var
x, y1, y2, y: integer;
begin
write (‘Введите двухзначное число: ‘);
readln (x);
y1:=(x mod 10)*10;
y2:=x div 10;
y:=y1+y2;
write (‘Число-перевёр тыш: ‘, y);
readln;
end.

-5 # Вадим 22.11.2015 06:30
А не легче в 7,8 и 9 строках сделать так: y1:=x div 10; y2:=x mod 10; writeln (y2,y1);
+4 # VladiMir 08.04.2015 19:38

uses
SysUtils;
var a,b: integer;
n: word;

begin
readln(n);
a:=n mod 10;
n:= n div 10;
b:=n mod 10;
n:= n div 10;
n:=a*10+b;
writeln(n);
readln;

-14 # dim 16.02.2013 12:43

program prog1;
uses crt;

begin
write (‘введите двухзначное число. ‘);
read(x);
z:=10;

y:=x div z;
c:=x mod z;
writeln (c,y);
readln
end.

0 # иришка* 18.02.2013 12:38

ребяята подскажите пожалуйста !очень надо как из числа 5264 получить число 2 типа третье от конца число помогите пожалуйста

-5 # Антон 23.02.2013 12:18

Program pr1;
var
x, y: integer;
begin
write (‘Введите число: ‘);
readln (x); //вводим 5264
y:=(x div 100)-(((x div 100) div 10)*10);
write (‘Третья цифра справа ‘, y);
end.

Программа всегда будет говорить, какая цифра стоит третьей

-4 # Антон 23.02.2013 13:58

Кстати, перед «end.» надо добавить «readln;», а то после вывода результата программа тут же закроется

0 # Виталий 16.11.2017 13:31

a:=a div 10;
b:=a div 10;
a:=a div 10;
b:=a mod 10;
writeln(b);

0 # Alexandr 19.02.2013 11:27

# Irzorg
Вот тебе схема как это делать в дальнейшем:
Допустим,что нам даны два числа x и y;
1)X mod Y=F;-Нам нужно узнать,что же за число получится при вычислении остатка от целочисленного деления;
2)X div Y=Z;Z-это результат целочисленного деления;
3)Z*Y=G;G-число,которое получилось в результате умножения результата целочисленного деления на число Y(Y дан нам в исходном выражении);
4)X-G=F;Где F конечный результат.
Надеюсь,что помог тебе.

-4 # ivan 20.03.2013 16:32
подсчитал все значения,на экран нужно вывести каждое двадцатое число,подскажит е пожалуйста
+1 # katya 21.03.2013 17:25

помогите решить задачу.
дано два цэлых числа: A, B. проверить истинное ли выражение » Каждое ис чисел А,В — непарное»

+2 # Casil 16.03.2018 10:40

Boolean4. Даны два целых числа: A, B. Проверить истинность высказывания: «Справедливы неравенства A > 2 и B ≤ 3».

var
A, B: integer;

begin
write(‘Введите A и B: ‘);
read(A,B);
writeln(‘Справе дливы неравенства A > 2 и B ≤ 3 — ‘,(A > 2) and (B = 0) or (B дливо двойное неравенство A B) and (B > C)));
end.
Boolean8. Даны два целых числа: A, B. Проверить истинность высказывания: «Каждое из чисел A и B нечетное».

var
A, B: integer;

begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Каждое из чисел A и B нечетное — ‘, (A mod 2 0) and (B mod 2 0));
end.
Boolean9. Даны два целых числа: A, B. Проверить истинность высказывания: «Хотя бы одно из чисел A и B нечетное».

var
A, B: integer;

begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Хотя бы одно из чисел A и B нечетное — ‘, (A mod 2 0) or (B mod 2 0));
end.
Boolean10°. Даны два целых числа: A, B. Проверить истинность высказывания: «Ровно одно из чисел A и B нечетное».

var
A, B: integer;

begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Хотя бы одно из чисел A и B нечетное — ‘, (A mod 2 0) xor (B mod 2 0));
end.
Boolean11. Даны два целых числа: A, B. Проверить истинность высказывания: «Числа A и B имеют одинаковую четность».

var
A, B: integer;
C: boolean;
begin
write(‘Введите A, B: ‘);
read(A,B);
C := ((A mod 2 0) and (B mod 2 0)) or ((A mod 2 = 0) and (B mod 2 = 0));
writeln(‘Числа A и B имеют одинаковую четность — ‘, C);
end.
Boolean12. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Каждое из чисел A, B, C положительное».

var
A, B, C: integer;
begin
write(‘Введите A, B и C: ‘);
read(A,B,C);
writeln(‘Каждое из чисел A, B, C положительное — ‘,(A > 0) and (B > 0) and (C > 0));
end.

Что такое mod

Мод (сокр. от «модификация», моддинг игр) — дополнение к компьютерной игре, написанное, как правило, сторонними разработчиками или любителями с помощью SDK, прилагающегося к игре или специальных, разработанных для модифицирования игр любительских программ. В отличие от адд-она, они часто изменяют баланс сил (в стратегических играх) или набор оружия и возможности героя (в 3D-шутерах).

Мутаторы и глобальные моды

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

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

Подключение мутаторов существует лишь в некоторых играх. Например, они имеются в Unreal Tournament, в серии Fallout (начиная от Fallout 3) и в трилогии S.T.A.L.K.E.R.

Глобальный мод — модификация игры, которая полностью изменяет игру. Обычно такие моды полностью заменяют игровую карту, персонажей, добавят транспорт или миссии. Глобальные моды очень популярны в серии игр «Grand Theft Auto».

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

Реплейсеры

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

См. также

Ссылки

  • Download-Mods.com — Молодой, активно развивающийся сайт, посвященный модам (на русском).
  • GamesModding — различные руководства, различные игры (на английском).
  • Mod Database — большой список модов (на английском).
  • ModGames — сайт посвященный моддингу. (на русском).
  • ModoStroi — помощь в модификации игр и готовые моды. (на русском).
  • Nexus NetWork — большой список модов. (на английском)

[математикам]что такое mod?

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

Что такое mod? Простой остаток от деления e^-1 на p-1?

Судя по всему нет, т.к. вот пример из той же методички:

d = e^-1 (mod p-1) = 42239^-1 (mod(52631-1) = 32229

Как это считается?

p.s. Да, математика в институте была >5 лет назад, и она вовсе не мой конек.

Turbid ★★★★★
22.06.09 02:40:55 MSD

Re: [математикам]что такое mod?

а вроде всегда это был остаток от деления. число, не превосходящее делитель.

gunja ★
( 22.06.09 04:12:36 MSD )

Re: [математикам]что такое mod?

если по простому, то это как будто «зацикленное» отнимание. т.е. какое останется число k, если от числа n отнять число m максимум полных раз.
например. 11 mod 3 = 2. число 11 это 3+3+3+2. результат — 2. 61 mod 26 = 9. 61 это 26+26+9.

//читаю лекции по криптографии у людей с большими провалами в математике, даже поля Галуа и теорему Ейлера можно объяснить на пальцах, ящитаю

val-amart ★★★★★
( 22.06.09 05:07:04 MSD )

Re: [математикам]что такое mod?

про (mod p-1) уже сказали, но

> d = e^-1 (mod p-1) = 42239^-1 (mod(52631-1) = 32229

либо очепятка, либо ошибка:

a^=b(mod c) если a*b=1(mod c), но у тут

pupok ★★
( 22.06.09 05:22:44 MSD )

Re: [математикам]что такое mod?

кури теорию чисел

irq ★
( 22.06.09 06:03:22 MSD )

Re: [математикам]что такое mod?

Ужас. Закрывай методичку, открывай теорию чисел. А то что будет, когда дискретные логарифмы (ЕМНИП, ГОСТовское шифрование на них основано, но тут могу ошибаться, лет 10 криптографию не трогал) встретишь и т.д.

redgremlin ★★★★★
( 22.06.09 07:07:07 MSD )
Ответ на: Re: [математикам]что такое mod? от val-amart 22.06.09 05:07:04 MSD

Re: [математикам]что такое mod?

ОМГ, так это ты подпускаешь людей без знания математики к криптографии?

spunky ★★
( 22.06.09 07:31:05 MSD )
Ответ на: Re: [математикам]что такое mod? от val-amart 22.06.09 05:07:04 MSD

Re: [математикам]что такое mod?

> //читаю лекции по криптографии у людей с большими провалами в математике, даже поля Галуа и теорему Ейлера можно объяснить на пальцах, ящитаю

Объясните на пальцах БПФ. Не что он делает, а КАК.

Ну мля, я хочу понять, как всё-таки эти формулы с интегралами в циклы расписать чтобы ему на вход массив с PCM, на выходе массив с частотами.

tx
( 22.06.09 08:54:55 MSD )

Re: [математикам]что такое mod?

Здесь либо порядок операций нужно смотреть, либо ограничение представления машинного числа в памяти компа. Положительное integer принимает значения от 0 до 32767. Ну, типа тогда 0-1=32767.

the_mozart
( 22.06.09 08:54:55 MSD )
Ответ на: Re: [математикам]что такое mod? от val-amart 22.06.09 05:07:04 MSD

Re: [математикам]что такое mod?

Ну что такое остаток я понимаю, но как его найти в данном примере? Ведь e^ явно меньше чем (p-1)?

p.s. эта формула из «трехподходного протокола Шамира»

Turbid ★★★★★
( 22.06.09 08:55:21 MSD ) автор топика

Re: [математикам]что такое mod?

>Как это считается?

Самое простое объяснение: в методичке опечатка, пропущена какая-то буква перед «-1».

DonkeyHot ★★★★★
( 22.06.09 09:46:58 MSD )

Re: [математикам]что такое mod?

Второе объяснение — вопрос в том, что такое e^-1 в смысле (mod n), и как его вычислить.

DonkeyHot ★★★★★
( 22.06.09 10:06:17 MSD )

Re: [математикам]что такое mod?

Это таки точно опечатка. У меня получается 34229, что слишком похоже на 32229, чтобы быть случайным.

DonkeyHot ★★★★★
( 22.06.09 10:09:53 MSD )
Ответ на: Re: [математикам]что такое mod? от DonkeyHot 22.06.09 10:09:53 MSD

Re: [математикам]что такое mod?

Т.е. получается: d = e^ (mod p-1) = 42239^ (mod(52631-1) = 34229

Еще раз, для малограмотных, объясните как взять остаток от деления 42239^ = 2.36748029073e-05 на 52630?

Turbid ★★★★★
( 22.06.09 10:22:07 MSD ) автор топика
Ответ на: Re: [математикам]что такое mod? от Turbid 22.06.09 10:22:07 MSD

Re: [математикам]что такое mod?

>как взять остаток от деления 42239^

На самом деле mod(n), означает не остаток от деления(это только метод вычисления) а выполнение операций в соотв. кольце (или какой другой структуре — я основательно позабыл) — в котором не-целых чисел вообще нет, т.ч. e-05 там получить никак нельзя. Т.о. из определения ^-1: A^-1 (mod N) = B, такое, что A * B (mod n) = 1, следует немножко другое число. Как его вычислить и правда не знаю (:for i in range() помог:). Опыт показывает, что это 34229, т.к. *42239 mod (52630) == 1.

DonkeyHot ★★★★★
( 22.06.09 10:51:27 MSD )
Ответ на: Re: [математикам]что такое mod? от DonkeyHot 22.06.09 10:51:27 MSD

Re: [математикам]что такое mod?

Спасибо, тогда тоже пока напишу скрипт, пусть ищет.

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

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