Вычисление дня недели в уме. Тренируем мозги (вычисление дня недели по дате)

Урок 23. Определение дня недели по дате | Ментальная арифметика онлайн

Вычисление дня недели в уме. Тренируем мозги (вычисление дня недели по дате)

Упражнение считается выполенным после 7 правильных ответов

Норма выполнения упражнения – 2 минуты

Для успешного выполнения упражнения ознакомьтесь с теорией

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

  1. вычислить код дня недели, сложив порядковый номер дня в месяце, код месяца и код года, а затем сократить полученную сумму (если она превышает 6) до числа от 0 до 6 путём вычитания необходимого количества семёрок (или, другими словами, путём вычитания соответствующего числа, кратного семи, которое может равняться 7(7×1), 14(7×2), 21(7×3), 28(7×4), 35(7×5), 42(7×6) и т.д.);
  2. определить день недели по коду дня недели.

Дни недели и их коды

День недели Код дня недели
понедельник1
вторник2
среда3
четверг4
пятница5
суббота6
воскресенье0

Месяцы и их коды

Месяц Код месяца
январь6 (для високосного года – 5)
февраль2 (для високосного года – 1)
март2
апрель5
май0
июнь3
июль5
август1
сентябрь4
октябрь6
ноябрь2
декабрь4

Для запоминания соответствий между месяцами и их кодами можно использовать мнемонические техники.

Например, январь легко ассоциировать с числом 6, так как в слове «январь» 6 букв, а февраль можно сопоставить с числом 2 на основании того, что февраль является вторым по счёту месяцем в году. Но не забывайте уменьшать код января и февраля на единицу, если год является високосным.

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

Годы XXI века и их коды*

Год К. Год К. Год К. Год К.
20000202532050620752
20011202642051020764
20022202752052220775
20033202802053320786
20045202912054420790
20056203022055520802
20060203132056020813
20071203252057120824
20083203362058220835
20094203402059320840
20105203512060520851
20116203632061620862
20121203742062020873
20132203852063120885
20143203962064320896
20154204012065420900
20166204122066520911
20170204232067620923
20181204342068120934
20192204462069220945
20204204502070320956
20215204612071420961
20226204722072620972
20230204842073020983
20242204952074120994

Эту таблицу не обязательно запоминать. Код года для XXI века (2000 – 2099 гг.) можно вычислить следующим образом:

  1. представить год в виде выражения: 2000 + X, где X – число из двух последних цифр года;
  2. разделить X на 4 и отбросить остаток;
  3. добавить X к результату пункта 2;
  4. если результат пункта 3 больше шести, то вычесть из него наибольшее кратное семи (но не превосходящее результат пункта 3) число.

Например, для 2029 года: 1) 2029 = 2000 + 29; 2) 29 / 4 = 7(остаток отброшен); 3) 7 + 29 = 36; 4) 36 – 35(7×5) = 1

Задача: определить день недели для 5 апреля 2018 г.

Решение:

порядковый день в месяце = 5;

код месяца = 5;

код года: 1) 2018 = 2000 + 18; 2) 18 / 4 = 4(остаток отброшен); 3) 4 + 18 = 22; 4) 22 – 21(7×3) = 1

(порядковый день в месяце + код месяца + код года) = 5 + 5 + 1 = 11

Так как полученная сумма превышает 6, то сокращаем её до числа, не превышающего 6, путём вычитания соответствующего кратного семи числа: 11 – 7(7×1) = 4

Ответ: четверг (код дня недели = 4)

Задача: определить день недели для 26 ноября 2039 г.

Решение:

порядковый день в месяце = 26;

код месяца = 2;

код года: 1) 2039 = 2000 + 39; 2) 39 / 4 = 9(остаток отброшен); 3) 9 + 39 = 48; 4) 48 – 42(7×6) = 6

(порядковый день в месяце + код месяца + код года) = 26 + 2 + 6 = 34

Так как полученная сумма превышает 6, то сокращаем её до числа, не превышающего 6, путём вычитания соответствующего кратного семи числа: 34 – 28(7×4) = 6

Ответ: суббота (код дня недели = 6)

