Commit Graph

449 Commits

Author SHA1 Message Date
Cole Mollica
38bad6b1e8 Implemented Square Root Algorithm ()
* Added to maths and strings

* added changes suggest by cclauss

* added square root function

* Fixed type hinting

* fixed type error

* Fixed another type error
2020-01-15 22:21:26 +01:00
Cole Mollica
a26ae00b24 Added to maths and strings ()
* Added to maths and strings

* added changes suggest by cclauss
2020-01-08 14:18:17 +01:00
Yurii
1cc817bcc9 update volumes with type hints + some refactoring ()
* update volumes with type hints + some refactoring

* added docstrings

* Use float instead of ints in doctest results

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-01-05 07:19:29 +01:00
Christian Clauss
28419cf839 pyupgrade --py37-plus **/*.py ()
* pyupgrade --py37-plus **/*.py

* fixup! Format Python code with psf/black push
2020-01-03 22:25:36 +08:00
Anzo Teh
725834b9bc Added binary exponentiaion with respect to modulo ()
* Added binary exponentiaion with respect to modulo

* Added miller rabin: the probabilistic primality test for large numbers

* Removed unused import

* Added test for miller_rabin

* Add test to binary_exp_mod

* Removed test parameter to make Travis CI happy

* unittest.main()  # doctest: +ELLIPSIS   ...

* Update binary_exp_mod.py

* Update binary_exp_mod.py

* Update miller_rabin.py

* from .prime_check import prime_check

Co-authored-by: Christian Clauss <cclauss@me.com>
2019-12-24 07:23:15 +01:00
Muhammad Ibtihaj Naeem
bc5b92f7f9 Harmonic Geometric and P-Series Added ()
* Harmonic Geometric and P-Series Added

* Editing comments

* Update and rename series/Geometric_Series.py to maths/series/geometric_series.py

* Update and rename series/Harmonic_Series.py to maths/series/harmonic_series.py

* Update and rename series/P_Series.py to maths/series/p_series.py
2019-12-14 06:46:02 +01:00
heartsmoking
d385472c6f Update find_min.py ()
Line 5:     :return: max number in list   
"max" must be "min"
2019-12-11 07:57:08 +01:00
GeorgeChambi
9eb50cc223 Improved readability ()
* improved readability

* further readability improvements

* removed csv file and added f
2019-12-07 06:39:59 +01:00
Níkolas Vargas
938dd0bbb5 improved prime numbers implementation ()
* improved prime numbers implementation

* fixup! Format Python code with psf/black push

* fix type hint

* fixup! Format Python code with psf/black push

* fix doctests

* updating DIRECTORY.md

* added prime tests with negative numbers

* using for instead filter

* updating DIRECTORY.md

* Remove unused typing.List

* Remove tab indentation

* print("Sorted order is:", " ".join(a))
2019-12-07 06:39:08 +01:00
Abhijit Patil
74aeaa333f Code for Eulers Totient function ()
* Create eulersTotient.py

* Rename eulersTotient.py to eulers_totient.py

* Update eulers_totient.py
2019-12-01 06:58:25 +01:00
Bruno Santos
4dca9571db Pythagoras ()
* add pythagoras.py

* function distance

* run as script

* Update pythagoras.py
2019-12-01 06:29:23 +01:00
Christian Clauss
5df8aec66c
GitHub Action formats our code with psf/black ()
* GitHub Action formats our code with psf/black

@poyea Your review please.

* fixup! Format Python code with psf/black push
2019-11-14 19:59:43 +01:00
Du YuanChao
8c443ccfad add floor() ()
* ceil and floor

* ceil and floor
2019-11-04 08:28:51 +01:00
Du YuanChao
814750e637 update factorial ()
* update factorial

* update factorial
2019-10-31 13:45:32 +01:00
Du YuanChao
6d44cdd315 perfect square ()
* perfect square

* perfect square
2019-10-31 12:33:40 +01:00
LokiUvaraj
63433616c9 average_mode.py ()
* Add files via upload

Finds the mode in the input data.

* Update average_mode.py

