[Dev Story] Множення без таблиці. Історія для тих, хто хоче навчитися множити швидше
Нам пише Олександр Мокрушин.
Ідея програми виникла влітку цього року, коли мій 10-річний син під час літніх канікул вирішив навчатися програмування. В якості мови програмування він вибрав мову Java. Я краєм ока поглядав як він длубається в середовищі розробки Eclipse, переписуючи код з книжки, і кожен раз дрімаючий в мені проджект-менеджер голосом кота Матроскіна бурчав: «Ой, чой-то ми даремно його годуємо не використовуємо цього джуніор-программера, нехай користь приносить». Треба було терміново придумати завдання з програмування, нескладну, але разом з тим корисну.
Покопавшись в списку відкладених до кращих часів завдань, я все-таки зміг знайти відповідне завдання - написати код для «чарівного» множення чисел від 2 до 12. У свій час, навчаючись в радянській середній школі, я цікавився різними математичними фокусами, хитрими прийомами і т.п. Пам'ятаю, мене просто вразила історія нашого співвітчизника Якова Трахтенберга, який, будучи в'язнем нацистського табору, щоб не зійти з розуму від оточував його жаху, придумав свою систему швидких обчислень у розумі. Згодом цю (або подібну систему використовували люди-обчислювачі, які вражали уяву оточуючих, швидко перемножая в розумі величезні числа. Крім основних алгоритмів обчислення ця система містила також і спеціальні методи множення малих чисел від 2 до 12 на довільні цілі числа. З тих давніх пір я запам'ятав тільки правило «чарівного» множення 2-значного числа 11. Наприклад, щоб помножити на 11 число 43, потрібно «розсунути» цифри 4 і 3, написавши між ними їх суму 7, тобто результат буде 473.
Ось ми і вирішили зробити корисний додаток, яке б навчало подібних правил множення без заучування таблиці. Може, в процесі розробки і самі так множити навчимося!
Технологія розробкиЯк я вже написав, дитина хотів вчитися писати саме Java-код. Де він такого нахапався - невідомо, що з цим робити - спочатку було незрозуміло. Поміркувавши, я вирішив зробити так:
Даний підхід має свої плюси і мінуси.
ПЛЮСИ:
- одне і те ж додаток не потрібно переробляти для кожної мобільної платформи окремо, воно робиться один раз для всіх платформ;
- HTML дуже хороший для створення «гумових» екранних форм, пристойно виглядають на пристроях з різними розмірами екранів (особливо актуально для Android, в меншій мірі - для iOS);
- у мене вже був досвід створення подібних додатків.
МІНУСИ:
- WebView-елемент не є повноцінним браузером і може не підтримувати ті чи інші особливості HTML. На практиці виявилося, що самий примхливий - UIWebViewв iOS, а самий безпроблемний - BlackBerry 10 (там взагалі є штатна підтримка таких HTML-додатків);
- якщо захопитися стилями і створити «важкий» HTML (з градієнтами, напівпрозорість у багатьох елементів тощо), додаток починає відчутно гальмувати.
У загальному і цілому, дана технологія - цілком придатна для невеликих і нескладних додатків. І головна мета досягнута - дитина пише простий, але корисний код на Java.
«Каша з сокири»Спочатку все виглядало райдужно - процес зрозумілий, дорослі і діти плескають у долоні роблять свою частину роботи, всі щасливі. У реальності все виявилося не так, як було заплановано.
По-перше, виявилося, що «простий» код, який повинен був писати 10-річна дитина, не такий вже і простий. Якщо з самим кодом, що реалізує множення шляхом перетворення рядків, син справлявся, то код, який генерує попутні коментарі про застосування того чи іншого правила, було йому не під силу. А без цих коментарів пропадав весь сенс роботи - помножити в коді можна було і просто так. По-друге, влітку діти повинні не працювати, а відпочивати! Мій, наприклад, закрив книжку, вимкнув комп'ютер і поїхав в «Артек». По-третє, сама задача стала розростатися - для тренувань і тестування знадобилася форма, зовні схожа на калькулятор, яка дозволяла б вводити цифри твори справа-наліво, відзначати перенесення десятків у наступний розряд і т.п. по-четверте, я вирішив зробити відразу підтримку крім російської ще англійської та німецької мов...
Але головне в програмуванні - почати! Далі робота затягує, як у тій казці - сокира в котлі, все інше потихеньку до нього додається!
Назва додаткаКоли програма вже було готове, я задумався над назвою. З одного боку, я хотів, щоб заголовок містив прізвище Якова Трахтенберга, придумав всі ці правила. З іншого боку, зараз це прізвище викликає асоціації з чим завгодно, але тільки не з математикою. Російськомовні користувачі мобільних пристроїв, швидше за все, згадають шоумена Романа Трахтенберга. Англомовні - американську актрису Мішель Трахтенберг. Назвати за прізвищем буде явно недостатньо - неясно, що мова саме про професора математики, а не про інших Трахтенбергах.
Подумавши, я вирішив зробити кілька назв:
1. На пристрої - додаток називається «Трахтенберг» (Trachtenberg), це найкоротший варіант назви.
2. На головному екрані всередині програми - «Множення без таблиці» (Multiply Without Times Table), це відображає зміст програми.
3. В AppStore - використовується повна назва, що дозволяє, крім іншого, використовувати додаткові ключові слова - «Яків Трахтенберг - Система швидкого рахунку - Навчися виконувати множення чисел від 2 до 12 без знання таблиці множення» (по-англійськи коротше - Trachtenberg System Speed - Basic Multiplication Without Times Table).
У процесі перекладу назви, я дізнався, що по-німецьки таблиця множення називається Einmaleins, що перекладається як «одного разу один». А ще кажуть, що у німців немає почуття гумору!
Для кого це додатокДодаток може бути корисно багатьом:
- Дітям - багато дітей відчувають труднощі при механічному запам'ятовуванні якихось фактів, цифр і т.п. Проблеми можуть бути викликані, у тому числі, і розладом розвитку «синдром розсіяного уваги», яким у тій чи іншій формі страждають 3-5% відсотків людей (статистика по США, дані з Вікіпедії). Система Трахтенберга пропонує замість заучування чисел запам'ятати і застосовувати набір правил виду: «Додати до поточної цифрі її сусіда праворуч».
- Літнім людям, з роками у людини зростає необхідність проводити «тренування для мозку». Рішення головоломок, тренування пам'яті, усний рахунок допомагають мозку залишатися «у формі», уповільнюють процес старіння. З цієї точки зору, система Трахтенберга - один з можливих «тренажерів» для звивин.
- Дорослим людям - серед нас чимало тих, хто зберіг інтерес або навіть любов до різних математичних фокусів і розваг. «Множення без таблиці» - це різновид таких розваг. Даним методом можна перевірити - скільки буде 7×8 або 6×9 у випадках, коли сумніваєшся чи призабув. Я, працюючи над додатком, особисто для себе запам'ятав правила множення на 11 і 12. По-перше, ці правила виявилися дуже простими, а по-друге, таблиця на 11 і 12 не входила в шкільний курс, це було для мене новим знанням.
Спочатку я планував зробити додаток безкоштовним, додавши кілька in-аррпокупок, для того, щоб можна було зробити donate. Але син наполіг на тому, щоб додаток був платним (а то нам взагалі нічого не заплатять). У підсумку, встановили ціну в $0.99. Додаток розміщене в магазинах для 3-х мобільних платформ:
1. iOS - AppleAppStore (універсальне додаток).
2. Android Google Play, Amazon, Samsung Apps, Barnes & Noble.
3. BlackBerry 10 - BlackBerry World (универсальноеприложение).
Продаж поки що невеликі. Приємно, що більша частина покупок робиться нашими співвітчизниками. Нижче - фрагмент звіту з сервісу АррАппіес відсотками продажів по країнам в App Store.
Замість висновкуВ даному додатку розглянуто лише спеціальні методи для множення маленьких чисел (до 12). Ознайомитися з повною системою можна у книзі Е. Катлер, Р. Мак-Шейн «Система швидкого рахунку за Трахтенбергу», виданої у видавництві «Просвіта», Москва, 1967. Настійно рекомендую цю книгу всім, хто зацікавився системою швидкого рахунку. Книга містить ще дуже багато матеріалу, що не потрапив в додаток. Відповідно, в якості програми розвитку в майбутньому можна розглядати реалізацію того, що ще є в цій книзі - основного методу швидкого множення (вже з використанням таблиці), швидкого ділення, зведення в квадрат і взяття квадратного кореня. В ідеалі, програма має стати коротким довідником і тренажером для відпрацювання правил, викладених у книзі. Сподіваюся, додаток буде затребуване. Спасибі!
iPhone: 33 руб. [Завантажити з App Store] + сайт додатки
Дана історія опублікована в рамках рубрики Developer Story, де розробники діляться секретами своєї внутрішньої кухні.![[Dev Story] Умножение без таблицы. История для тех, кто хочет научиться умножать быстрее](/images/articles/20131021/8839e962b3580a49369e3437da458c0d.jpg)
![[Dev Story] Умножение без таблицы. История для тех, кто хочет научиться умножать быстрее](/images/articles/20131021/b0f1e6dd172c52921c533718767d3e79.jpg)
![[Dev Story] Умножение без таблицы. История для тех, кто хочет научиться умножать быстрее](/images/articles/20131021/269cc6d6f9cd3a207f21c417b865d1f3.jpg)
![[Dev Story] Умножение без таблицы. История для тех, кто хочет научиться умножать быстрее](/images/articles/20131021/b613c15eeb863d94f5bbd42cd5120d7d.jpg)
![[Dev Story] Умножение без таблицы. История для тех, кто хочет научиться умножать быстрее](/images/articles/20131021/24365af8bb018f8429241f69c1770791.jpg)
![[Dev Story] Умножение без таблицы. История для тех, кто хочет научиться умножать быстрее](/images/articles/20131021/4469c3e592578bdd89fc37c6f6720888.jpg)