Для определения дня недели по датам XX века необходимо сместить код годов XXI века вперёд на 1 день.

Задача: определить день недели для 12 августа 1953 г.

Решение:

порядковый день в месяце = 12;

код месяца = 1;

код года: 1) 1953 = 1900 + 53; 2) 53 / 4 = 13(остаток отброшен); 3) 13 + 53 = 66; 4) 66 – 63(7×9) = 3

Так как мы имеем дело с датой XX века, то прибавляем к коду года единицу: 3 + 1 = 4

(порядковый день в месяце + код месяца + код года) = 12 + 1 + 4 = 17

Так как полученная сумма превышает 6, то сокращаем её до числа, не превышающего 6, путём вычитания соответствующего кратного семи числа: 17 – 14(7×2) = 3

Ответ: среда (код дня недели = 3)

* В обычном (не високосном году) 365 дней (52 полных недели + 1 день). Поэтому в такой год, относительно предыдущего, день недели смещается на 1 день вперёд.

В високосном году 366 дней (52 полных недели + 2 дня). Поэтому в такой год, относительно предыдущего, день недели смещается на 2 дня вперёд.

Если быть точнее, то дополнительное смещение (за счет того, что год – високосный) происходит после окончания февраля месяца.

Поэтому для января и февраля високосного года (когда смещение ещё не произошло) код месяца уменьшен на единицу по сравнению с январём и февралём обычного (не високосного) года.

Источник: https://drdo.ru/mentalnaya-arifmetika/opredelenie-dnya-nedeli-po-date/

Вычисление дня недели в уме

Вычисление дня недели в уме. Тренируем мозги (вычисление дня недели по дате)

Существует множество способов прокачать мозг. Задачи «n-back» или мобильные приложения для тренировки навыка быстрого счета в уме. Но эти задачи оторваны от текущей реальности, а хотелось бы прокачать мозг практичным навыком. Зачем? Ведь можно быстро посчитать на гаджете. Увы, совсем не быстро, т.к.

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

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

В алгоритмике часто объемы вычислений могут быть скомпенсированы объемами памяти. Т.е. чем больше оперативки доступно, тем меньше потребуется вычислений. Аналогично работает мозг – чем больше мы запомнили, тем быстрее ищем решение. Запомнили несколько формул для сборки кубика Рубика – соберете за пару минут (после длительной тренировки).

Запомнили полторы сотни формул – соберете за пару десятков секунд. Мировой рекорд 2013 года – 8.18 сек. Еще раз: чем больше помним – тем быстрее решение.

Алгоритм

Нужно взять смещение (день недели) первого дня года (y) и смещение месяца (m). Затем вычислить сумму y+m+d, где d – день месяца, и найти остаток от деления на 7. Получим номер дня недели.

Что нужно запомнить

РазмышленияВ целом, достаточно запомнить все дни недели всех 28 лет (периодичность пропорциональна произведению периодов високосных лет и дней недели). Последовательность в 10k. Это довольно много. Если добавить одну операцию сложения, то будет достаточно запомнить лишь пару рядов чисел:

m(month) = { 6 2 2 5 0 3 5 1 4 6 2 4 }, с января по декабрь

y(year) = { 6 0 1 2 4 5 6 0 2 3 4 5 0 1 2 3 5 6 0 1 3 4 5 6 1 2 3 4 }, с 1988 по 2015