* Update average_mode.py

* Update average_mode.py

* Update average_mode.py

* Update average_mode.py

* Update average_mode.py

* Tabs do not belong in Python files!
2019-10-30 00:26:28 +01:00
himanshujain171
53ff735701 Factors of a number ()
* Factors of a number

* Update factors.py

* Fix mypy issue in basic_maths.py

* Fix mypy error in perceptron.py

* def primes(max: int) -> List[int]:

* Update binomial_heap.py

* Add a space

* Remove a space

* Add a space
2019-10-29 23:54:30 +01:00
percy07
f8e97aa597 Update basic_maths.py ()
* Update basic_maths.py

Add Doctests.

* Update basic_maths.py

* Add a space to fix the doctest
2019-10-29 21:54:31 +01:00
5ur3
4880e5479a Create prime_numbers.py ()
* Create prime_numbers.py

* Update prime_numbers.py
2019-10-29 21:28:51 +01:00
percy07
e3d4d2bb57 Update greatest_common_divisor.py ()
Add Doctests.
2019-10-29 11:06:37 +01:00
Du YuanChao
3fc276ca2c rename and add doctest () 2019-10-28 13:50:36 +01:00
Deekshaesha
8a5b1abd0a finding max ()
* Update find_max.py

* Update find_max.py

* Format with psf/black and add doctests
2019-10-28 09:14:53 +01:00
ArjunwadkarAjay
bc52aa6d4d Some grammatical and spelling corrections () 2019-10-27 18:37:25 +01:00
prathmesh1199
a57809af9c Added binomial coefficient ()
* Added binomial coefficient

* Format code with psf/black and add a doctest
2019-10-26 11:18:28 +02:00
Ankur Chattopadhyay
7592cba417 psf/black code formatting ()
* added sol3.py for problem_20

* added sol4.py for problem_06

* ran `black .` on `\Python`
2019-10-22 19:13:48 +02:00
Ghulam Mohiyuddin
7444a1f069 Another method added for GCD ()
* Another method added for GCD

* Now doctest fulfilled for added method.

* Update greatest_common_divisor.py

* Now unnecessary white spaces removed.

* Cycle_Detection_Undirected_Graph

Cycle_Detection_Undirected_Graph using Disjoint set DataStructure

* Update greatest_common_divisor.py again

* Again Updated cycle_detection_undirected_graph.py

* Delete cycle_detection_undirected_graph.py

* Add doctests and format the code with psf/black

* fixup: Typo

* Update greatest_common_divisor.py

* greatest_common_divisor()
2019-10-22 11:26:06 +02:00
moita69
f93cce66a6 some pytest on math folder ()
* some pytest on math folder

* Run the test function via a doctest

Also format the code with psf/black as discussed in CONTRIBUTING.md

* Update abs.py

* Update average_mean.py
2019-10-21 22:36:33 +02:00
Shubham Lad
a06995a686 add simple improved Sieve Of Eratosthenes Algorithm ()
* add simple improved Sieve Of Eratosthenes Algorithm

* added doctests

* name changed
2019-10-21 20:10:19 +02:00
Stephen
afeb13bbc8 added explicit euler's method ()
* added explicit euler's method

* update explicit_euler.py variable names
2019-10-21 19:19:43 +02:00
Stephen
dbf904f438 added runge-kutta () 2019-10-19 17:11:05 +08:00
Alfin_William
5c351d81bf Implementation of Hardy Ramanujan Algorithm in /maths ()
* Implementation of Hardy Ramanujan Algorithm

* added docstrings

* added doctests

* Run Python black on the code

* Travis CI: Upgrade to Python 3.8

* Revert to Python 3.7
2019-10-19 06:02:38 +02:00
Phyllipe Bezerra
455509acee Add Topological Sort ()
* add topological sort

* fix topological sort?

* running black

* renaming file
2019-10-18 08:13:58 +02:00
Yurii
3cc3531076 Feature/update least common multiple ()
* renamed module to extend the acronym

* add type hints (will not work with Python less than 3.4)

* update docstring

