循环图度计算中的Sage-python错误?

2024-09-30 06:12:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Sage工作。Python似乎为循环可变/不可变图定义了不一致的度。这把我的计算搞砸了。这是怎么回事

q=graphs.CompleteGraph(2)
q.allow_loops(True)
q.allow_multiple_edges(True)
q.add_edge([1,1])
a=q.copy(immutable=True)
b=q.copy(immutable=False)

sage: a==b
True
sage: a.degree()
[1, 2]
sage: b.degree()
[1, 3]

Tags: addtrue定义multipleimmutablesagecopyallow
1条回答
网友
1楼 · 发布于 2024-09-30 06:12:51

这是个讨厌的虫子。这就是原因

sage: a._backend
<class 'sage.graphs.base.static_sparse_backend.StaticSparseBackend'>
sage: b._backend
<class 'sage.graphs.base.sparse_graph.SparseGraphBackend'>

在通常的后端,对于无向图有这样的代码

    if self._loops and self.has_edge(v, v, None):
        if self._multiple_edges:
            d += len(self.get_edge_label(v, v))
        else:
            d += 1

在静态模式下,我们只需要

        else:
            return cg.out_degree(v)

相关问题 更多 >

    热门问题