Metadata-Version: 2.4
Name: combigraphs
Version: 0.0.1
Summary: Python - библиотека для комбинаторики и графов, а также их совместного использования для решения некоторых задач. Подробнее: https://github.com/hikrim/combigraphs/README.md
Author-email: Петлин Артём <1132246846@pfur.ru>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/hikrim/combigraphs
Project-URL: Issues, https://github.com/hikrim/combigraphs/issues
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib
Requires-Dist: networkx
Dynamic: license-file

# CombiGraphs

Библиотека на Python для работы с комбинаторикой и теорией графов, а также их совместном использовании.  

---

## Установка

Установите библиотеку через pip:

```bash
pip install combigraphs
```

> Требуется Python 3.9 или выше.

---

## Зависимости 

Combigraphs использует matplotlib и networkx для вывода окна с графом, то есть его построения и визуализации

## Модули и функции

### Модуль `combigraphs.comb` — комбинаторика

Функции для расчёта основных комбинаторных формул.

- **`factorial(n)`**  
  Вычисляет факториал числа `n`.  
  *Пример: `factorial(5) = 120`*

- **`combination(n, k)`**  
  Вычисляет число сочетаний из `n` по `k` (C(n, k)).  
  *Пример: `combination(5, 2) = 10`*

- **`arrangement(n, k)`**  
  Вычисляет число размещений из `n` по `k` (P(n, k)).  
  *Пример: `arrangement(5, 2) = 20`*

---

### Модуль `combigraphs.graph` — работа с графами

Функции для создания, визуализации и анализа графов.

- **`create_graph(n)`**  
  Создаёт пустой неориентированный граф с `n` вершинами (нумеруются от 1 до n).

- **`add_edge(graph, u, v)`**  
  Добавляет ребро между вершинами `u` и `v`.

- **`plot_graph(graph)`**  
  Визуализирует граф с помощью `matplotlib` и `networkx`.  
  *Требует установки зависимостей: `pip install combigraphs[viz]`*

- **`count_subgraphs_of_size_k(graph, k)`**  
  Возвращает количество возможных подграфов из `k` вершин (без учёта рёбер).  
  *Это просто число сочетаний C(n, k), где n — количество вершин.*

- **`count_routes_of_lenght_k_infull_graph(n, k)`**  
  Возвращает максимальное количество путей длины `k` между двумя фиксированными вершинами в полном графе из `n` вершин.  
  *Использует формулу размещений: A(n-2, L-1)*

- **`all_routes(graph, start, end)`**  
  Находит все простые пути (без повторяющихся вершин) от вершины `start` до `end`.

---

## Примеры использования

```python
from combigraphs.combfuncs import combination
from combigraphs.graph import create_graph, plot_graph

# Сочетания
print(combination(5, 2))  # → 10

# Графы
g = create_graph(4)
add_edge(g, 0, 1)
add_edge(g, 1, 2)
plot_graph(g)  # откроется окно с графиком
```

---

## Лицензия

Проект распространяется под лицензией **GNU General Public License v3.0 или более поздней версии**.  
Полный текст лицензии см. в файле [LICENSE](LICENSE).

---

## Поддержка и вклад

Если у вас есть вопросы, замечания или предложения — открывайте issue на [GitHub](https://github.com/ваш_логин/combigraphs).

---