* refactor the function

* add unittests for the least common squares multiple
2019-10-18 07:35:29 +02:00
Yurii
870eebf349 rewrite the algorithm from scratch () 2019-10-18 07:27:55 +02:00
Stephen
14c23bc847 create qr_decomposition () 2019-10-18 06:48:16 +02:00
Du YuanChao
83c104e839 Divide and Conquer ()
Thanks for your persistence!
2019-10-18 06:20:36 +02:00
Stephen
927a8c7722 added horner's method () 2019-10-17 16:50:51 +02:00
Aliabbas Merchant
b190c8f629 Rename GCD File () 2019-10-15 00:05:51 +05:30
Rishabh Kumar
61f7f94fde Create karatsuba.py ()
* Create karatsuba.py

Added karatsuba algorithm for multiplication of two numbers

* Update karatsuba.py

Added doctests and divmod

* Update karatsuba.py
2019-10-08 17:25:50 +05:00
Du YuanChao
f0568d642e less code () 2019-10-08 13:24:01 +05:00
Maram Sumanth
22bd6ff967 Update average_mean.py () 2019-10-07 23:26:40 +05:00
TheRealDarkCoder
0a7d387acb Added a python script for finding sum of arithmetic series ()
* Added a python script for finding sum of arithmetic series

* Added some linting

* Resolved comments

* Fixed flake8 test
2019-10-06 23:47:32 +05:00
Nikhil Nayak
c4a97677a5 Update fibonacci_sequence_recursion.py ()
- Fixed minor bugs.
 - Minimized Codes
2019-10-06 23:35:56 +05:00
William Zhang
9eac17a408 psf/black code formatting () 2019-10-05 10:14:13 +05:00
Kaushik Amar Das
07f04a2e55 adding jaccard similarity ()
* adding jaccard similarity

* renaming files. zeebus! what an headache
2019-10-04 09:59:45 +02:00
Kaushik Amar Das
0e2d6b2963 adding softmax function ()
* adding softmax function

* wraped lines as asked
2019-10-03 16:30:36 +02:00
Shoaib Asgar
b738281f2b maths-polynomial_evalutation ()
* maths-polynomial_evalutation

* added doctest and removed redundancy
2019-10-01 08:58:00 +02:00
Christian Clauss
a79fc2b92a Fix the build typo: fn --> fn1 () 2019-09-26 21:02:04 +05:30
Aniruddha Bhattacharjee
e40d4a25f9 Added Matrix Exponentiation ()
* Added the matrix_exponentiation.py file in maths directory

* Implemented the requested changes

* Update matrix_exponentiation.py
2019-09-25 20:08:45 +02:00
Kiril Bangachev
47d17951b8 Add Kth lexicographic permutation ()
* Add Kth lexicographic permutation

Function that computes the kth lexicographic permtation of 0,1,2,...,n-1 in O(n^2) time

* Update kth_lexicographic_permutation.py

Addressed requested changes
2019-09-13 13:13:55 +02:00
KirilBangachev
a41a14f9d8 Add radix2 FFT ()
* Add radix2 FFT

Created a dynamic implementation of the radix - 2 Fast Fourier Transform for fast polynomial multiplication.

Reference: https://en.wikipedia.org/wiki/Cooley%E2%80%93Tukey_FFT_algorithm#The_radix-2_DIT_case

* Rename radix2_FFT.py to radix2_fft.py

* Update radix2_fft printing 

Improved the printing method with f.prefix and String.join()

* __str__ method update

* Turned the tests into doctests
2019-09-06 11:06:56 +02:00
Christian Clauss
47a9ea2b0b
Simplify code by dropping support for legacy Python ()
* Simplify code by dropping support for legacy Python

* sort() --> sorted()
2019-08-19 15:37:49 +02:00
Christian Clauss
c74fd0c9bf
Add maths/test_prime_check.py ()
* Add maths/test_prime_check.py

