Кіріспе
Джон Нейпердің "Локациялық арифметика" (лат. arithmeticae localis) атты еңбегінде сипатталған арифметикалық есептеулерге көмектесетін үш құралдың бірі – Джон Нейпердің өзінің "Рабдология" (1617 ж.) еңбегінде есептеу тәсілі ретінде зерттеген қосымша (орындық емес) екілік сандар жүйесі, ол символдық түрде де, шахмат тақтасы тәрізді торда да қолданылған. Нейпердің сандарды көрсету үшін тақтадағы санаулы заттардың орналасуын пайдаланудан туындаған терминологиясы қазіргі терминологияда орындық емес екендігіне байланысты жаңылыстыруы мүмкін. Нейпердің заманында көптеген есептеулер тақтада сызықтар немесе жетондармен жасалған. Сондықтан, қазіргі оқырман қалай түсінуі мүмкін болса да, оның мақсаты тақтадағы санаулы заттарды көбейту, бөлу және квадрат түбір табу үшін пайдалану емес, қалам мен қағазбен символдық есептеудің жолын табу болды. Дегенмен, тақтада бейнеленгенде, бұл жаңа тәсілге ойша іздеу-талдау және күрделі жаттау қажет болмады (ондық санау жүйесінен айырмашылығы). Ол өзінің жаңалықтарына осыншалықты қуанғандықтан, кіріспе сөзінде былай деді:
Location arithmetic (Latin arithmeticae localis) is the additive (non positional) binary numeral systems, which John Napier explored as a computation technique in his treatise Rabdology (1617), both symbolically and on a chessboard like grid. Napier's terminology, derived from using the positions of counters on the board to represent numbers, is potentially misleading because the numbering system is, in facts, non positional in current vocabulary. During Napier's time, most of the computations were made on boards with tally marks or jetons. So, unlike how it may be seen by the modern reader, his goal was not to use moves of counters on a board to multiply, divide and find square roots, but rather to find a way to compute symbolically with pen and paper. However, when reproduced on the board, this new technique did not require mental trial and error computations nor complex carry memorization (unlike base 10 computations). He was so pleased by his discovery that he said in his preface:
Екі еселеу, екі еселеу, тақ және жұп
Нейпер арифметиканың қалған бөлігіне, яғни көбейту, бөлу және квадрат түбірге, сол замандағыдай санау тақтасында (абакус) көшті. Бірақ, микропроцессорлы компьютерлердің дамуымен, екі еселеу және жартылай бөлуге негіделген көптеген қолданылатын алгоритмдер жасалды немесе қайта жаңартылды. Екі еселеу – санды өзіне-өзі қосу арқылы жасалады, яғни оның әр цифры екі еселенеді. Бұл кеңейтілген форманы береді, қажет болған жағдайда оны қысқарту қажет. Бұл операцияны бір қадамда орындауға болады, сандағы әр цифрды келесі үлкен цифрға ауыстыру арқылы. Мысалы, a-ның екі есесі b, b-нің екі есесі c, ab-нің екі есесі bc, acfg-нің екі есесі bdgh, және т.б. Сол сияқты, екінің дәрежесіне көбейту – бұл цифрларды аудару ғана. Мысалы, c = 4 еселеу үшін a → c, b → d, c → e цифрларын түрлендіру керек. Ал жартылай бөлу – екі еселеудің кері операциясы: әр цифрды келесі кіші цифрға ауыстыру. Мысалы, bdgh-ның жартысы acfg. Осыдан бірден көрініп тұр, бұл операция тек жартылай бөлінетін санда 'a' болмағанда ғана мүмкін (немесе, егер сан кеңейтілген болса, 'a'-ның саны тақ болмаса). Басқаша айтқанда, қысқартылған сан 'a' цифрын қамтыса, тақ болады, ал қамтымаса – жұп. Осы негізгі операциялардың (екі еселеу және жартылай бөлу) көмегімен, біз бисекция әдісі және дихотомиялық іздеу сияқты, барлық бинарлық алгоритмдерді бейімдей аламыз.
Halving is the reverse of doubling: change each digit to the next smaller digit. For example, the half of bdgh is acfg. One sees immediately that it is only feasible when the numeral to be halved does not contain an a (or, if the numeral is extended, an odd number of as). In other words, an abbreviated numeral is odd if it contains an a and even if it does not. With these basic operations (doubling and halving), we can adapt all the binary algorithms starting by, but not limited to, the Bisection method and Dichotomic search.
Бөліну, қалдық
Бөлінуді тізбектеп шегеру арқылы жүзеге асыруға болады: бөлінді – бұл дивидендтен бөлгішті қанша рет шегеруге болады соның саны, ал қалдық – барлық мүмкін шегерулерден кейін қалған бөлік. Бұл процесс өте ұзаққа созылуы мүмкін, бірақ бөлгіштің орнына оның еселіктерін шегерсек тиімдірек болады, ал есептеулерді 2-нің дәрежесіне еселіктермен шектейтін болсақ, оңайырақ болады. Шындығында, ұзақ бөлу әдісі осы қағидаға негізделген.
Нейпердің әдісі
Бұл процесс шаршы пішіндер жасау үшін абакусқа (тақтаға) санаушыларды қосуды қажет етеді. 149-беттің жоғарғы жағында осы процесті түсіндіретін схемалар көрсетілген. Бір санаушыны тақтаға қоюдан бастаңыз (ол нүктелі шаршылардың біріне орналасады). Оған үш санаушыны тікелей жанына қоссаңыз (немесе араларында бос қатарлар мен бағандар болса да болады), тақтада тағы бір шаршы пішін пайда болады. Сол сияқты, осыған тағы бес санаушыны қоссаңыз (бос қатарлар мен бағандармен немесе болмаса да), одан да үлкен шаршы пайда болады. Енді қарастырылатын санды алыңыз және оның мәніне тең санаушыларды тақтаның бір жиегіне қойыңыз. Осы жиектегі ең үлкен санаушының орнынан бастап, тақтадағы нүктесі бар шаршыға дейін диагональ бойынша (аттың жүрісі сияқты) қозғалыңыз. Сол шаршыға санаушыны қойыңыз. Бұл санаушының мәнін бастапқы саннан шегеріңіз. Содан кейін үш (бес, жеті – келесі қадамдарда) санаушыны қосып, тақтада шаршы жасаңыз және санаушылардың мәнін жиектегі саннан шегеріңіз, осылайша сан шегерілуге тым үлкен болып кеткенше немесе тақтада орын қалмағанша жалғастырыңыз. Нәтижесінде тақтада үлкен шаршы (мүмкін, арасында бос қатарлар мен бағандармен) қалуы керек. Шаршының әр қатарынан бір санаушыны жиекке жылжытыңыз, сонда осы жиектегі санаушылардың орналасуы санның квадрат түбірін көрсетеді. Непьер 1238 санының квадрат түбірін табу мысалын келтіреді. Ең үлкен санаушы 1024 позициясында, сондықтан бірінші санаушы 1024 диагоналі бойынша төмен жылжып, нүкте табылған жерге (32,32 позициясы) қойылады. Бұл мәнді (1024) бастапқы саннан шегергеннен кейін 128, 64, 16, 4 және 2 санаушылары қалады (= 214). Бірінші санаушымен шаршы құру үшін тақтаға үш санаушыны қойсаңыз, олардың мәнін 214-тен шегеруге болады. Бұл 32,2; 2,2; және 2,32 позицияларындағы санаушыларды береді (олардың мәндері 64, 4 және 64, оларды 214-тен шегергенде 82 қалды). Келесі шаршыны бес санаушыдан құруға болады, бірақ олардың мәндерін 82-ден шегеруге мүмкіндік бар. Бұл 32,1; 2,1; 1,1; 1,2; және 1,32 позицияларындағы санаушыларды береді. Осы бес санаушының мәндері 69-қа тең, оларды 82-ден шегергенде 13 қалды. Тақтада орын қалмағандықтан тоқтау керек. Әр қатардан бір санаушыны жиекке (32, 2 және 1 қатарлары) жылжытыңыз, сонда алынған мән (35) – ізделінетін квадрат түбір, немесе кемінде оның бүтін бөлігі (нақты мәні 35.1852). Непьер 2209 (= 47) санының квадрат түбірін есептеудің тағы бір мысалын келтіреді.
added counters from the number in the margin until the number is either too large to be subtracted or there is no space left on the board. You should be left with a large square of counters (perhaps with blank rows and columns between them) on the board. Move one of the counters in each row of the square to the margin and the positions of these marginal counters will yield the square root of the number. Napier provides an example of determining the square root of 1238. The largest counter is in the 1024 position so the first counter is placed on the dot found by moving down the 1024 diagonal (at the 32,32 position). Subtracting this value (1024) from the original number leaves counters at 128,
64, 16, 4 and 2 (= 214). Placing three counters on the board to form a square with the first counter but whose value can still be subtracted from 214, results in counters at positions 32,2; 2,2; and 2,32 (whose values are 64, 4 and 64, which when subtracted
from the remainder of 214 = 82. The next square that can be constructed from five counters, yet the values of those five counters still being capable of being subtracted from 82 results in counters in positions 32,1; 2,1; 1,1; 1.2; and 1,32. The values of these five counters total 69 which when subtracted from 82 leave 13 as a remainder. As there is no more room on the board we have to stop. Move one counter from each row to the margin (rows 32, 2 and 1) and this value (35) is the square root required, or at least the integer part of it (the actual value is 35.1852 ). Napier provides a second example for calculating the square root of 2209 (= 47).