1 Star 0 Fork 0

ljfirst/algo-go-sdk

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Determinant.go 1.13 KB
一键复制 编辑 原始数据 按行查看 历史
ljfirst 提交于 2023-07-04 23:35 +08:00 . feat: PriorityQueue
package matrix
import C "gitee.com/ljfirst/algo-go-sdk/common/constant"
/**
* @author ljfirst
* @version V1.0
* @date 2023/8/1 21:02
* @author-Email ljfirst@mail.ustc.edu.cn
* @blogURL https://blog.csdn.net/ljfirst
* @description 矩阵行列式
**/
type Determinant struct {
}
func (m *Determinant) CalMethod(matrix [][]int) int {
if len(matrix) == 1 {
return matrix[0][0]
}
result, flagC := 0, 1
for i := 0; i < len(matrix); i++ {
f := 0
nextMatrix := make([][]int, len(matrix)-1)
for j := 0; j < len(matrix); j++ {
if i == j {
f = -1
continue
}
nextMatrix[j+f] = make([]int, len(matrix)-1)
c := 0
for l := 0; l < len(matrix); l++ {
if l == 0 {
c = -1
continue
}
nextMatrix[j+f][l+c] = matrix[j][l]
}
}
result += flagC * matrix[i][0] * m.CalMethod(nextMatrix)
flagC = -1 * flagC
}
return result
}
func (m *Determinant) GetAttribute() *C.Attribute {
return &C.Attribute{
Tags: []string{},
Desc: &C.Desc{
Name: "Determinant",
NameCn: "矩阵行列式",
Description: "",
ParamsDesc: map[string]string{
},
Example: map[int]string{
},
},
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/ljfirst/algo-go-sdk.git
git@gitee.com:ljfirst/algo-go-sdk.git
ljfirst
algo-go-sdk
algo-go-sdk
v1.0.3

搜索帮助