Inspiration

-Since the time man discovered numbers, there has been a need to perform operations such as addition, subtraction, and multiplication - Since calculating in our minds can be time consuming, calculators were invented to save time and enhance the accuracy of operations.

  • The normal calculators used by us in various day-to-day activities are fast and can handle comparatively large numbers that have as many as 20 digits. -However, in fields like scientific research, mathematical research and cryptography, often there are operations on numbers that have as many as a million digits. -If we use a normal calculator for these functions, they display these numbers in scientific notations like ‘e’, therefore unable to display the entire information. There are high chances of the application crashing as well. -To resolve this issue in the ever-growing field of mathematics, we, team BigMath, have developed an app capable of processing huge operations without compromise on speed and accuracy.

What it does

- Our application divides the large number into different parts (chunks), performs the desired operation on them separately, then combines it together to deliver the output, without compromise on neither speed nor accuracy.

How we built it

- To accomplish this, we used the greatest tactic ever developed in history: Divide and Conquer. - We divided the inputs (which are numbers spanning millions of digits) into different chunks, performed operations on these chunks separately, then combined them to get the result. - Once this loaded the output, the output was loaded on to a text box, as chunks. Chunks were used so that the application did not crash while trying to load the output. - Hence, the application is able to perform operations on these large numbers without compromise on neither speed nor accuracy, the most important elements of a mathematical calculation.

  • The entire application was built completely using the language python, using various frameworks and libraries: tkinter, customtkinter, sys, os, random, time, dataclass, typing, pyperclip and other custom made classes and functions

Challenges we ran into

  • The principal challenge in this task was to divide the numbers into chunks and perform operations on them separately.
  • We had to write custom-made algorithms to achieve this.
  • The next challenge was to run tests on these algorithms.
  • Next, we had to build a frontend GUI, capable of matching the features and functions of the algorithms. The GUI also had to ensure that the output was loaded as chunks.
    • Integrating frontend with backend.

Accomplishments that we're proud of

  • We were able to accomplish our primary goal - the "chunking" of data smoothly and efficiently.

What we learned

  • Data management of large numbers and processing them

What's next

  • Due to lack of time and a few bugs, the frontend and the backend could not be combined fully(it is partially combined). We aim to combine the frontend and backend in a smooth and efficient way.
  • We aim to extend this application from simple operations to a variety of widely-used mathematical operations like HCF, LCM, Factorials, Trigonometry, Logarithms and many more. There is a lot of scope to improve this application.

Built With

Share this project:

Updates