Как стать автором
Обновить

Комментарии 20

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

Не могли бы вы пояснить? То есть, этими приложениями не получится натренировать навык быстрого счета в уме?
Натренировать можно. Но востребован ли навык? Например, известная всем хаброюзерам «В уме» формирует навыки довольно сложных расчетов, которые в повседневной реальности редко используются.
Я просто не пользовался таким софтом, но периодически подумываю, т.к. хотелось бы быстрее выполнять арифметические действия над целыми и дробными числами.
А какие именно навыки там формируются? Умножение и деление трехзначных чисел, быстрое возведение в квадрат — это, допустим, весьма полезные навыки. А также операции с числами с плавающей запятой.
Думаю Вам стоит попробовать этот тренажер. Достаточно пары часов на знакомство. Подробный анализ задач не делал, но многие задачи мне показались через чур частными. В арифметике полно частных случаев и, как отмечалось выше, чем больше эвристик помнишь, тем быстрее вычисляешь. Например, умножение 11*52 = 5 * 100 + (5+2)*10 + 2 = 572. И таких правил под сотню. Многие из них связаны с теорией чисел.
11*52 пишем: 5.toString() + (5+2).toString() + 2.toString() = 572 :)
""+5+(5+2)+2, — это должно работать в C# & Java
Я чтоб донести суть метода ) Достаточно раздвинуть и сложить )
О, это очень любопытная тема на самом деле!
Я даже собирался сам написать статью, но, к сожалению, руки так и не дошли.

Но у меня есть дополнение!
Можно не запоминать второй ряд чисел, который относится к году, его достаточно легко рассчитать:

Возьмем, например, 1988г. (первый в ряду).

Разобьем его на 2 части: 1900 и номер года — 88.
Для 19хх всегда берем +1.
А из 88 можно отбросить числа кратные 28, ближайшее — 84, тогда останется 4.

Далее из того что осталось отбрасываем числа кратные 7 (просто для удобства) 4%7 = 4.
И еще шаг: опять же, то что осталось, делим на 4 и округляем в меньшую сторону, 4/4=1.

т.е. если собрать все в кучу. пусть y — номер года, 88 в примере

n = ((y%28)%7) + int((y%28)/4)

в итоге получаем: 1 (за счет 1900) + 4 + 1 = 6.

еще пример: крайнюю циферку — 2015г.
для 20хх — вместо +1 будет +0, т.е. просто отбрасываем

остается:
15%7 = 1
int(15/4) = 3

0 + 1 + 3 = 4.

В общем, если есть интерес к этой теме я могу написать свой вариант расчета.
Рассматривал похожий вариант. Не понравилась операция %28. Существенно ограничивает кол-во потенциальных пользователей метода. Поэтому в моей реализации используется сложение с одноразрядными числами, операции %4 и %7 и дополнение до 7(или 8). Для XX века еще удобно пользоваться дополнением до 50. Но после небольшой тренировки значения y() запоминаются и дополнением уже можно не пользоваться.
операция %28 же в целом не обязательна.
запомнить достаточно просто: 28 — 56 — 84. если год близок к одному из чисел можно упростить расчет, отбросив лишнее.
Согласен, но для 21 века придется еще несколько чисел запомнить. Проблема в том, что в уме найти разность двузначных чисел с получением двузначного результата ментально сложнее, чем получить однозначное число. А это усложняет метод.
Таки проще в уме посчитать по формуле Зеллера.

А ещё лучше, вот так:

month, day, year — номер месяца, день, год

a = (14 – month) / 12
y = year – a
m = month + 12 * a – 2
day_of_week = (7000 + (day + y + y / 4 – y / 100 + y / 400 + (31 * m) / 12)) MOD 7

(/ — целочисленное деление, MOD — нахождение остатка)

В итоге получится число от 0 до 6.
0 — воскресенье, 1 — понедельник, ..., 6 — суббота

Формула Зеллера скорее для компьютера, а не для вычисления в уме. Для вычисления дня недели в 2012/15гг мне сейчас требуется около 3 секунд. Методом Зеллера понадобится десятка два секунд.
Да, насчёт времени, Вы правы. Мне просто больше по душе формулу запомнить, чем набор чисел.
напомнило:

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

— Слушай, Александр Иванович, — спрашивал сосед, — сколько будет 836 на 423?

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

(С) Ильф и Петров. Золотой телёнок.
Увы, не все так просто. Харизма у тупого может зашкаливать. А многие гении по житейски психи. Например, Джон Форбс Нэш-младший.
Примерно так и считал с детства, только вместо «судного дня» запоминалось преимущественно 1 января в разные годы периода 1980-2009, а также даты других запомнившихся событий, типа 11.09.2001.
А проблема ли это?

Вот когда у одного человека ДР будет постоянно приходиться на понедельник, а у другого на пятницу, вот это будет проблема.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории