Skip to content

mingrammer/funmath

Repository files navigation



FUN MATH

Implementations of mathematical functions, formulas and concepts




It provides the mathematical implementations for various topics which are related to mathematical things such as fibonacci, euclidean, prime numbers and so on. Any mathematical topics or concepts are welcome. If you love the math, join to here with your algorithms and codes!

This repository does not force for using the specific programming languages, but if you are using the Python, you should use the Python 3.6 to contribute or to run. (you wiil use the only Python 3.6+ in the future)

A solution can be implemented in three ways:

  • By definition solution, a mathematical definition. Good example is the fibonacci series. But the solution by definition of the fibonacci has worst performance
  • Optimal solution which has better performance than by definition one (or best solution).
  • Creative solution. This may not be optimal one, but creative or funny way.

Run

  • Python
    • python3 -m doctest <path>/<script_name.py> -v

Implementations

Contribution

  • You can implement any sort of algorithms for mathematical things.
    • If you add new kind of algorithms, please also add that in README as new category.
    • If you want to add other programming language version of existing solutions, you must name the source code file as same to existing one.
    • It is better to provide the explains of your algorithms in comments of source code files.
  • You can use any programming languages you are preferring, but you SHOULD take care of handling large numbers. And if you want to contribute the algorithms with Python, you SHOULD write the scripts with Python 3.6+.
  • You MUST have to write the test codes for each algorithms. See the example for writing the tests (the example is written in Python)
  • It is not recommended to use the builtin math libraries as possible. Because this repository encourages that implement the mathematical things by ourselves.
  • It is better to provide the optimal solutions as well for each algorithms.

Changelog

Enhancement

  • Link the Travis CI to run the tests when commits #4

Fixed

  • Don't check the weird invalid type on functions which accept only specific types #3
  • Remove the stricted type checking on some functions #2

Contributors

License

FOSSA Status