more_itertools的distinct_permutations排序问题及Halin图生成异常求助
生成非同构Halin图的代码运行问题
Halin图是一种将无二度顶点的树嵌入平面后,添加环连接树的叶节点所构造的图。

我在MathOverflow上发布了生成20阶非同构Halin图的问题,用户Peter Taylor给出了解答。但在Linux系统运行他的Python代码时出现如下错误:
python3.10/site-packages/more_itertools/more.py文件中,distinct_permutations函数第727行报错:items = sorted(iterable) TypeError: 'RootedTree'实例间不支持'<'操作
问题出在第三方库more_itertools的distinct_permutations函数存在排序操作,而RootedTree实例未定义比较方法。
我尝试了两种解决方式:
- 将
distinct_permutations(self.children)替换为permutations(self.children),代码可运行但速度极慢。 - 在RootedTree类中添加
def __lt__(self, other): return self.size() < other.size(),速度恢复正常,但生成的数据从n=19开始与A346779序列不符,可能影响Halin图生成的正确性。
我不确定如何获取A346779的正确序列,虽与Peter Taylor多次讨论,但他表示代码在其电脑上运行正常,寻求解决方案。
内容的提问来源于stack exchange,提问作者licheng
相关产品推荐
相关产品推荐