* Add comments on why this file is required
2019-08-13 11:50:13 +02:00
Christian Clauss
7cf3db1843
Add test for QuadraticEquation() () 2019-08-06 21:32:27 +02:00
Christian Clauss
89acf5d017 print() is a function just like every other function ()
* print() is a function just like every other function
2019-08-06 12:14:23 +02:00
Harshil
6654e1ec7d remove from __future__, propre filename () 2019-08-06 11:41:23 +02:00
AugustofCravo
22d2453773 Create Quadratic Equations(Complexes Numbers) ()
* Create Quadratic Equations(Complexes Numbers)

Created function that solves quadratic equations treating the cases with complexes numbers. Giving an answer with the imaginary unit "i".

* Update Quadratic Equations(Complexes Numbers)

Since there was no response from the owner of this PR, I made this little change which I hope will solve the issue!
2019-08-06 02:22:34 +02:00
Marvin M. Michum
bdbe682568
Zeller's Congruence Algorithm ()
* doctest updates

* remove unused math import

* cleanup (suggestions)

* cleanup - Dict fix (TravisCI error)
2019-08-04 23:22:28 -04:00
Sanders Lin
9c0cbe3307 Create collatz_sequence.py ()
* Create  collatz_sequence.py

* Update and rename collatz_sequence.py to maths/collatz_sequence.py

* doctest
2019-08-01 23:54:03 +08:00
obelisk0114
861a8c3631 Add Lucas_Lehmer_primality_test ()
* Add Lucas_Lehmer_primality_test

* Add explanation for Lucas_Lehmer_primality_test

* Update and rename Lucas_Lehmer_primality_test.py to lucas_lehmer_primality_test.py
2019-07-30 18:00:24 +02:00
Abhijeeth S
7b2c954169 LargestOfVeryLargeNumbers ()
* LargestOfVeryLargeNumbers

Finds the largest among two very large numbers of the form x^y. Numbers like 512^513 etc

* Rename LargestOfVeryLargeNumbers to LargestOfVeryLargeNumbers.py

* Input() statements have been indented.

input() statements are indented under if __name__ == "__main__":

* largest_of_very_large_numbers.py
2019-07-30 08:47:54 +02:00
obelisk0114
46bc6738d7 Add doctest to maths/sieve_of_eratosthenes.py and remove other/finding_primes.py ()
Both of the two files implemented sieve of eratosthenes.
However, there was a bug in other/finding_primes.py, and the time complexity was larger than the other.
Therefore, remove other/finding_primes.py and add doctest tomaths/sieve_of_eratosthenes.py.
2019-07-26 12:25:38 +02:00
Christian Clauss
3c8e9314b6 Travis CI: Add a flake8 test for unused imports () 2019-07-25 13:19:00 +05:30
QuantumNovice
c964d743b6 Added Mobius Function ()
* Add files via upload

* Update mobius_function.py

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Update mobius_function.py

* Delete mobius_function.py

* Add files via upload
2019-07-21 10:35:42 +02:00
Christian Clauss
93fdc9f2a1 Travis CI: Add pytest --doctest-modules maths ()
* Travis CI: Add pytest --doctest-modules maths

* Update lucas_series.py

* Update lucas_series.py
2019-07-21 11:46:28 +05:30
QuantumNovice
61fec83242 Adds Gaussian Function in maths section ()
* Create gaussian.py

* Update gaussian.py

* Update gaussian.py

* Create gaussian.png

* Add files via upload

* Create prime_factors.py

* Update prime_factors.py

* Update prime_factors.py
2019-07-20 14:32:40 +02:00
thiru15
9f8953dc0c Update find_lcm.py ()
* Update find_lcm.py

Improved code quality and added comments.

* Make the doctests work
2019-07-18 23:40:51 +02:00
cclauss
9a55f2b36a Remove the space: lucas series.py --> lucas_series.py () 2019-07-19 00:15:54 +08:00
Sanders Lin
1e0b33d3dd Update 3n+1.py ()
* Update 3n+1.py

Made variable names more meaningful and removed nested functions.

* Update 3n+1.py

* Update 3n+1.py

* Update 3n+1.py
2019-07-13 09:04:43 +02:00
Sanders Lin
c2f2fa8b23 Update abs_Min.py ()
* Update abs_Min.py

