Кіріспе

Джон Нейпердің "Локациялық арифметика" (лат. arithmeticae localis) атты еңбегінде сипатталған арифметикалық есептеулерге көмектесетін үш құралдың бірі – Джон Нейпердің өзінің "Рабдология" (1617 ж.) еңбегінде есептеу тәсілі ретінде зерттеген қосымша (орындық емес) екілік сандар жүйесі, ол символдық түрде де, шахмат тақтасы тәрізді торда да қолданылған. Нейпердің сандарды көрсету үшін тақтадағы санаулы заттардың орналасуын пайдаланудан туындаған терминологиясы қазіргі терминологияда орындық емес екендігіне байланысты жаңылыстыруы мүмкін. Нейпердің заманында көптеген есептеулер тақтада сызықтар немесе жетондармен жасалған. Сондықтан, қазіргі оқырман қалай түсінуі мүмкін болса да, оның мақсаты тақтадағы санаулы заттарды көбейту, бөлу және квадрат түбір табу үшін пайдалану емес, қалам мен қағазбен символдық есептеудің жолын табу болды. Дегенмен, тақтада бейнеленгенде, бұл жаңа тәсілге ойша іздеу-талдау және күрделі жаттау қажет болмады (ондық санау жүйесінен айырмашылығы). Ол өзінің жаңалықтарына осыншалықты қуанғандықтан, кіріспе сөзінде былай деді:

Екі еселеу, екі еселеу, тақ және жұп

Нейпер арифметиканың қалған бөлігіне, яғни көбейту, бөлу және квадрат түбірге, сол замандағыдай санау тақтасында (абакус) көшті. Бірақ, микропроцессорлы компьютерлердің дамуымен, екі еселеу және жартылай бөлуге негіделген көптеген қолданылатын алгоритмдер жасалды немесе қайта жаңартылды. Екі еселеу – санды өзіне-өзі қосу арқылы жасалады, яғни оның әр цифры екі еселенеді. Бұл кеңейтілген форманы береді, қажет болған жағдайда оны қысқарту қажет. Бұл операцияны бір қадамда орындауға болады, сандағы әр цифрды келесі үлкен цифрға ауыстыру арқылы. Мысалы, a-ның екі есесі b, b-нің екі есесі c, ab-нің екі есесі bc, acfg-нің екі есесі bdgh, және т.б. Сол сияқты, екінің дәрежесіне көбейту – бұл цифрларды аудару ғана. Мысалы, c = 4 еселеу үшін a → c, b → d, c → e цифрларын түрлендіру керек. Ал жартылай бөлу – екі еселеудің кері операциясы: әр цифрды келесі кіші цифрға ауыстыру. Мысалы, bdgh-ның жартысы acfg. Осыдан бірден көрініп тұр, бұл операция тек жартылай бөлінетін санда 'a' болмағанда ғана мүмкін (немесе, егер сан кеңейтілген болса, 'a'-ның саны тақ болмаса). Басқаша айтқанда, қысқартылған сан 'a' цифрын қамтыса, тақ болады, ал қамтымаса – жұп. Осы негізгі операциялардың (екі еселеу және жартылай бөлу) көмегімен, біз бисекция әдісі және дихотомиялық іздеу сияқты, барлық бинарлық алгоритмдерді бейімдей аламыз.

Бөліну, қалдық

Бөлінуді тізбектеп шегеру арқылы жүзеге асыруға болады: бөлінді – бұл дивидендтен бөлгішті қанша рет шегеруге болады соның саны, ал қалдық – барлық мүмкін шегерулерден кейін қалған бөлік. Бұл процесс өте ұзаққа созылуы мүмкін, бірақ бөлгіштің орнына оның еселіктерін шегерсек тиімдірек болады, ал есептеулерді 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) санының квадрат түбірін есептеудің тағы бір мысалын келтіреді.