Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
81
Task/Pascal-matrix-generation/Go/pascal-matrix-generation.go
Normal file
81
Task/Pascal-matrix-generation/Go/pascal-matrix-generation.go
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func binomial(n, k int) int {
|
||||
if n < k {
|
||||
return 0
|
||||
}
|
||||
if n == 0 || k == 0 {
|
||||
return 1
|
||||
}
|
||||
num := 1
|
||||
for i := k + 1; i <= n; i++ {
|
||||
num *= i
|
||||
}
|
||||
den := 1
|
||||
for i := 2; i <= n-k; i++ {
|
||||
den *= i
|
||||
}
|
||||
return num / den
|
||||
}
|
||||
|
||||
func pascalUpperTriangular(n int) [][]int {
|
||||
m := make([][]int, n)
|
||||
for i := 0; i < n; i++ {
|
||||
m[i] = make([]int, n)
|
||||
for j := 0; j < n; j++ {
|
||||
m[i][j] = binomial(j, i)
|
||||
}
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
func pascalLowerTriangular(n int) [][]int {
|
||||
m := make([][]int, n)
|
||||
for i := 0; i < n; i++ {
|
||||
m[i] = make([]int, n)
|
||||
for j := 0; j < n; j++ {
|
||||
m[i][j] = binomial(i, j)
|
||||
}
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
func pascalSymmetric(n int) [][]int {
|
||||
m := make([][]int, n)
|
||||
for i := 0; i < n; i++ {
|
||||
m[i] = make([]int, n)
|
||||
for j := 0; j < n; j++ {
|
||||
m[i][j] = binomial(i+j, i)
|
||||
}
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
func printMatrix(title string, m [][]int) {
|
||||
n := len(m)
|
||||
fmt.Println(title)
|
||||
fmt.Print("[")
|
||||
for i := 0; i < n; i++ {
|
||||
if i > 0 {
|
||||
fmt.Print(" ")
|
||||
}
|
||||
mi := strings.Replace(fmt.Sprint(m[i]), " ", ", ", -1)
|
||||
fmt.Print(mi)
|
||||
if i < n-1 {
|
||||
fmt.Println(",")
|
||||
} else {
|
||||
fmt.Println("]\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
printMatrix("Pascal upper-triangular matrix", pascalUpperTriangular(5))
|
||||
printMatrix("Pascal lower-triangular matrix", pascalLowerTriangular(5))
|
||||
printMatrix("Pascal symmetric matrix", pascalSymmetric(5))
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue