An Analysis on Extracting Square and Cube Roots by Aryabhata's Methods
Total Page:16
File Type:pdf, Size:1020Kb
ADBU-Journal of Engineering Technology An Analysis on Extracting Square and Cube Roots by Aryabhata’s Methods. Yumnam Kirani Singh, C-DAC, IIPC Building, NIT Campus, Silchar, Assam. Email:yumnam.singh[@]cdac.in Abstract— Finding accurate root of a number is still considered as challenging in computer science community. The only popularly known method to compute root is the long division method of finding square root. Aryabhata contributed two methods similar to long division method to compute square root and cube root. In recent years, his methods have also been studied, explained and tried to implement as computer algorithms. The explained methods and proposed algorithms fail to give correct results. Some analyses have been made on these methods in order to ascertain why the algorithms fail. Improved algorithms have been provided to give correct result while computing square root or cube root using Aryabhata’s methods. Keywords—cube root, square root, Bino’s Model of multiplication, Large number manipulation, Long division method, Aryabhata’s methods. (Article history: Received 12 November 2016 and accepted 30 December 2016) In this paper, the algorithms for extraction of square root and I. INTRODUCTION cube root using Aryabhata’s methods are analyzed and Aryabhatta is one of the most revered ancient Indian improved so that it gives for correct results while computing mathematicians who made significant contributions in various the roots. The paper is divided into four sections. Section II fields of mathematics and astronomy [1, 2]. His contribution discusses algorithm for extraction of square root and section in mathematics has also been studied for possible applications III discusses the algorithm to compute cube root. A short in cryptography [3]. He also contributed methods of finding conclusion is given in section IV. square root and cube root of a number in his book Ganitpada. The methods are translated into English and explained with II. SQUARE ROOT EXTRACTION ALGORITHM examples [1,2]. The methods are similar in approach to the In this section, the algorithm or method of extracting square long division method of extracting square root but not exactly root by using Aryabhata’s method as explained in [1,2] fails to the same. It seems to be simpler as compared to long division work for some numbers whose square root has 1 as the first method especially the way how the next digit of the root is digit. The square root algorithm given in [1] is reproduced computed from the knowledge of previously computed digits here for discussion. of the root. However, the ways methods have been explained or algorithms have been designed have limitations in the sense Algorithm: that the method gives incorrect results. The explained methods Represent the given number as a series of indexed digits, i.e., fail to give the correct values of the square root or cube root of 푑 푑 ⋯ ⋯ 푑 푑 푑 , where 푑 is the digit in unit’s place, 푑 is some of the numbers such as square root of 841 or cube root 푛 푛−1 2 1 0 0 1 the digit in ten’s place, 푑2is the digit in hundred’s place and so of 17576. The reason might be missing of some points in the on. Let R be the final root and n be the index of the leftmost translation of Aryabhata’s methods. In [1], the author tried to digit in the number. explain the methods in binomial expansion of power 2 and 3 푖 2 3 1. Pick 푑 such that = integer, i.e., (푎 + 푏) and (푎 + 푏) in the same way some 푖 2 푖+푘 푖 푖−푘 mathematicians try to explain long division method of Where ≠ 푖푛푡푒푔푒푟 and > , 푘 = 1,2,3, ⋯ 2 2 2 computing square roots in terms of polynomial expansion of 푛−1 2. 푝 = power of 2. But a multi-digit number is very different from a 2 polynomial; a binomial and a 2-digit number are different 3. If 푑푖+1 exists 푎 = 10 × 푑푖+1 + 푑푖 else 푎 = 푑푖 entities. Elements in a polynomial do not have place value 4. Choose A such that 퐴2 ≤ 푎 and 푎 − 퐴2is whereas digits in numbers have place values. For example, minimum (1 + 6)2 and (6 + 1)2 will give 49, where as (16)2 gives 256 5. 푆 = 푎 − 퐴2 and (61)2 gives 3721. More correct ways of explaining long 6. 푅 = 퐴 division of extracting square root is given in [5] and the 7. 푦 = 10 × 푆 + 푑푖−1 extension of long division method for computing cube root is 8. 푆 = 푦 푚표푑 (2 × 푅) 푦 given in [4]. 9. 퐵 = 2×푅 Singh, AJET, ISSN:2348-7305, Volume:5, Issue:2, December 2016, 00521204(04PP) ADBU-Journal of Engineering Technology 10. 푅 = 10 × 푅 + 퐵 R=1 11. 푐 = 10 × 푆 + 푑푖−2 Step-7: Combining the first digit of the next segment with the 12. 푆 = 푐 − 퐵2 difference in step-5. 13. 푖 = 푖 − 2 푦 = 10 × 푆 + 푑푖−1 = 10 + 5 = 15 14. 푝 = 푝 − 1 Step-8: Finding the remainder when the number in step-7 is 15. If 푝 ≠ 0 go to 7, else quit. divided by twice the partial root obtained so far. 푆 = 푦 푚표푑 2 × 푅 = 15 푚표푑 2 = 1 Step-1 is to segment the given number into segments of two Step-9: Computing next digit of the square root. digits starting from the right. Step-2 is to determine how many 푦 15 퐵 = = = 7 digits would be computed after the first square root of the first 2 × 푅 2 segment is computed. Step-3 is to select the leftmost segment, Step-10: Updating the result of square root which may consist of a single digit or 2-digits.Step-4 is to 푅 = 10 × 푅 + 퐵 = 10 × 1 + 7 = 17 compute the first digit of the square root, i.e., the square root Step-11: combining the remainder in step-8 with second digit of the first leftmost segment. Step -5 is to find the difference of the second segment. between the leftmost segment and the square of the first digit 푐 = 10 × 푆 + 푑푖−2 = 10 × 1 + 6 = 16 of the root. Step-6 is to store the first digit of the root in the Step-12: Finding the difference between the number in step- result. Step 7 to 14 is to compute the next digits of the square 11 and square of the digit of the square root computed last. roots from next segments of the numbers under control of 푆 = 푐 − 퐵2 = 16 − 49 = −33 Step-15. Step-13: Updating i index to process next two digits of the Step-7 combines the difference from step-5 and first digit of next segment if any. the next segment. Step-8 finds the remainder when the number 푖 = 푖 − 2 = 0 in step-7 is divided by twice the result obtained so far. Step-9 Step-14: Updating the number of digits of the square root still computes the next digit of the square root, which is the left for computation quotient when the number in step-7 is divided by twice the 푝 = 푝 − 1 = 0 result of the root obtained so far. Step-10 stores the quotient Step-15: Check whether to proceed for computation of next obtained in 9 as the next digit of the root. Step-11 combines digit of the square root or not. Since p=0, the algorithm exits remainder obtained in step-8 with the second digit of the next here. segment being processed. Step-12 finds the difference So, at the end of execution of the algorithm, 17 is given as the between the number obtained in step-11 and the square of the square root of 256. Similarly, the algorithm gives square roots digit of the root computed in step-9. Step-13, index for of numbers 225, 289, 324, 361 as 16, 19, 111, 113 instead of choosing the segments of two digits from the number is 15, 17, 18 and 19. The reason why it fails to work is that when updated by decrementing its value by 2. Similarly, the number the second digit is greater than 4, some carry was added in the of digits of roots required to be computed is updated by first segment during the multiplication process. This was not decrementing its value by 1. Step-5 checks whether all the considered when determining the second digit of the root in required number of digits for the square root are computed. If step-9. In other words, the relation given in step-9 to compute not, computation next digit of the root is repeated. the next digit of the root does not guarantee that it is will Let us analyze the reason why the above algorithm fails to always be a digit and the computed digit will be the correct work when the first digit of the root is 1 and the second digit is digit. So, in order to make the algorithm work for all numbers, greater than 4. we need to check whether the computed value from the step-9 could be a correct digit for the square root. This can be done Example: Square root of 256. by checking whether the value in step-12 is negative or not. If By the above algorithm, the square root is given as 17. Let us the value is negative, the value of the root computed in step-9 analyze, why this happens. should be continuously reduced by 1, until the value in step-12 Step-1: The given number is divided into two segments as 2, becomes greater than or equal to zero.