Python计算n*n网格生成树数目的方法源码,需要用到Python math模块中的方法。这是一篇关于Python算法分析相关的文章,对于理科比较好的同学可能没什么难度。Python算法方法不是强项的朋友们,如果有遇到Python 生成树数目计算之类问题的时候,可以参考下,希望对大家能有所帮助。
Python计算n*n网格生成树数目的方法源码如下:
from math import cos
#导入模块方法
#www.iplaypy.com
#定义函数,正式代码部分开始
def eigenvalues_of_laplacian(n):
ew = [2*(2-cos(i*pi/n)-cos(j*pi/n)) for i in range(n) for j in range(n)]
return ew
def num_of_spanning_trees(n):
ew = eigenvalues_of_laplacian(n)
return reduce(lambda x,y:x*y, ew[1:])/n**2
如上源码中用了一行代码的形式,对于初学者来说会比较难于理解。建议初学Python的朋友们要条理清晰的把代码写出来,尽量不要用一行搞定的形式。
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/algorithm/a2598.html
相关文章 Recommend