をありがとうございます。次に例を示します。
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は数秒で処理されます。印刷に数分かかりました。
https://github.com/mwaskom/seaborn – mVChr
私は問題をあまり説明しないかもしれません。私は何かを視覚化したくありません。私の質問はグラフ理論です。私は、与えられた数の頂点に対して可能な3つの通常のグラフすべてのための隣接行列を生成したい。 –
http://www.mathe2.uni-bayreuth.de/markus/reggraphs.html – Ante