Например: 13 сентября 2013 = (13 + 4 + 2) % 7 = 5 (пятница) Смещения для месяца берутся из календаря некоторого года. Смещение месяца равно количеству серых квадратов в начале месяца. Например, не високосный 2006 год. Смещение для этого года будет 0. Все же запомнить смещения для всех лет и затем выполнять быстрый поиск по индексу довольно сложная когнитивная задача. Есть альтернативный путь – вычислить. Нужно взять две последние цифры года (+100 для XXI века) — Y. Далее найти ближайший прошлый високосный Yв. Взять dY = Y – Yв. Тогда смещение года можно вычислить y(Y) = (50 – Yв/2 + dY) Недостаток формулы в том, что для 2004 и далее смещение будет отрицательным, а для начала и середины XX века двузначными, что слегка затрудняет вычисления в уме. Можно использовать разные формулы для каждого века, в которых учитываются только две младшие цифры года. Например, 12 для 2012г и 1912г. XX: (50 – Yв/2 + dY) % 7 или (8 – Yв/2 % 7 + dY) XXI: (7 – Yв/2 % 7 + dY) В итоге может оказаться проще запомнить таблицу смещений в таком виде: Смещение для года можно вычислить через сумму смещения ближайшего меньшего високосного года и его разницы с искомым годом. Семь цифр запомнить проще чем 28. К тому же, цифры расположены в убывающем порядке с шагом 2. (Да, да, (0 – 2) будет 5, помним про остаток от деления на 7). Можно запомнить цифры (6, 4, 2, 0, -2, -4, -6), что при вычислениях даст аналогичный результат. Года кратные 20 располагаются в косом квадрате 3х3 по схеме «ход конем» c 2000 годом в центре. Значения смещений месяцев и лет согласованы так, чтобы на 2000 год приходилось смещение 0. А шаг между соседними рядами 28 лет. Например, для 2014 смещение будет y(2014) = y(2012) + 2 = 1 + 2 = 3. А день программиста 13 сентября 2014 года будет (y(2014) + m(сен) + 13) = (3 + 4 + 13) = 20 => 20 % 7 = 6, т.е. суббота. Структурируем ряд смещений для месяцев. Значения удобно запоминать по сезонам: весна, лето, осень, зима.

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

Можно запоминать только остатки от деления на 7 (вторая цветная таблица) или для восстановления всей таблицы запомнить только разности (последняя таблица). Прибавляя 1 к 1, получим для марта 2, для июня 2+1=3, для сентября 3+1=4 и т.д.

Одинаковые значения раскрашены в одинаковые цвета. Для быстрого поиска нам поможет вторая цветная таблица. Помним, что строки — это сезоны, начиная с весны. Это крайне непривычно. Но в древнем Риме год начинался именно с марта.

Это отражено в названиях месяцев латинскими цифрами: September/October/November/December – 7/8/9/10, т.е. февраль был последним 12м месяцем года, к которому добавляли високосный день.

12 апреля 1961 года: (6 + 1 + 5 + 12) = (0 + 5 + 12) => 17 % 7 = 3 – среда.

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

14 февраля 2012 = (y(2012)+m(фев)+14) — 1 = (1 + 2 +14) — 1 => 16 % 7 = 2, т.е. вторник.

Еще нужно помнить, что не все года что делятся на 4 будут високосными (исключения — 2100, 1900, 1800, ….). Соответственно, необходимо учесть смещение для века. Впрочем, даже если не учитывать последнее исключение можно безошибочно оперировать днями недели за XX и XXI века, что достаточно для большинства житейских случаев.

Немного оптимизации

Вычисления можно производить в потоковом режиме. Обычно дату рождения (или любую другую дату) сообщают начиная с дня месяца, например, 23 декабря 1913 года. Т.е. в процессе сообщения даты можно частично вычислить искомую сумму 23 + m(дек) = 27 или даже 23 % 7 + m(дек) = 2 + 4 = 6 и затем уже задуматься y(1913) = y(1912) + 1 = 3.

В итоге сообщить 30 % 7 = (6 + 3) % 7 = 2, вторник. Часто приходится оперировать датами текущего года. Т.е. смещение года вы всегда будете помнить, т.к. от частого использования значение «закэшируется». Например, для 2014 смещение равно 3. Что мы получили.

Правила заполнения таблиц простые и вы скорее всего их запомнили и сможете воспроизвести себе шпаргалку в любом месте в любое время. Но для быстрого счета таблицы проще заучить целиком. Ведь мы не восстанавливаем таблицы сложения и умножения для расчета сдачи перед кассой. Эти таблицы «прошиты» еще в начальной школе.

Для запоминания таблиц легче всего воспользоваться тренажером Week Brain Calc (Windows Phone).

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

  • вечный календарь
  • тренировка мозгов

