Multifactorial: Difference between revisions

Content added Content deleted
(→‎Sequence solution: Made output nicer looking.)
Line 1,518: Line 1,518:
<lang r>mfact<-function(n,deg){prod(seq(from = n, to = 1, by = -deg))}
<lang r>mfact<-function(n,deg){prod(seq(from = n, to = 1, by = -deg))}
outer(1:10,1:5,Vectorize(mfact))</lang>
outer(1:10,1:5,Vectorize(mfact))</lang>
If we really insist on a pretty table, we can do this:
If we really insist on a pretty table, then we can add some names and transpose the output.
<lang r>mfact<-function(n,deg){prod(seq(from = n, to = 1, by = -deg))}
<lang r>mfact<-function(n,deg){prod(seq(from = n, to = 1, by = -deg))}
n<-1:10; names(n)<-n
n<-1:10; names(n)<-n
deg<-1:5; names(deg)<-paste("Degree",deg)
deg<-1:5; names(deg)<-paste("Degree",deg)
outer(n,deg,Vectorize(mfact))</lang>
t(outer(n,deg,Vectorize(mfact)))</lang>
{{out}}
{{out}}
<pre>> outer(1:10,1:5,Vectorize(mfact))
<pre>> outer(1:10,1:5,Vectorize(mfact))
Line 1,537: Line 1,537:
[10,] 3628800 3840 280 120 50
[10,] 3628800 3840 280 120 50


> outer(n,deg,Vectorize(mfact))#"Pretty" version
> t(outer(n,deg,Vectorize(mfact)))#"Pretty" version
1 2 3 4 5 6 7 8 9 10
Degree 1 Degree 2 Degree 3 Degree 4 Degree 5
Degree 1 1 2 6 24 120 720 5040 40320 362880 3628800
1 1 1 1 1 1
2 2 2 2 2 2
Degree 2 1 2 3 8 15 48 105 384 945 3840
3 6 3 3 3 3
Degree 3 1 2 3 4 10 18 28 80 162 280
4 24 8 4 4 4
Degree 4 1 2 3 4 5 12 21 32 45 120
5 120 15 10 5 5
Degree 5 1 2 3 4 5 6 14 24 36 50</pre>
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}}==
=={{header|Racket}}==