我写了一个递归函数,它完全生成具有特定特征的矩阵。
其功能如下:def heavies(rowSums,colSums,colIndex,matH):
if colIndex == len(colSums) - 1:
for stuff in heavy_col_permutations(rowSums,colSums,colIndex):
matH[:,colIndex] = stuff[0]
yield matH.copy()
return
for stuff in heavy_col_permutations(rowSums,colSums,colIndex):
matH[:,colIndex] = stuff[0]
rowSums = stuff[1]
for matrix in heavies(rowSums,colSums,colIndex+1,matH):
yield matrix
重列置换是一个函数,它只返回一个矩阵的列,它的特征也是我需要的。在
问题是,由于heavies产生了大量的矩阵,它占用了太多的内存。
最后我一个接一个地从另一个函数调用这个函数,最终占用了太多的RAM,我的进程被终止了(我在一个有内存上限的服务器上运行这个函数)。我怎么写才能让它使用更少的内存?在
程序看起来像:
^{pr2}$
我知道,重负荷函数是大量消耗内存的地方,我只需要减少它。在
本文探讨了一种递归生成特定特征矩阵的算法,并提出了在内存受限环境下如何优化该算法以减少内存占用的问题。
573

被折叠的 条评论
为什么被折叠?



