Что такое 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
Теперь запишем нашу программу в Паскале и и запустим ее.
Дополнение к материалу.
Правила приоритета при выполнении операций в Паскале.
- Сначала выполняются действия над переменными, которые стоят в скобках.
- Затем вычисляются функции.
- Затем умножение и деление.
- Затем сложение и вычитание.
Операции, которые имеют одинаковый приоритет (сложение и вычитание, деление и умножение) выполняются слева направо, т.е. в порядке очереди.
Комментарии
+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?
Спасибо, тогда тоже пока напишу скрипт, пусть ищет.