跳转到主要内容

一个用于组合数学的Python包

项目描述

Combi是一个用于组合数学的Python包。

Combi允许您将排列和组合的空间探索为Python序列,而不必预先生成所有的排列和组合。它允许您对这些空间指定许多特殊条件。它还提供了一些可能在组合数学编程中很有用的类。

Combi文档:https://combi.readthedocs.org/en/stable/

Combi在GitHub上:https://github.com/cool-RR/combi

Combi在PyPI上:https://pypi.python.org/pypi/combi

变更日志:https://combi.readthedocs.org/en/stable/changelog.html

基本用法

使用 PermSpace 创建排列空间

>>> from combi import *
>>> perm_space = PermSpace('meow')

它表现得像一个序列

>>> len(perm_space)
24
>>> perm_space[7]
<Perm: ('e', 'm', 'w', 'o')>
>>> perm_space.index('mowe')
3

但是排列是在需要时创建的,而不是预先创建。

使用 CombSpace 创建组合空间,其中顺序不重要

>>> comb_space = CombSpace(('vanilla', 'chocolate', 'strawberry'), 2)
>>> comb_space
<CombSpace: ('vanilla', 'chocolate', 'strawberry'), n_elements=2>
>>> comb_space[2]
<Comb, n_elements=2: ('chocolate', 'strawberry')>
>>> len(comb_space)
3

有关更多详细信息,请尝试教程或查看文档内容

特性

  • PermSpace 允许您将排列空间探索为Python序列。

    • 排列是在需要时生成的,因此可以轻松地创建非常大的排列空间,而不会产生很大的内存占用。

    • PermSpace 将会检测您序列中是否有重复元素,并将相同值的所有出现视为可交换的,而不是创建冗余排列。

    • 可以指定一个自定义域,而不仅仅是使用索引数字。

    • 您可以指定一些元素保持不变,因此它们将在所有排列中指向相同的值。(这对于将实验限制在原始排列空间的子集非常有用。)

    • 排列空间可以限制在特定程度的排列之内。(排列的度数是将其转换为排列所需的变换次数。)

    • 支持 k-排列

    • 您可以指定生成排列的自定义类型,因此您可以在它们上实现自己的功能。

  • CombSpace 允许您像探索 Python 序列一样探索组合空间。

  • MapSpace 类似于 Python 内置的 map,但它是一个允许索引访问的序列。

  • ProductSpace 类似于 Python 的 itertools.product,但它是一个允许索引访问的序列。

  • ChainSpace 类似于 Python 的 itertools.chain,但它是一个允许索引访问的序列。

  • SelectionSpace 是一个包含序列中所有选择的集合,包括所有可能的长度。

  • Bag 类类似于 Python 的 collections.Counter,但它提供了更多功能,如更多 袋之间的算术运算袋之间的比较 等。(它之所以能这样做,是因为与 Python 的 collections.Counter 不同,它只允许自然数作为键。)

  • 提供了 FrozenBagOrderedBagFrozenOrderedBag 类,它们是 Bag 的变体。

要求

  • Python,版本 2.6、2.7 或 3.3 或更高版本。如果您是 Python 新手,请从此处下载最新版本。

  • Setuptools.

安装

使用 pip 安装 Combi

$ pip install combi

社区

GitHub 上的 Combi:https://github.com/cool-RR/combi 欢迎fork和发送pull请求!

有三个 Combi 组,即邮件列表


Combi 由 Ram Rachum 创建。我提供 Python 和 Django 开发服务

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

combi-1.1.4.tar.gz (716.0 kB 查看哈希值)

上传时间

构建分发

combi-1.1.4-py3-none-any.whl (250.1 kB 查看哈希值)

上传时间 Python 3

combi-1.1.4-py2-none-any.whl (310.7 kB 查看哈希值)

上传时间 Python 2

由支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面