A lightweight Python library for generating and analyzing combinatorial objects.
Project description
combpyter
A lightweight Python library for generating and analyzing combinatorial objects.
Installation
The latest release is simply pip-installable via PyPI. Simply run
pip install combpyter
to install the library.
Features
Please note that this is a personal and mostly research-driven project. As such, the implemented combinatorial structures span, for the time being, a narrow scope.
Currently, combpyter
supports the following combinatorial objects:
- Dyck paths (elements:
DyckPath
, generator:DyckPaths
)
Example usage
This snippet iterates over all Dyck paths of semi-length 8 and computes the distribution of the number of peaks (which is a statistic described by Narayana numbers).
>>> from combpyter import DyckPaths
>>> from collections import defaultdict
>>> peak_distribution = defaultdict(int)
>>> for path in DyckPaths(8):
... num_peaks = len(path.peaks())
... peak_distribution[num_peaks] += 1
...
>>> for num_peaks, num_paths in peak_distribution.items():
... print(f"There are {num_paths} Dyck paths with {num_peaks} peaks.")
...
There are 1 Dyck paths with 1 peaks.
There are 28 Dyck paths with 2 peaks.
There are 196 Dyck paths with 3 peaks.
There are 490 Dyck paths with 4 peaks.
There are 490 Dyck paths with 5 peaks.
There are 196 Dyck paths with 6 peaks.
There are 28 Dyck paths with 7 peaks.
There are 1 Dyck paths with 8 peaks.
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
Built Distribution
Hashes for combpyter-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d268e73651a72d92720cbbc6c6928de1ddde5234b3f41c59c78e4ed77fb691a |
|
MD5 | ace5262fd552743e6054a0fb4ed35896 |
|
BLAKE2b-256 | 9490118bc2abffb8eb413b6cc86b48f99b0f30b0cf9ded3c2bf5e3d8153e9623 |