gpt4 book ai didi

python - 如何在python中生成给定顶点数的所有3个正则图

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:28 25 4
gpt4 key购买 nike

我想生成具有给定数量顶点的所有三正则图,以检查某些属性是否适用于所有这些。检查属性很容易,但首先我必须有效地生成图表。

有人可以帮我生成这些图(作为邻接矩阵)或给我一个包含此类图的文件。顶点数小于 24。

谢谢

最佳答案

可以将 scd 文件作为二进制读入 python 中,并以与readscd.c 文件中相同的方式转换数据。这是一个例子:

import numpy

def convert(filename, n, k=3):
num_edges = n*k/2
f = open(filename, "r")
values = numpy.fromfile(f, dtype=numpy.uint8)
read_values = 0
code = []
while read_values < len(values):
# dekomp(file,code)
samebits = values.item(read_values)
read_values += 1
readbits = num_edges - samebits
code = code[:samebits] + list(values[read_values:read_values+readbits])
read_values += readbits
# codetonlist(code,l)
graph = numpy.zeros((n, n), dtype=numpy.uint8)
v = 0
count = [0] * n
for w in code:
w -= 1 # We are indexing from 0
while(count[v] == k):
v += 1
# edge (v, w)
graph.itemset((v, w), 1)
graph.itemset((w, v), 1)
count[v] += 1
count[w] += 1
yield graph

if __name__ == '__main__':
import sys
filename = sys.argv[1]
nk = filename.split('.')[0].split('_')
for g in convert(filename, int(nk[0]), int(nk[1])):
print g

文件 18_3_3.scd 将在几秒钟内处理完毕。打印需要几分钟。

关于python - 如何在python中生成给定顶点数的所有3个正则图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41355405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com