Хабы:

  • 16 сентября 2014 в 09:23
  • 12 сентября 2012 в 21:22
  • 10 сентября 2011 в 00:46

Источник: https://habr.com/post/217389/

Какой день недели считается. Тренируем мозги (вычисление дня недели по дате). Вычисление дня недели по дате

Вычисление дня недели в уме. Тренируем мозги (вычисление дня недели по дате)

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

Понедельник находится под покровительством Луны. Спутник Земли наделил этот день особой эмоциональной чувствительностью. В понедельник мы попадаем под воздействие Луны и начинаем воспринимать все происходящее несколько иначе, чем обычно. Чувства в это день обостряются.

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

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

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

Не стоит во вторник вступать в споры и затевать конфликты. Энергия Марса дается для того, чтобы набираться решительности и уверенности для преодоления трудностей, а не для того, чтобы конфликтовать и показывать свою силу.

Среда – день Меркурия. Удачный день для новых начинаний, особенно для торговли и налаживания новых контактов. В этот день хорошо проводить деловые переговоры и совершать денежные операции.

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

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

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

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

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

Пятница – день Венеры, покровительницы любви и гармонии.

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

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

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

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

Это время, когда активность будет переполнять вас. Многие в субботу ощущают прилив сил.

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

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

09.10.2013 14:20

Знак Зодиака может дать человеку не только свойства и черты характера, но и внешность. На…

У каждого человека есть своя планета-покровитель. Узнать о том, как она влияет на вашу денежную…

Сложите день и число месяца (из таблицы). Если результат больше 6, то вычтите из него наибольшее число, кратное 7. Запомните это число – оно пригодится вам в шаге 3.

Из последних двух цифр года вычтите наибольшее число, кратное 28. Затем последние две цифры года разделите на 4 и результат округлите вниз. Сложите полученные результаты. Полученное число сложите с числом века из таблицы значений веков. Если месяц выпадает на январь или февраль и год високосный, из результата вычтите 1.

Сложите результаты, полученные в шаге 1 и шаге 2. Если результат больше 6, вычтите из него наибольшее число, кратное 7. Используя результат, выясните день недели из таблицы дней недели.

  • Примечание. Год является високосным (в шаге 2), если он делится без остатка на 4. Но год, оканчивающийся двумя нулями, является високосным, если он делится без остатка на 400.
  • Примечание. Таблицы годов и веков. Цикл из четырех чисел (0-5-3-1) в таблице веков повторяется до бесконечности, например, 0 соответствует 2000-чным, а 5 соответствует 3300-чным. Число века можно вычислить, умножив 5 на разность между двумя первыми цифрами года и наибольшего числа, кратного 4 (это число не должно быть больше двух первых цифр года). Например, для 3400: 5 х (34-32) = 10 (от 10 отнимаем 7 и получаем 3). Аналогичные вычисления можно делать и для числа года, но в этом случае формула слишком сложна, чтобы запомнить ее.
  • Примечание. Описанный метод можно использовать и в обратном направлении: по известному дню недели найти месяц, день или год.
  • Примечание. В примере, показанному на картинке в шаге 2, в первой строке вместо 90/4 можно написать 6/4 и соответственно изменить все последующие строки примера. Результат будет таким же.

Использование алгоритма 2007

  1. Запомните «2007» и «среда». Это базовый день и год. Этот метод расскажет вам, как вычислить день недели для любой даты в 2007 году. Заключительные шаги покажут, как применить этот метод к другим годам.

    Запомните следующие даты. В 2007 все они выпадают на среду (базовый день в этом году).

    • 4 апреля (4/4), 6 июня (6/6), 8 августа (8/8), 10 октября (10/10) и 12 декабря (12/12).
    • Также запомните: 7/11, 11/7, 9/5 и 5/9.
    • Теперь у вас есть 1 день недели в каждом месяце с апреля по декабрь. В январе, феврале и марте есть базовый день (среда для 2007), который приходится на 1/31, 2/7, 2/14, 2/21, 2/28, 3/7, 3/14, 3/21 и 3/28. Эти числа легко запомнить, потому что в числовом ряду 7, 14, 21, 28 к каждому предыдущему числу прибавляется 7 (так как в неделе 7 дней).
    • Теперь у вас есть 1 день недели в каждом месяце. Исходя из этого, вам будет легко вычислить день недели на любую дату 2007 года.
  2. Чтобы применить описанный алгоритм к другим годам, нужно увеличивать базовый день на 1 для каждого года (2006 – вторник, 2005 – понедельник).

    В случае високосных годов для января и февраля вычисляйте так, как описано. Для других месяцев прибавьте дополнительный день, например в 2008 – это пятница (для марта и дальнейших месяцев).

