python如何统计,python的统计函数

  python如何统计,python的统计函数

  我觉得这个教程不是按照传统思维写的。毕竟,实践是最好的学习方法。在这里学习了基本的数据类型后,我跳到Python来计算一个方阵的行列式。题目中提到的自大菱形矩阵是数学中的经典例子之一,但是这个程序也可以计算一般的方阵。

  数学知识会自动跳过,不懂请维基。比如冷傲的钻石矩阵是什么?如何用行列展开法计算矩阵的行列式?

  骄傲的钻石矩阵的产生

  这里,我们给出了一种生成菱形行列式的方法,其中使用了链表(二维数组)的数据结构。

  dim=3

  #生成给定维度的虚拟矩阵

  m=[(j 1)* * I for I in range(dim)]for j in range(dim)]

  看到了吗?这不是很简单吗?实际上,这里I是列标签,J是行标签。range(3)生成list:[0,1,2],每个[]使用一个for循环生成对应的(I,j)元素。

  [图像上传失败.(图片-a379b 5-1510020402646)I)

  因此,上面生成的矩阵是:

  [图像上传失败.(图片-b796f5-1510020402646)]

  矩阵维数,子矩阵,行列式

  对于完整的源代码,为了按行或列计算行列式,我们需要:

  SubM函数,输入一个矩阵,以及行列的位置,返回去掉行列的子矩阵。

  DetM函数,计算行列式。

  其中第一个if使用dimM这种矩阵维数检测功能来判断是否是方阵。然后使用if进行递归调用。中间有几条注释,都是我在写的过程中保留的,方便调试。同样,我也使用了一个sys.exit()来忽略它后面的所有代码。

  校准_检测. py

  # -*-编码:utf-8 -*-

  导入系统

  dim=3

  #生成给定维度的虚拟矩阵

  m=[(j 1)* * I for I in range(dim)]for j in range(dim)]

  def printM(M):

  对于M中的行:

  对于行中的列:

  print(col,end= )

  打印( \n )

  def dimM(M):

  dim=[1,len(M[0]),len(M[0])]

  对于范围内的I(len(M)):

  dim[0]=len(M)

  dim[1]=min(dim[1],len(M[i]))

  dim[2]=max(dim[2],len(M[i]))

  if dim[1]==dim[2]:

  返回dim[0:2]

  否则:

  返回dim

  def subM(M,row,col):

  #通过移除(row,col)返回M的子矩阵

  sM=[rM.copy() for rM in M]

  del sM[row]

  对于sM中的rM:

  del rM[col]

  返回[elm for elm in sM if elm!=[] ]

  def detM( M):

  如果dimM(M)[0]!=dimM(M)[1]或len(dimM(M))!=2:

  返回‘请给出一个方阵!’

  如果len(M)==1:

  返回M[0][0]

  否则:

  expandM=0

  对于范围内的I(len(M)):

  # print(矩阵是:\n )

  # printM(M)

  # print((row,col)=,(i 1,1), \n的子矩阵,(i 1,1),:\ n )

  # printM(subM(M,I,0))

  expandM=(-1)* *(I)* M[I][0]* detM(subM(M,I,0))

  返回扩展dM

  #打印(内存(M))

  #print(subM(M,1,1))

  printM(M)

  打印(上述矩阵的确定为:)

  print(detM(M))

  print(错误检测的测试(必须是方阵):)

  打印(detM([[1],[1,2]]))

  sys.exit()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: