Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 1 mod 2 =1???? 
V
    Опции темы
JustInTime
Дата 27.11.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.11.2007

Репутация: нет
Всего: нет



1 mod 2=1 
ПОчему,,,? Не могу понять........
PM MAIL   Вверх
Snowy
Дата 27.11.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Это математика.
Остаток от деления на 2 какой?
Возьми учебник по математике для средней школы, повтори...
PM MAIL   Вверх
JustInTime
Дата 27.11.2007, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.11.2007

Репутация: нет
Всего: нет



2 Snowy
Остаток равен 0,5 ? Так или нет?

PM MAIL   Вверх
Lexicss
Дата 27.11.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 16.8.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 1



smile
Ещё для более лучше запоминания могу объяснить для этого частого случая так :
если дано выражение  x mod 2
то оно будет равно 1 тогда и только тогда, когда x - нечётно,
и  равно 0, если x - чётно.

И напомню, что выражение mod возвращает остаток от деления, а не само частное. 
А частное из этого выражения как раз таки будет равно 0.

Добавлено через 2 минуты и 22 секунды
JustInTime, парень, ты уже конкретно запутался. Остаток  -  это всегда целое число.
такое выражение как "x mod y " всегда вернёт остаток в пределах от [0 .. y-1].
--------------------
Бери от жизни всё.
PM MAIL WWW ICQ Skype   Вверх
JustInTime
Дата 27.11.2007, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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

 
PM MAIL   Вверх
Lexicss
Дата 27.11.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 16.8.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 1



Цитата(JustInTime @ 27.11.2007,  18:28)
Если x>=y то  на выходе будет 1 или 0

Вот это утверждение уже не верно. 
возвращать это выражение будет 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 ?

--------------------
Бери от жизни всё.
PM MAIL WWW ICQ Skype   Вверх
Imple
Дата 27.11.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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


--------------------
Не шалю, никого не трогаю, починяю сервер.
PM WWW ICQ Skype GTalk Jabber   Вверх
Snowy
Дата 27.11.2007, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Переведу в дельфи код.
Операцию mod можно представить, как
Код
result := x - x div a * a;
где х - число, а - модуль.
То есть mod возрачает то, что было отброшено при делении div-ом.
То есть 13 div 5 = 2.
То есть 10 разделилось, остальное целоцисленно не делится - выкинули.
А что выкинули? Правильно - 3.
Вот 3 это и есть остаток от деления.
15 div 5 = 3
Разделилось полностью. Остатка нет.
16 div 5 = 3
15 разделилось, а остаток - 1. 
PM MAIL   Вверх
Lexicss
Дата 27.11.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 16.8.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 1



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

Нас 4 человека и у нас есть 25 яблок. Нам надо поделить по-ровну между собой эти яблоки, при условии что разрезать эти яблоки нельзя. В итоге каждый из нас получит по 6 яблок(25 div 4 = 6), однако 6*4 = 24, т.е. раздав каждому из 25-ти яблок по 6 у нас 1 яблоко осталось лишним(25 mod 4 = 1).

Вот эта описанная ситуация с яблоками и объясняет принцип целочисленного деления и остаток от него.

--------------------
Бери от жизни всё.
PM MAIL WWW ICQ Skype   Вверх
JustInTime
  Дата 28.11.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.11.2007

Репутация: нет
Всего: нет



2 Lexicss,Snowy,Imple

Спасибо Вам огромное. Теперь все ясно.
Объяснили лучше чем в учебниках!!!.
PM MAIL   Вверх
PsiMagistr
Дата 13.6.2010, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Вопрос конечно интересный, но...

Что возвращает mod при делении меньшего числа на большее?

5 mod 3 = 2 в остатке. Здесь все правильно.

3 mod 5 а так? Мне возвращает 3, но почему не могу понять.


Это сообщение отредактировал(а) PsiMagistr - 13.6.2010, 09:06


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
bems
Дата 13.6.2010, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



потому что 0 раз по 5 и 3 в остатке


--------------------
Обижено школьников: 8
PM MAIL   Вверх
PsiMagistr
Дата 13.6.2010, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



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


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
bems
Дата 13.6.2010, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



ну так и есть. В данном случае вообще ничего не разделилось


--------------------
Обижено школьников: 8
PM MAIL   Вверх
PsiMagistr
Дата 13.6.2010, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Спасибо, bems. Я тут откопал математическую модель шифратора Цезаря, где этот самый mod используют. Так что перепишу под него проектик и поставю сюда к нам. 



--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1088 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.