Mathball is a JavaScript library for competitive programming, implementing optimized algorithms for faster execution.
JavaScript was never built while keeping competitive coding in mind; let us all agree on that. Back in 1995, Brendan Eich developed JavaScript only for adding interactivity to web pages like handling a mouse click. Today, we can build servers, games, mobile apps, IoT apps and even machine learning in the browser is possible with JavaScript.
"Any application that can be written in JavaScript, will eventually be written in JavaScript." -- Atwood's Law.
Hence, I believe maybe its time for people who are well versed with this particular language to finally consider using it in the realm of competitive programming as well.
You can download the package in your working directory by simply typing in the terminal (for Mac/Linux users) or command prompt (for Windows users):
$ npm install mathball --save
-
Numbers' Problem - Complex Number, Find nth Number, Number Checker, Range of Number
-
Helper Functions - Performance - Pipe
-
Core Tools - Absolute - Add - Average - Binomial Coeff - Convert - Count - Divide - Euler's Totient - Modular Exponent - GCD - LCM - Length - Maximum - Median - Minimum - Modular Inverse - Multiply - Permute - Set Bits - Sort - Subtract - Sum
-
Data Structures - Graph - Matrix - Priority Queue - Stack - BinaryTree
You can access all the functions via mathball object, M
(or whatever you end up calling it) like so:
let M = require('mathball');
console.log(M.check('palindrome')(1551)); /* true */
console.log(M.check('even')(7)); /* false */
console.log(M.sum([4, 5, 9])); /* 18 */
- Fork the project. 🍴
- Fix issues & add changes. 🔧
- Follow the guidelines given in CONTRIBUTING.md. 🌟
- Make a PR. 🔨
- Mission Acomplished! 🎉
Mathball has been selected at GirlScript Summer of Code 2019!
The MIT License 2019 - Priyabrata Biswas.