Mathématiques amusantes
Implémentations de fonctions mathématiques, de formules et de concepts
Il fournit les implémentations mathématiques pour divers sujets qui sont liés à des choses mathématiques telles que les Fibonacci, Euclidien, les nombres premiers, etc. Tous les sujets ou concepts mathématiques sont les bienvenus. Si vous aimez les mathématiques, rejoignez ici avec vos algorithmes et codes!
Ce référentiel ne force pas à utiliser les langages de programmation spécifiques, mais si vous utilisez le Python, vous devez utiliser le Python 3.6 pour contribuer ou exécuter. (vous utiliserez le seul Python 3.6+ à l'avenir)
Une solution peut être mise en œuvre de trois manières:
- Par définition solution, une définition mathématique. Le bon exemple est la série Fibonacci. Mais la solution par définition du Fibonacci a la pire performance
- Solution optimale qui a de meilleures performances que par définition une (ou la meilleure solution).
- Solution créative . Ce n'est peut-être pas optimal, mais créatif ou drôle.
Courir
- Python
-
python3 -m doctest <path>/<script_name.py> -v
Implémentations
- abs
- combinaisons
- décomposition
- différenciation
- Simple_numerical_differentiation.py
- Euclidien
- factoriel
- factorial.py
- factorial_recursion.py
- fibonacci
- fibonacci.py
- fibonacci_optimal_memoization.py
- fibonacci_optimal_iteration.py
- GCD
- gcd.py
- gcd_optimal_euclidean.py
- intégral
- LCM
- lcm.py
- lcm_optimal_euclidean.py
- matrice
- multiplication
- multiplication_optimal
- permutations
- prime
- is_prime.py
- is_prime_improved.py
- is_prime_optimal.py
- Next_prime.py
- sieve_of_eratosthenes.py
- Pythagorean_triple
- carré_root
- trigonométric_functions
Contribution
- Vous pouvez implémenter n'importe quelle sorte d'algorithmes pour les choses mathématiques.
- Si vous ajoutez de nouveaux types d'algorithmes, veuillez également ajouter cela dans ReadMe en tant que nouvelle catégorie.
- Si vous souhaitez ajouter une autre version du langage de programmation des solutions existantes, vous devez nommer le fichier de code source comme le même à celui existant.
- Il est préférable de fournir les explications de vos algorithmes dans les commentaires des fichiers de code source.
- Vous pouvez utiliser tous les langages de programmation que vous préférez, mais vous devez prendre soin de gérer de grands nombres. Et si vous souhaitez contribuer les algorithmes avec Python, vous devez écrire les scripts avec Python 3.6+.
- Vous devez écrire les codes de test pour chaque algorithme. Voir l'exemple pour rédiger les tests (l'exemple est écrit en python)
- Il n'est pas recommandé d'utiliser les bibliothèques mathématiques intégrées possibles. Parce que ce référentiel encourage qui met en œuvre les choses mathématiques par nous-mêmes.
- Il est préférable de fournir les solutions optimales également pour chaque algorithme.
Changelog
Renforcement
- Liez le Travis CI pour exécuter les tests lorsque les engagements n ° 4
Fixé
- Ne vérifiez pas le type étrange non valide sur les fonctions qui acceptent uniquement les types spécifiques # 3
- Retirez le type de vérification du type strict sur certaines fonctions n ° 2
Contributeurs
- @mingrammer
- @Xaltonon
- @Tsimpdim
Licence