Jump to content

Multifactorial: Difference between revisions

→‎{{header|R}}: Sequence solution
m (→‎{{header|Wren}}: Library name change.)
(→‎{{header|R}}: Sequence solution)
Line 1,504:
 
=={{header|R}}==
===Recursive solution===
<lang R>
<lang R>#x is Input
#n is Factorial Number
multifactorial=function(x,n){
Line 1,513:
return(x*multifactorial(x-n,n))
}
}</lang R>
}
===Sequence solution===
</lang>
This task doesn't use big enough numbers to need efficient code, so R's can solve this very succinctly.
<lang r>mfact<-function(n,deg){prod(seq(from = n, to = 1, by = -deg))}
outer(1:10,1:5,Vectorize(mfact))</lang>
If we really insist on a pretty table, we can do this:
<lang r>mfact<-function(n,deg){prod(seq(from = n, to = 1, by = -deg))}
n<-1:10; names(n)<-n
deg<-1:5; names(deg)<-paste("Degree",deg)
outer(n,deg,Vectorize(mfact))</lang>
{{out}}
<pre>> outer(1:10,1:5,Vectorize(mfact))
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 6 3 3 3 3
[4,] 24 8 4 4 4
[5,] 120 15 10 5 5
[6,] 720 48 18 12 6
[7,] 5040 105 28 21 14
[8,] 40320 384 80 32 24
[9,] 362880 945 162 45 36
[10,] 3628800 3840 280 120 50
 
> outer(n,deg,Vectorize(mfact))#"Pretty" version
Degree 1 Degree 2 Degree 3 Degree 4 Degree 5
1 1 1 1 1 1
2 2 2 2 2 2
3 6 3 3 3 3
4 24 8 4 4 4
5 120 15 10 5 5
6 720 48 18 12 6
7 5040 105 28 21 14
8 40320 384 80 32 24
9 362880 945 162 45 36
10 3628800 3840 280 120 50</pre>
 
=={{header|Racket}}==
331

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.