![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
JustInTime |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
1 mod 2=1
ПОчему,,,? Не могу понять........ |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Это математика.
Остаток от деления на 2 какой? Возьми учебник по математике для средней школы, повтори... |
|||
|
||||
JustInTime |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
2 Snowy
Остаток равен 0,5 ? Так или нет? |
|||
|
||||
Lexicss |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
![]() Ещё для более лучше запоминания могу объяснить для этого частого случая так : если дано выражение x mod 2 то оно будет равно 1 тогда и только тогда, когда x - нечётно, и равно 0, если x - чётно. И напомню, что выражение mod возвращает остаток от деления, а не само частное. А частное из этого выражения как раз таки будет равно 0. Добавлено через 2 минуты и 22 секунды JustInTime, парень, ты уже конкретно запутался. Остаток - это всегда целое число. такое выражение как "x mod y " всегда вернёт остаток в пределах от [0 .. y-1]. --------------------
Бери от жизни всё. |
|||
|
||||
JustInTime |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
2 Lexicss
Вы правы, запутался я конкретно... Но вот смотрите. К примеру 2 mod 5=2 3 mod 5=3 4 mod 5=4 Представим формулу(x mod y) Если х<y то на выходе будет х Если x>=y то на выходе будет 1 или 0 |
|||
|
||||
Lexicss |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
Вот это утверждение уже не верно. возвращать это выражение будет 1 или 0 только тогда когда y = 2, т.е. [0 .. y-1] Остаток будет всегда нулевым, если выражение делится нацело, например 6 mod 3, 10 mod 2, 24 mod 3 Если же нацело не делится, то тогда остаток ненулевой. Вот полный пример, я думаю что станет понятнее: x div y = a //целочисленное деление с остатком x mod y = b //взятие остатка от деления (или деление по модулю) из этой системы уравнений справедливо равенство: x = y*a + b Частный случай: пускай x = 25, y = 4 тогда имеем 25 div 4 = 6 25 mod 4 = 1 в итоге получаем справедливое равенство: 25 = 4*6 + 1 Надеюсь, это хоть понятно почему 25 div 4 = 6 ? --------------------
Бери от жизни всё. |
|||
|
||||
Imple |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1546 Регистрация: 14.9.2007 Где: Алма-Ата Репутация: нет Всего: 87 |
JustInTime, не так.
Происходит целочисленное деление, остаток от которого возвращает оператор mod. К примеру: 4 mod 2, результат деления 2, остаток 0 11 mod 3, результат деления 3, остаток 2 17 mod 5, результат 3 остаток 2 1 mod 2, результат 0 остаток 1 -------------------- Не шалю, никого не трогаю, починяю сервер. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Переведу в дельфи код.
Операцию mod можно представить, как
То есть mod возрачает то, что было отброшено при делении div-ом. То есть 13 div 5 = 2. То есть 10 разделилось, остальное целоцисленно не делится - выкинули. А что выкинули? Правильно - 3. Вот 3 это и есть остаток от деления. 15 div 5 = 3 Разделилось полностью. Остатка нет. 16 div 5 = 3 15 разделилось, а остаток - 1. |
|||
|
||||
Lexicss |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
Можно ещё вот так на пальцах объяснить, доходчевее придумать, уже и не знаю как.
Нас 4 человека и у нас есть 25 яблок. Нам надо поделить по-ровну между собой эти яблоки, при условии что разрезать эти яблоки нельзя. В итоге каждый из нас получит по 6 яблок(25 div 4 = 6), однако 6*4 = 24, т.е. раздав каждому из 25-ти яблок по 6 у нас 1 яблоко осталось лишним(25 mod 4 = 1). Вот эта описанная ситуация с яблоками и объясняет принцип целочисленного деления и остаток от него. --------------------
Бери от жизни всё. |
|||
|
||||
JustInTime |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
2 Lexicss,Snowy,Imple
Спасибо Вам огромное. Теперь все ясно. Объяснили лучше чем в учебниках!!!. |
|||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: 1 Всего: 1 |
Вопрос конечно интересный, но...
Что возвращает mod при делении меньшего числа на большее? 5 mod 3 = 2 в остатке. Здесь все правильно. 3 mod 5 а так? Мне возвращает 3, но почему не могу понять. Это сообщение отредактировал(а) PsiMagistr - 13.6.2010, 09:06 -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
потому что 0 раз по 5 и 3 в остатке
-------------------- Обижено школьников: 8 |
|||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: 1 Всего: 1 |
bems, хм, довольно забавно. Всегда полагал что при делении меньшего на большее остаток вообще не образуется. Ведь остаток это то, что не разделилось.
-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
ну так и есть. В данном случае вообще ничего не разделилось
-------------------- Обижено школьников: 8 |
|||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: 1 Всего: 1 |
Спасибо, bems. Я тут откопал математическую модель шифратора Цезаря, где этот самый mod используют. Так что перепишу под него проектик и поставю сюда к нам.
-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |