June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,18 +1,14 @@
function multifact{T<:Integer,U<:Integer}(n::T, k::U)
-1<n && 0<k || throw(DomainError())
1 < k || return factorial(n)
r = one(T)
for i in n:-k:2
r *= i
end
return r
function multifact(n::Integer, k::Integer)
n > 0 && k > 0 || throw(DomainError())
k > 1 || factorial(n)
return prod(n:-k:2)
end
khi = 5
nhi = 10
println("Showing multifactorial for n in [1,", nhi, "] and k in [1,", khi, "].")
const khi = 5
const nhi = 10
println("Showing multifactorial for n in [1, $nhi] and k in [1, $khi].")
for k = 1:khi
a = Int64[multifact(i, k) for i in 1:nhi]
lab = "n"*"!"^k
println(@sprintf(" %-6s => ", lab), a)
a = multifact.(1:nhi, k)
lab = "n" * "!" ^ k
@printf(" %-6s → %s\n", lab, a)
end