Что вижу - о том пою (aragont) wrote,
Что вижу - о том пою
aragont

На счётах (и в офигительных штанах)

В современный компьютерный век все знают, что внутри компьютера есть процессор и память. Многие правда путают оперативную память и дисковую, но это мелочи. Программисты знают, что кроме дисков и ОЗУ бывает ещё один вид памяти - регистры. Эта память очень быстрая, очень маленькая и очень краткосрочная. На днях я немного поупражнялся в вычислениях на счётах и неожиданно осознал, что счеты, человек и листок бумаги вполне укладываются в схему процессор, регистр, память, причем человеческий мозг работает как регистр.

Как выполняется сложение (вычитание) на счетах? Вы набираете на счетах одно число (вводите его в процессор) и больше о нем не думаете. Второе число вы держите в голове и по одной цифре прибавляете к первому. Хорошо если второе число короткое (18) и существенно хуже если оно длинное (836745690). Помните, что я говорил о регистрах? Они быстрые, но очень малоёмкие. Длинное число лучше записать на бумагу (оперативную память), а потом цифру за цифрой переносить в мозг (регистр) и суммировать число на счетах поциферно.

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

Еще одна подсказка. При переполнении разряда, надо не добавлять цифру, а потом переносить разряд, а наоборот - вначале добавлять единичку в старший разряд, а потом отбрасывать из младшего дополнение цифры до 10. Например, 5+7 = 1 и 5-(10-7) -> 5-3 -> 2 =12

Умножение на счетах построено по той же модели, что и сложение. Первый сомножитель набирается на счетах, и, если второй сомножитель короткий, то вычисления проводятся через запоминание его в голове-регистре. Большая часть приемов умножения на счетах, которые вы найдете в интернете, скопирована из книги Перельмана "Занимательная арифметика". Вот некоторые из них:

Умножение на 2 - складываем число само с собой.
Умножение на 4 - складываем число само с собой, полученный результат складываем с собой ещё раз.
Умножение на 10 - перекидываем каждую цифру на проволоку выше.
Умножение на 9 - умножаем на 10, а потом вычитаем исходное число из результата.
Умножение на 98 - перекидываем костяшки на две проволоки и дважды вычитаем число.

Деление на 2 - начиная с нижней проволоки у четных цифр отбрасываем половину косточек, а у нечетных - половину плюс одну и, дополнительно, добавляем 5 косточек на проволоке ниже.
Деление на 9 - тоже, что и умножение на 0.111... Делим на 10, а потом прибавляем число к себе со сдвигом на проволочку вниз до нужной точности.

В той же книге есть старинный способ умножения двух чисел путём умножения/деления сомножителей на два.
На листе бумаге рисуем табличку в две колонки. В первую строку записываем сомножители (для ускорения подсчетов меньший лучше писать слева).
Порядок умножения следующий: если первый сомножитель четный, то делим его пополам, и умножаем второй сомножитель на два. Результаты записываем в следующую строчку таблицы, а текущую строку вычеркиваем.
Если первый сомножитель нечетный, вычитаем из него 1, а затем как и в первом случае делим пополам, умножаем на два, но строку не вычеркиваем.
Когда первый сомножитель обнулится, то складываем все невычеркнутые числа во второй колонке и, как ни странно, получаем результат.

12 3
 6 6
 3 12 
 1 24 
итого  36


можно выносить числа для суммирования в дополнительный столбец:
12  3  0
 6  6  0
 3 12 12
 1 24 24


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

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

Берём конторские счеты в количестве трёх штук, ставим их в ряд, набираем на двух левых сомножители и вперед:
если на левых счетах нечетное число - добавляем число со средних счет на правые;
делим на два на левых счетах;
умножаем на два на средних.

Когда на левых счетах число обнулится, на правых появится произведение.

Примечания:

Математически старинное умножение сводится к формуле x*y=(2*целое(x/2)+остаток(x/2))*y=целое(x/2)*(y*2)+остаток(x/2)*y Понятно, что остаток от x/2 это 1 для нечетных чисел (прибавляем y) и 0 для четных (не прибавляем).

Оперативная память эта та, которой два или четыре гигабайта Если её мало, то компьютер "тормозит". Дисковая память - та, которой сначала было пятьсот гигабайт, а после скачивания ста фильмов осталось совсем чуть-чуть. Без дисковой памяти теоретически можно прожить, а вот без оперативной памяти компьютеров не бывает. Стирание файлов в дисковой памяти не помогает от тормозов, связанных с оперативной.
Tags: математика, программы
Subscribe

  • Свежие картинки

    Похоже, что недавно в Екатеринбурге прошёл очередной фестиваль полуподпольных уличных художников. По крайней мере на отрезке Малышева от Горького до…

  • Наутилус

    Стрижи крутили сальто в небесной вышине, и лодка "Наутилус" плыла по синеве (Александр Новиков) Никогда не обращал внимания на то, что фонтан перед…

  • Политический плагиат

    Не я один оценил работу пиарщиков нашего губернатора. На рекламных щитах уже появился плагиат. Как обычно, подражатели не производят такого…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments