Exact cover solver in Python
Project description
exact cover in Python/numba using algorithm X
an implementation of Donald Knuth's Dancing Links algorithm X in Python / numba
Usage
pip install exact_cover_py
from exact_cover_py import exact_covers
problem = np.array([
[1, 0, 0, 1, 0, 0, 1],
[1, 0, 0, 1, 0, 0, 0], # <--
[0, 0, 0, 1, 1, 0, 1],
[0, 0, 1, 0, 1, 1, 0], # <--
[0, 1, 1, 0, 0, 0, 1],
[0, 1, 1, 0, 0, 1, 1], # <--
[0, 1, 0, 0, 0, 0, 1],
])
# exact_covers returns a generator of solutions
# one solution
print(next(exact_covers(problem)))
[1, 5, 3]
# all solutions
print(list(exact_covers(problem)))
[[1, 5, 3]]
# number of solutions
def mylen(iterable):
return sum(map(lambda x: 1, iterable))
print(mylen(exact_covers(problem)))
2
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
exact_cover_py-0.1.2.tar.gz
(60.7 kB
view hashes)
Built Distribution
Close
Hashes for exact_cover_py-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26548ddeca50753064bea8f42f0839d13d7472ba981e3d561a7d0995fb938239 |
|
MD5 | d6c975497f2da30392bb8425be1ae36a |
|
BLAKE2b-256 | 76ad831f297e80ac36467595f91180acdac541e4c4a50c4e5c861641330cbfe7 |