* Create __init__.py

* Rename abs_Min.py to abs_min.py

* Update abs_min.py
2019-07-11 18:20:41 +02:00
Alfonso Rodríguez Pereira
5f991f7740 Renamed all files to snake_case () 2019-07-11 11:16:42 +02:00
Sanders Lin
b79a197e8c Update abs_Max.py ()
* Update abs_Max.py

fix docstring for doctest to work properly (add space after >>>)

* Update abs_Max.py
2019-07-11 06:43:03 +02:00
Sanders Lin
37fbd8ca2e Update average_median.py ()
added doctest, fixed TypeError: list indices must be integers or slices, not float error due to number/2 producing float as index.
2019-07-10 22:38:10 +02:00
PatOnTheBack
897f1d0fb4 Improved Formatting and Style of Math Algos ()
* Improved Formatting and Style

I improved formatting and style to make PyLama happier.

Linters used:

- mccabe
- pep257
- pydocstyle
- pep8
- pycodestyle
- pyflakes
- pylint
- isort

* Create volume.py

This script calculates the volumes of various shapes.

* Delete lucasSeries.py

* Revert "Delete lucasSeries.py"

This reverts commit 64c19f7a6c.

* Update lucasSeries.py
2019-07-10 22:09:24 +02:00
PatOnTheBack
add1aef064 Rename average.py to average_mean.py ()
'average.py' is ambiguous. There are several kinds of averages, so 'average_mean.py' is a more precise name.
2019-07-10 07:21:04 +02:00
PatOnTheBack
2b365284c8 Removed Unnecessary Assignment for 'error' Var ()
`error = abs(f(a))` was declared on line 24 and line 32. It is unnecessary to have in both places.
I removed the second instance since it wastes resources to keep redefining the variable inside the for loop.
This fixes an [issue found by lgtm](66c4afbd0f/files/maths/newton_raphson.py)
2019-07-07 23:45:42 +08:00
Anup Kumar Panwar
4e413c0183 Updated README 2019-07-06 11:11:20 +05:30
PatOnTheBack
1c9d995b9e Implement Three New Algorithms ()
* Create average_median.py

I created a program to calculate the median of a list of numbers.

* Changed Odd to Even in String

* Create decimal_to_binary.py

- Added 'conversions' folder.
- Created a decimal to binary converter.

* Implemented Decimal to Octal Algorithm

- I created a decimal to octal converter based on the converter in the TheAlgorithms/Python project.
- I added two newlines to make the output of decimal_to_binary.py better.
2019-07-05 14:06:48 +05:30
PatOnTheBack
a2236cfb97 Improve Formatting and Code Quality ()
* Improved Formatting of basic_maths.py

- Added docstrings.
- Improved whitespace formatting.
- Renamed functions to match snake_case.

* Improved Formatting of factorial_python.py

- Added docstrings.
- Improved whitespace formatting.
- Renamed constants to match UPPER_CASE.

* Improved Formatting of factorial_recursive.py

- Improved whitespace formatting to meet PyLint standards.

* Improved Code to Conform to PyLint

- Renamed `max` to `max_num` to avoid redefining built-in 'max' [pylint]
- Removed unnecessary parens after 'while' keyword [pylint]

* Improved Formatting of factorial_recursive.py

- Added docstrings.
- Improved whitespace formatting.
2019-07-02 09:35:43 +05:30
PatOnTheBack
bd4017928e Added Whitespace and Docstring ()
* Added Whitespace and Docstring

I modified the file to make Pylint happier and make the code more readable.

* Beautified Code and Added Docstring

I modified the file to make Pylint happier and make the code more readable.

* Added DOCSTRINGS, Wikipedia link, and whitespace

I added DOCSTRINGS and whitespace to make the code more readable and understandable.

* Improved Formatting

* Wrapped comments
* Fixed spelling error for `movement` variable
* Added DOCSTRINGs

* Improved Formatting

