Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Array-based implementation of Calculator of very large integers with the length of the numbers as large as 2,147,483,647 (2^31 - 1), with Postfix and Infix evaluation of Arithmetic Expressions.

License

NotificationsYou must be signed in to change notification settings

rahul1947/LP1-Integer-Arithmetic-with-Arbitrarily-Large-Numbers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# Long Project LP1: Integer Arithmetic with Arbitrarily Large Numbers # Authors: * Rahul Nalawade (rsn170330) * Dhwani Raval (dsr170230) * Varun Parashar (vxp171830) * Arpita Agrawal (aua170030) * Simran Rawlani (sxr174130) * Yash Madane (yxm172130)  # End Date: * Sunday, September 23, 2018__________________________________________________________________________________# Project Description   In this project, develop a program that implements arithmetic with large    integers, of arbitrary size.Code base:    Java library: Lists, stacks, queues, sets, maps, hashing, trees.    Do not use BigInteger, BigNum, or other libraries that implement arbitrary    precision arithmetic.Your task is to implement the class Num that stores and performs arithmetic operations on arbitrarily large integers. You must use the following data structure for representing Num:    Array of long integers, where the digits are in the chosen base. In    particular, do not use strings to represent the numbers. Each entry of the    list stores exactly one long integer.    The base is defined to be 10 in the starter code, but you may modify it.    For base = 10, the number 30128 is represented by the list: {8,2,1,0,3}.   For base = 100, the number 30128 is represented by the list: {28,1,3}. Implement all methods in the starter code. Some of them are -    Num(String s):       Constructor for Num class; takes a string s as parameter, with a number in       decimal, and creates the Num object representing that number in the chosen       base. Note that, the string s is in base 10, even if the chosen base is       not 10. The string s can have arbitrary length.          Num(long x):       Constructor for Num class.   String toString():       convert the Num class object into its equivalent string (in decimal).       There should be no leading zeroes in the string.          Num add(Num a, Num b):       sum of two numbers a+b stored as Num.          Num subtract(Num a, Num b):       a-b   Num product(Num a, Num b):       product of two numbers a*b.   Num power(Num x, long n):       given an Num x, and n, returns the Num corresponding to x^n (x to the power       n). Assume that n is a nonnegative number. Use divide-and-conquer to       implement power using O(log n) calls to product and add.          printList():       Print the base + ":" + elements of the list, separated by spaces.   Num divide(Num a, Num b):       Integer division a/b. Use divide-and-conquer or division algorithm.       Return null if b = 0.   Num mod(Num a, Num b):       remainder you get when a is divided by b (a % b). Assume that a is       non-negative, and b > 0. Return null if b = 0.   Num squareRoot(Num a):       return the square root of a (truncated). Use binary search. Assume that a       is non-negative. Return null if b < 0.__________________________________________________________________________________# Results:  For Base = 10^9+--------------------------------------------------------------------------------+| Test Case                                  | Time (mSec) | Memory (used/avail) ||--------------------------------------------------------------------------------|| $ java -Xss512m -Xms2g rsn170330.TestLP1 0 |           4 |     10 MB / 1963 MB ||--------------------------------------------------------------------------------|| $ java -Xss512m -Xms2g rsn170330.TestLP1 1 |         279 |    321 MB / 1963 MB ||--------------------------------------------------------------------------------|| $ java -Xss512m -Xms2g rsn170330.TestLP1 2 |           5 |     10 MB / 1963 MB ||--------------------------------------------------------------------------------|| $ java -Xss512m -Xms2g rsn170330.TestLP1 3 |           2 |     10 MB / 1963 MB ||--------------------------------------------------------------------------------|| $ java -Xss512m -Xms2g rsn170330.TestLP1 4 |        2078 |    505 MB / 2047 MB ||--------------------------------------------------------------------------------|| $ java -Xss512m -Xms2g rsn170330.TestLP1 5 |        9511 |     39 MB / 2047 MB ||--------------------------------------------------------------------------------|| $ java -Xss512m -Xms2g rsn170330.TestLP1 6 |       12357 |     33 MB / 2047 MB |+--------------------------------------------------------------------------------++--------------------------------------------------------------------------------+|  Test  |            Base = 10^6            |            Base = 10^4            ||  Case  |-----------------------------------------------------------------------||        | Time (mSec) | Memory (used/avail) | Time (mSec) | Memory (used/avail) ||--------------------------------------------------------------------------------||   0    |           3 |     10 MB / 1963 MB |           3 |     10 MB / 1963 MB ||--------------------------------------------------------------------------------||   1    |         463 |     41 MB / 1963 MB |         649 |    407 MB / 1963 MB ||--------------------------------------------------------------------------------||   2    |           5 |     20 MB / 1963 MB |           6 |     10 MB / 1963 MB ||--------------------------------------------------------------------------------||   3    |           2 |     10 MB / 1963 MB |           2 |     10 MB / 1963 MB ||--------------------------------------------------------------------------------||   4    |        3108 |    231 MB / 2047 MB |        4625 |    177 MB / 2047 MB ||--------------------------------------------------------------------------------||   5    |       18354 |    589 MB / 2047 MB |       33283 |    424 MB / 2047 MB ||--------------------------------------------------------------------------------||   6    |       23450 |     94 MB / 2045 MB |       39672 |    231 MB / 2047 MB |+--------------------------------------------------------------------------------+NOTE: - Time and Memory might change, as you run the test the program on a different   system, but they could be comparable to the above values.    Existing Processor: Intel® Core™ i5-8250U CPU @ 1.60GHz × 8  Memory: 7.5 GiB__________________________________________________________________________________# How to Run:1. Extract the rsn170330.zip 2. Compile: $javac rsn170330/*.java3. Run: $java -Xss512m -Xms2g rsn170330.TestLP1 <value>where value can be an Integer = {0, 1, 2, ..., 6}__________________________________________________________________________________

About

Array-based implementation of Calculator of very large integers with the length of the numbers as large as 2,147,483,647 (2^31 - 1), with Postfix and Infix evaluation of Arithmetic Expressions.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp