Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,22 @@
package main
import (
"fmt"
"math/big"
)
func main() {
fmt.Println(factorial(800))
}
func factorial(n int64) *big.Int {
if n < 0 {
return nil
}
r := big.NewInt(1)
var f big.Int
for i := int64(2); i <= n; i++ {
r.Mul(r, f.SetInt64(i))
}
return r
}

View file

@ -0,0 +1,15 @@
package main
import (
"math/big"
"fmt"
)
func factorial(n int64) *big.Int {
var z big.Int
return z.MulRange(1, n)
}
func main() {
fmt.Println(factorial(800))
}

View file

@ -0,0 +1,17 @@
package main
import (
"fmt"
"math"
)
func factorial(n float64) float64 {
return math.Gamma(n + 1)
}
func main() {
for i := 0.; i <= 10; i++ {
fmt.Println(i, factorial(i))
}
fmt.Println(100, factorial(100))
}

View file

@ -0,0 +1,26 @@
package main
import (
"fmt"
"math"
"math/big"
)
func lfactorial(n float64) float64 {
l, _ := math.Lgamma(n + 1)
return l
}
func factorial(n float64) *big.Float {
i, frac := math.Modf(lfactorial(n) * math.Log2E)
z := big.NewFloat(math.Exp2(frac))
return z.SetMantExp(z, int(i))
}
func main() {
for i := 0.; i <= 10; i++ {
fmt.Println(i, factorial(i))
}
fmt.Println(100, factorial(100))
fmt.Println(800, factorial(800))
}