如图A1-L1(2, 5, 8, 14, 23, 28, 35, 58, 66, 69, 75, 88)中的12个数字,从这12个数字中任选9个数进行排列组合,一共有220中组合,如何通过函数公式从A4开始把这220种排列组合全部罗列出来。
12选9的组合,方案数量为:
C(12,9) = 12!/9!/(12-9)! = 220个。
要列出这220个组合方案,要么手工,要么编程,单靠公式无法做到。
附:fortran代码及其运行结果
补充一下,fortran代码:
integer a(9)
call cc(a,1)
end
recursive subroutine cc (a,n)
integer a (9), s (12)
data m /0/, s/2,5,8,14,23,28,35,58,66,69,75,88/
save m
np =1
if (n.gt.1) np=a (n-1)+1
do i=np ,12
a(n)=i
if(n.eq.9) then
m=m+1
write (*,'(9i3,a$)') s ( a ),' /'
if (mod(m,3).eq.0) write (*,*)
else
call cc(a,n+1)
end if
end do
if (n.eq.1) write (*,'(/ag0)') ' total =',m
end