Присваивание букв дням

    Присвойте букву алфавита каждому дню недели. Так как в неделе 7 дней, используйте семь букв (от A до G). 1 января – А, 2 января – B и так далее. После G начинайте с A. Так как 7 января – это G, то 8 января – это A (как и 15, 22, 29 января).

    Аналогичным образом присвойте буквы всем 365 дням года (сейчас не принимайте в расчет високосные года). 31 декабря будет А (в пятьдесят третий раз).

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

    • В 2005 воскресенье – это B.
    • В 2006 воскресенье – это А (предыдущая буква от буквы предыдущего года)
    • В 2007 воскресенье – это G (опять предыдущая буква от буквы предыдущего года, так как в нашем методе буквы идут от А до G).
    • 2008 год – это високосный год. Для января и февраля буква воскресенья – это F (предыдущая буква от буквы предыдущего года), но 29 февраля нарушает ряд. Для марта и последующих месяцев (вплоть до декабря) буква воскресенья – это E.
    • В 2009 воскресенье – это D (снова возвращаемся на одну букву назад.)
  1. Определите день недели на любую дату. Например, рассмотрим 4 июня 2007 года. Буква 2007 года – это G. Из таблицы следует, что 3 июня обозначено буквой G, то есть это воскресенье. Но нас интересует 4 июня. Оно идет вслед за 3 июня. Следовательно, 4 июня 2007 года – это понедельник.

Введение

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

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

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

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

Этот метод не предполагает сколь-нибудь продвинутых познаний в математике (людям, хорошо разбирающимся в математике, рекомендуется прочитать статью в Википедии про алгоритм Судного дня ). Если вы неплохо разбираетесь в сути алгоритма Судного дня, пропускайте многочисленные примеры этого раздела, которые призваны разъяснить различные аспекты этого алгоритма. Все упомянутые в примерах дни недели верны, но не волнуйтесь, если с первого раза не поняли, как они были вычислены – в этом разделе объяснения наиболее сложных вычислений повторяются.

Описание метода

  1. Годы.

    • Года, делящиеся на 4, являются високосными.
    • Но года, делящиеся на 100, не являются високосными.
    • Но года, делящиеся на 400, являются високосными.
    • Года, не являющиеся високосными, в этом разделе именуются «обычными». Григорианский календарь повторяется каждые 400 лет. Помните, что в григорианский календарь вносились поправки, поэтому описываемый алгоритм применим к самой последней версии григорианского календаря. Для получения дополнительной информации о календарной реформе прочитайте статью в Википедии об алгоритме Судного дня: http://en.wikipedia.org/wiki/Doomsday_rule#Julian_calendar .
    • В этом разделе будут использоваться обозначения «н.э.» (наша эра) и «до н.э.» (до нашей эры). Для получения подробной информации обратитесь к статье в Википедии, которая называется «Наша эра»: http://en.wikipedia.org/wiki/Common_Era . Годы нашей эры будут считаться положительными числами, а до нашей эры – отрицательными. Например, 1670 год н.э. – это 1670, а 1540 год до н.э. – это -1539. Заметьте, в григорианском календаре нет нулевого года, поэтому для того, чтобы преобразовать год в отрицательное число, его нужно вычесть из 1 (а не 0). Для получения подробной информации прочитайте статью в Википедии, которая называется «Нумерация астрономических годов»: http://en.wikipedia.org/wiki/Astronomical_year_numbering .

Источник: https://bdsiz.ru/kakoi-den-nedeli-schitaetsya-treniruem-mozgi-vychislenie-dnya/

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