mathball
v0.4.0
Published
A JavaScript library for Competitive Programming
Downloads
17
Maintainers
Readme
Introduction
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.
Installation
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
Features
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
Examples
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 */
Contribution
- Fork the project. :fork_and_knife:
- Fix issues & add changes. :wrench:
- Follow the guidelines given in CONTRIBUTING.md. :star2:
- Make a PR. :hammer:
- Mission Acomplished! :tada:
Important Notice
Mathball has been selected at GirlScript Summer of Code 2019!
License
The MIT License 2019 - Priyabrata Biswas.