June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
30
Task/Multifactorial/Aime/multifactorial.aime
Normal file
30
Task/Multifactorial/Aime/multifactorial.aime
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
integer
|
||||
mf(integer a, integer n)
|
||||
{
|
||||
integer o;
|
||||
|
||||
o = 1;
|
||||
do {
|
||||
o *= a;
|
||||
} while (0 < (a -= n));
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
integer
|
||||
main(void)
|
||||
{
|
||||
integer i, j;
|
||||
|
||||
i = 0;
|
||||
while ((i += 1) <= 5) {
|
||||
o_("degree ", i, ":");
|
||||
j = 0;
|
||||
while ((j += 1) <= 10) {
|
||||
o_("\t", mf(j, i));
|
||||
}
|
||||
o_("\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
17
Task/Multifactorial/BBC-BASIC/multifactorial.bbc
Normal file
17
Task/Multifactorial/BBC-BASIC/multifactorial.bbc
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
REM >multifact
|
||||
FOR i% = 1 TO 5
|
||||
PRINT "Degree "; i%; ":";
|
||||
FOR j% = 1 TO 10
|
||||
PRINT " ";FNmultifact(j%, i%);
|
||||
NEXT
|
||||
PRINT
|
||||
NEXT
|
||||
END
|
||||
:
|
||||
DEF FNmultifact(n%, degree%)
|
||||
LOCAL i%, mfact%
|
||||
mfact% = 1
|
||||
FOR i% = n% TO 1 STEP -degree%
|
||||
mfact% = mfact% * i%
|
||||
NEXT
|
||||
= mfact%
|
||||
15
Task/Multifactorial/Factor/multifactorial.factor
Normal file
15
Task/Multifactorial/Factor/multifactorial.factor
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
USING: formatting io kernel math math.ranges prettyprint
|
||||
sequences ;
|
||||
IN: rosetta-code.multifactorial
|
||||
|
||||
: multifactorial ( n degree -- m )
|
||||
neg 1 swap <range> product ;
|
||||
|
||||
: mf-row ( degree -- )
|
||||
dup "Degree %d: " printf
|
||||
10 [1,b] [ swap multifactorial pprint bl ] with each ;
|
||||
|
||||
: main ( -- )
|
||||
5 [1,b] [ mf-row nl ] each ;
|
||||
|
||||
MAIN: main
|
||||
|
|
@ -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
|
||||
|
|
|
|||
16
Task/Multifactorial/Maple/multifactorial.maple
Normal file
16
Task/Multifactorial/Maple/multifactorial.maple
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
f := proc (n, m)
|
||||
local fac, i;
|
||||
fac := 1;
|
||||
for i from n by -m to 1 do
|
||||
fac := fac*i;
|
||||
end do;
|
||||
return fac;
|
||||
end proc:
|
||||
|
||||
a:=Matrix(5,10):
|
||||
for i from 1 to 5 do
|
||||
for j from 1 to 10 do
|
||||
a[i,j]:=f(j,i);
|
||||
end do;
|
||||
end do;
|
||||
a;
|
||||
Loading…
Add table
Add a link
Reference in a new issue