Commit Graph

2573 Commits

Author SHA1 Message Date
Charitoc
2375bfbee5 Adding stooge sort (#1206)
* Adding stooge sort

* Updated doctest

* Just added underscore in the name
2019-09-26 17:19:01 +02:00
Raj
6ac7b1387f Min head with decrease key functionality (#1202)
* Min head with decrease key functionality

* doctest added

* __str__ changed as per Python convention

* edits in doctest

* get_value by key added

* __getitem__ added
2019-09-26 00:03:31 +02:00
Aniruddha Bhattacharjee
e40d4a25f9 Added Matrix Exponentiation (#1203)
* 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
luoheng
01601e6382 Add disjoint set (#1194)
* Add disjoint set

* disjoint set: add doctest, make code more Pythonic

* disjoint set: replace x.p with x.parent

* disjoint set: add test and refercence
2019-09-23 05:08:20 +02:00
Holden-Lin
837bfffd99 Rename sorted_vector_machines.py to support_vector_machines.py (#1195)
SVM stands for support vector machines. Intuitively, a support vector is the vector right near the decision boundary.
2019-09-22 16:56:32 +02:00
Denis Trofimov
04962c0d17 Fix lgtm error display #1024 (#1190)
* fix: Syntax Error lgtm display in matrix/matrix_operation.py.

* Testing for None should use the 'is' operator.

* fix: Too many arguments for string format.

* fix: supress lgtm alert as false positive.

* style: Unnecessary 'pass' statement.

* Revert "fix: Syntax Error lgtm display in matrix/matrix_operation.py."

This reverts commit 4c629b4ce1.
2019-09-21 16:23:34 +02:00
BAKEZQ
a2b5a90c11 Added sequential minimum optimization algorithm for SVM (#508)
* Implementation of sequential minimal optimization algorithm

* Update smo.py

* Add demonstration of svm partition boundary

1:Use matplotlib show svm's partition boundary
2:Automatically download test dataset

* Update smo.py

* Update smo.py

* Rename smo.py to sequential_minimum_optimization.py

* Update doc and simplify the code.

Fix filename typo error in doc.
Use ternary conditional operator in predict()

* Update doc.
2019-09-18 22:01:05 +08:00
Sangeet K
768700b91f Add delete to trie.py + tests (#1177)
* Add delete to trie.py + tests

* Minor fixes + tests

* Remove noqa comments + modify tests for Travis CI to detect

* Minor improvement
2019-09-13 22:24:25 +02:00
PatOnTheBack
6fa3c0b170 Add Flake8 F4 Tests to .travis.yml (#974)
* Add Flake8 F4 Tests to .travis.yml

F4 tests check for import errors. Implements issue #973

* Remove wildcard imports
2019-09-13 14:07:24 +02:00
Marvin M. Michum
f8e30cfab1
Digital Image Processing Tests (#1178)
* add version of smaller image

* swap image in tests

* edits for image src
2019-09-13 07:40:14 -04:00
Kiril Bangachev
47d17951b8 Add Kth lexicographic permutation (#1179)
* 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
Christian Clauss
030600f9b3
Update matrix_class.py (#1175) 2019-09-10 07:49:07 +02:00
Simon Landry
3c3f92db53 Add problem 67 solution (#1170) 2019-09-08 10:40:07 +02:00
Jasper
5b483be73b Added OOP approach to matrices (#1165)
* Added OOP aproach to matrices

* created methods for minors, cofactors, and determinants and added corresponding doctests

* Added methods for adjugate, inverse, and identity (along with corresponding doctests) to matrix_class.py
A small bug persists that causes the doctest to fail.
After a couple Matrix objects are printed, the next one is printed in a different format.

* formatted matrix_class.py with python/black

* implemented negation and exponentiation as well as corresponding doctests in matrix_class.py.  Also implemented eq and ne comparison operations

* changed __str__ method in matrix_class.py to align with numpy standard and fixed bug in cofactors method

* removed property decorators from several methods in matrix_class.py
2019-09-08 07:07:14 +02:00
KirilBangachev
a41a14f9d8 Add radix2 FFT (#1166)
* 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
Jai Kumar Dewani
ab25079e16 Update DIRECTORY (#1161)
* Update DIRECTORY

* Updated DIRECTORY

* Fixed bug in directory build and re-build the directory.md

* fixed url issue

* fixed indentation in Directory.md
2019-09-06 11:02:37 +02:00
Maxwell Aladago
2dfe01e4d8 Fully refactored the rod cutting module. (#1169)
* changing typo

* fully refactored the rod-cutting module

* more documentations

* rewording
2019-09-05 08:22:06 +02:00
KirilBangachev
f31a812c46 Add Binomial Heap (#1146)
* Binomial Heap

Implementation of Binomial Heap. Reference: Advanced Data Structures, Peter Brass

* Update binomial_heap.py

* Update binomial_heap.py

* Update binomial_heap.py

- Fuller documentation of binomial heap
- Update unit tests
- Replace printing method by overwriting __str__()

* Update binomial_heap.py

- Added more tests
- Added to the documentation
- Stylistic editing
- mergeHeaps now also returns a reference to the merged heap
- added a preOrder function that returns a list with the preorder of the heap

* Update binomial_heap.py

Changed the unit tests structure

* Turned the tests into doctests
2019-09-05 07:58:37 +02:00
Maxwell Aladago
a4ed40be86 changing typo (#1168) 2019-09-04 22:06:44 +02:00
McDic
9492e7af7c Created Sherman Morrison method (#1162)
* Created Sherman Morrison

* Added docstring for class

* Updated Sherman morrison

1. Added docstring tests
2. Tweaked __str__() using join
3. Added __repr__()
4. Changed index validation to be independent method

* Applied cclauss's point

1. Reduced line length for __str__()
2. Removed parens for assert
2019-09-03 09:02:53 +02:00
b63
d567a9eb8c solution to problem 551 from project euler (#1164)
* solution to problem 551 from project euler

* renamed variables, and added more comments to improve readabilty
2019-09-01 08:07:31 +02:00
Rwithik Manoj
d4151bd516 Fix possible error in longest_common_subsequence.py (#1163)
The comparison at line 53 was not checking if (j > 0).
2019-08-31 13:40:50 +02:00
Rohit Gupta
d327f10702
Update stale.yml 2019-08-29 00:53:42 +05:30
Harshil
82a079c209
add .github/stale.yml (#1158) 2019-08-28 17:16:12 +02:00
Riemann
2f8516e561 implementation of sorted vector machines (#1156)
* svm.py

for issue #840 
I would like to add the Support Vector Machine algorithm implemented in Python 3.6.7
Requirements:
      - sklearn

* update svm.py

* update svm.py

* Update and renamed to sorted_vector_machines.py

* Updated sorted_vector_machines.py
2019-08-28 12:56:43 +02:00
Nishant Aklecha
e694e596a3 Added a few doctests for traversals (#1149) 2019-08-25 14:14:17 +02:00
pathak-deep15
47cb394b5c added doctests for compare_string and is_for_table (#1138)
* added doctests for compare_string and is_for_table

>>>compare_string('0010','0110')
       '0_10'
>>> is_for_table('__1','011',2)
	True
The above doctests were added

* Update quine_mc_cluskey.py

* Update quine_mc_cluskey.py

* Update quine_mc_cluskey.py
2019-08-23 00:55:41 +08:00
Hector S
2304e31994 Fixing lgtm issue in basic graphs (#1141)
* Added print function into matrix_multiplication_addition.py and removed blank space in data_structures/binary tree directory

* Removed .vs/ folder per #893

* Rename matrix_multiplication_addition.py to matrix_operation.py

* Fixing lgtm issue in basic_graphs per ##1024

* Fixed lgtm issue per @cclauss recommendation in #1024
2019-08-20 07:02:43 +02:00
Christian Clauss
47a9ea2b0b
Simplify code by dropping support for legacy Python (#1143)
* Simplify code by dropping support for legacy Python

* sort() --> sorted()
2019-08-19 15:37:49 +02:00
Maxwell Aladago
32aa7ff081 ENH: refactored longest common subsequence, also fixed a bug with the sequence returned (#1142)
* function for the knapsack problem which returns one of the optimal subsets

* function for the knapsack problem which returns one of the optimal subsets

* function for the knapsack problem which returns one of the optimal subsets

* function for the knapsack problem which returns one of the optimal subsets

* function for the knapsack problem which returns one of the optimal subsets

* some pep8 cleanup too

* ENH: refactored longest common subsequence, also fixed a bug with the sequence returned

* renamed function
2019-08-19 09:40:36 +02:00
Maxwell Aladago
5d46a4dd7b ENH: Added a functionality to make it possible to reconstruct an optimal subset for the dynamic programming problem (#1139)
* function for the knapsack problem which returns one of the optimal subsets

* function for the knapsack problem which returns one of the optimal subsets

* function for the knapsack problem which returns one of the optimal subsets

* function for the knapsack problem which returns one of the optimal subsets

* function for the knapsack problem which returns one of the optimal subsets

* some pep8 cleanup too
2019-08-19 07:39:39 +02:00
Maxwell Aladago
05c9a05f36 ENH: two algorithms for the convex hull problem of a set of 2d points on a plain (#1135)
* divide and conquer and brute force algorithms for array-inversions counting

* divide and conquer and brute force algorithms for array-inversions counting

* divide and conquer and brute force algorithms for array-inversions counting

* a naive and divide-and-conquer algorithms for the convex-hull problem

* two convex-hull algorithms, a divide-and-conquer and a naive algorithm

* two convex-hull algorithms, a divide-and-conquer and a naive algorithm

* two convex-hull algorithms, a divide-and-conquer and a naive algorithm
2019-08-17 17:36:31 +02:00
Christian Clauss
a18a8fe2b9
Update .gitignore to remove __pycache__/ (#1127) 2019-08-17 00:46:33 +02:00
Maxwell Aladago
5bdcd4836c EHN: A divide-and-conquer, and brute-force algorithms for array inversions co… (#1133)
* divide and conquer and brute force algorithms for array-inversions counting

* divide and conquer and brute force algorithms for array-inversions counting

* divide and conquer and brute force algorithms for array-inversions counting
2019-08-15 20:07:43 +02:00
Christian Clauss
3e69733e44
Remove 'python' from the filename (#1130) 2019-08-15 13:19:38 +02:00
Christian Clauss
27205d4548
Update DIRECTORY.md (#1129) 2019-08-14 23:24:58 +02:00
Alok Shukla
8eab2f17f4 Solution for Problem Euler 56 (#1131)
* Solution for Euler 56

* Adding Type and Doctest as per guideline

* removing unused import

* correcting the way type check works
2019-08-13 19:16:11 +02:00
adith bharadwaj
f3c0b132bc Added sudoku solving program in backtracking algorithms (#1128)
* Added sudoku solver in backtracking

* Added sudoku solver program

* Added sudoku solver

* Added sudoku solver

* Format with black, add doctests, cleanup main
2019-08-13 15:51:06 +02:00
Christian Clauss
dc2b575274
Add doctests to networking_flow/minimum_cut.py (#1126) 2019-08-13 11:59:49 +02:00
Christian Clauss
c74fd0c9bf
Add maths/test_prime_check.py (#1125)
* Add maths/test_prime_check.py

* Add comments on why this file is required
2019-08-13 11:50:13 +02:00
Christian Clauss
4fea48072a
Add type hints to binary_tree_traversals.py (#1123) 2019-08-12 17:59:59 +02:00
Niclas Dern
158b319d22 New linear algebra algorithm (#1122)
* Added new algorithm which takes points as an input and outputs a polynom connecting them

* Rename Python-Polynom-for-points.py to python-polynom-for-points.py

* Update python-polynom-for-points.py

* Update python-polynom-for-points.py

* Update python-polynom-for-points.py

* Update python-polynom-for-points.py

* Update python-polynom-for-points.py

* Update python-polynom-for-points.py

* Update python-polynom-for-points.py

* Add doctests and run thru psf/black
2019-08-12 09:13:57 +02:00
Christian Clauss
55cea57ffa
Fix tests for file_transfer and perceptron.py (#1121) 2019-08-11 13:00:58 +02:00
Christian Clauss
36684db278
Travis CI: Add pytest --doctest-modules machine_learning (#1016)
* Travis CI: Add pytest --doctest-modules neural_network

Fixes #987
```
neural_network/perceptron.py:123: in <module>
    sample.insert(i, float(input('value: ')))
../lib/python3.7/site-packages/_pytest/capture.py:693: in read
    raise IOError("reading from stdin while output is captured")
E   OSError: reading from stdin while output is captured
-------------------------------------------------------------------------------- Captured stdout --------------------------------------------------------------------------------
('\nEpoch:\n', 399)
------------------------

value:
```

* Adding fix from #1056 -- thanks @QuantumNovice

* if __name__ == '__main__':

* pytest --ignore=virtualenv  # do not test our dependencies
2019-08-10 22:48:00 +02:00
Christian Clauss
91c3c98d2b
Rename file_transfer and linear_algebra (#1118)
* Rename file_transfer and linear_algebra

* Rename file_transfer and linear_algebra
2019-08-09 21:37:16 +02:00
Marvin M. Michum
c686cc5863 fix outdated fork error (#1117) 2019-08-08 17:59:15 +02:00
AlexDvorak
3ba67c7d2d rename non-ftp files (#1116) 2019-08-07 22:02:31 +02:00
Amrit Khera
32c0418f63 Infinite loop was fixed. (#1105)
* Infinite loop was fixed.
Removed issue of unused variables.

* Update logistic_regression.py

* Update logistic_regression.py

* correct spacing according to PEP8
2019-08-07 21:39:44 +02:00
John Law
c92d06bf1f Delete redundant files (#1115)
* Delete 16L'

* Delete Q'
2019-08-07 19:35:36 +02:00
AlexDvorak
9456e81437 Seperate client and server of FTP (#1106)
* added sample file to transfer

* split client and server into separate files

* client and server now work in python2

* server works on python3

* client works on python3

* allow configurable ONE_CONNECTION_ONLY for testing server

* allow testing of ftp server + client

* use f-strings

* removed single letter vars

* fixed bad quote marks

* clearer file handler names

* 'with open() as' syntax

* unicode and emojis in the test data

* s -> sock

* consistent comment spacing

* remove closing formalities

* swap in and out_file

* f-string

* if __name__ == '__main__':
2019-08-07 15:44:48 +02:00