一组多种类型的多元数(蛇、树等)
polyenum的Python项目详细描述
此存储库的文件允许根据 詹森的算法。代码是用python编写的,但已经过优化 使用cython。
路线图
- 更新polyenum包中的docstring(枚举数、数据结构 模块)。
- Enhance–North Snake选项的实现。排除标准 对于任何 找不到模式x...0...x的北蛇行。自从 算法建立一列又一列的多胺,这将是一个好主意 制作所有“左蛇”并旋转结果。
- 创建测试套件。
- 实现最小连接问题的knuth算法(参见注释 在源代码中)。这将显著提高枚举的速度。 多胺。
- 考虑对称性,提高算法速度。它也将允许 生成游离/固定/单侧多胺。目前,仅修复 生成多胺。
- 添加其他类型的安装程序(MacPorts、Homebrew、Windows、Debian软件包, ArchLinux)。
- 添加用于提取统计信息和分类的脚本。
- 添加绘图脚本。
- 提高枚举部分定向蛇的速度(它使用python 布尔列表而不是布尔*)。此外,列式枚举可以 放弃更多的配置,而不是只看柱。
如何使用
脚本polyenum用于调用枚举代码。你可以 ./scripts/polyenum --help寻求帮助。
从git存储库
为了让脚本正常运行,必须编译cython库。 这是通过做来完成的:
$ ./configure $ make
然后,polyenum将在./scripts目录下可用。
示例
枚举给定区域的所有多元胺
让多元胺的面积为4。找到所有的多胺 内接在4号区域的一个特定矩形中,具体操作如下:
$ ./polyenum -a 4 --fixed Fixed polyomino enumeration. XXXX X X X X XX XX X-- XXX XX -X -X XXX X-- XX X- X- -X- XXX -X XX -X -XX XX- -X XX X- --X XXX -X -X XX XX- -XX X- XX -X XXX -X- X- XX X- XXX --X X- X- XX Time elapsed: 0.000782012939453125 seconds Number of polyominoes: 19
阅读polenum的手册页(man ./doc/polyenum.1)可以找到更多的例子。
安装
从Pypi dist release
简单地做:
python2.7 setup.py install
从git存储库
脚本可以安装在系统上。这很有用,因为它提供了 脚本的bash选项卡完成功能。要安装,只需执行以下操作:
$ ./configure $ make # make install
注意:大多数安装过程是由python完成的。在一些平台上, python可以在不在$path bash中的目录下安装脚本 环境变量。
bash完成
要安装bash completion,请执行以下操作
$ BASH_COMPLETION_DIR=$p ./configure $ make # make install
其中$p是bash完成脚本所在目录的路径 安装在您的系统上。