* Corrected whitespace to improve readability.
* Added docstrings.
* Made comments fit inside an 80 column layout.
2019-07-01 16:10:18 +08:00
Adeoti Ayodeji
12a16d63b7 Update average.py ()
Reduced lines of code and extra processing on the line: n += 1
2019-06-22 12:42:28 +08:00
guij15
066f37402d Update newton_raphson.py () 2019-06-10 12:16:36 +05:30
StephenGemin
9b945cb2b4 Iterative fibonacci with unittests from slash ()
* iterative and formula fibonacci methods

Added two ways to calculate the fibonacci sequence:  (1) iterative  (2) formula.  

I've also added a timer decorator so someone can see the difference in computation time between these two methods.  

Added two unittests using the slash framework.

* Update test_fibonacci.py

* remove inline comments per Contributing Guidelines

* Update sol5.py

* Create placeholder.py

* Update and rename maths/test_fibonacci.py to maths/tests/test_fibonacci.py

* Delete placeholder.py

* Create __init__.py

* Update test_fibonacci.py

* Rename Maths/lucasSeries.py to maths/lucasSeries.py

* Update and rename Project Euler/Problem 01/sol5.py to project_euler/problem_01/sol6.py
2019-06-08 20:25:34 +08:00
Erfan Alimohammadi
fc95e7a91a Fermat's little theorem ()
* Fix typo

* Add fermat's little theorem

* Update fermat_little_theorem.py

* Fix comments

* Add Wikipedia reference
2019-05-28 20:51:48 +08:00
Anup Kumar Panwar
71be23999c refactor 2019-05-26 21:56:10 +05:30
Julien Castiaux
36828b106f [FIX] maths/PrimeCheck ()
Current implementation is buggy and hard to read.

* Negative values were raising a TypeError due to `math.sqrt`
* 1 was considered prime, it is not.
* 2 was considered not prime, it is.

The implementation has been corrected to fix the bugs and to enhance
readability.

A docstring has been added with the definition of a prime number.

A complete test suite has been written, it tests the 10 first primes, a
negative value, 0, 1 and some not prime numbers.

closes 
2019-05-11 19:20:25 +08:00
Junth Basnet
56513cb21f add-binary-exponentiation () 2019-05-10 19:03:05 +08:00
Vysor
df04d94543 Some directories had a capital in their name [fixed]. Added a recursive factorial algorithm. ()
* Renaming directories
* Adding a recursive factorial algorithm
2019-04-22 22:53:56 +08:00
WILFRIED NJANGUI
b2f1d9c337 implementation of tower_of_hanoi algorithm () 2019-04-14 19:58:16 +08:00
Reshad Hasan
9a44eb4479 Organize graph algorithms ()
* organized graph algorithms

* all graph algorithms in Graphs/ folder

* all graph algorithms are in one folder

* Rename number theory/factorial_python.py to maths/factorial_python.py
2019-02-25 17:35:24 +08:00
P-Shreyas-Shetty
02f850965d Implementation of Newton-Raphson method ()
Implemented Newton-Raphson method using pure python. Third party library is used only for visualizing error variation with each iteration.
2019-02-12 00:15:49 +08:00
Harshil
5db9d2e54a Merge branch 'master' of git://github.com/gerroo/Python into gerroo-master 2018-11-04 16:04:29 +01:00
gerroo
a834326e0e Added b16, b32, a85, abs, absMax, absMin 2018-11-03 12:08:13 -08:00
dheerajreddymumma
1305e74b8a New modified Python code for Prime check 2018-10-28 17:02:27 +05:30
dheerajreddymumma
2040757751 Optimized prime check code in Python. 2018-10-28 16:53:56 +05:30
Alex Brown
ea2ddaaf6a all valid python 3 2018-10-20 14:45:08 -05:00
Alex Brown
b566055e4b Merge branch 'master' of https://github.com/TheAlgorithms/Python 2018-10-20 14:15:21 -05:00
Alex Brown
91fccecb56 snake_case all the things 2018-10-19 17:14:25 -05:00
Alex Brown
564179a0ec increment 1 2018-10-19 07:48:28 -05:00