|
已发章。
我的写法:
WITH t(s1,s2,path) AS (
SELECT 0,0,cast('' as varchar2(10)) FROM DUAL
UNION ALL
SELECT DECODE(n,1,s1+1,s1)
,DECODE(n,2,s2+1,s2)
,path||n
FROM t,(SELECT 1 n FROM DUAL UNION ALL SELECT 2 FROM DUAL)
WHERE s1<=5 and s2<=4
)
select count(*) cnt
,count(case when substr(path,-2)='11' then 1 end)
from t where s1=5 and s2=4;
126 35
手算:
4个进球分布到5个进球之中(6个位置可放),把4个分组:
1组:C(6,1) = 6
2组:13,22,31 三种,C(6,2)*3 = 45
3组:112,121,211 共3种,C(6,3)*3 = 60
4组:1111 一种,C(6,4)*1 = 15
共126
最后两个进球固定,4个进球分布到3个进球之中(4个位置可放),把4个分组:
1组:C(4,1) = 4
2组:13,22,31 三种,C(4,2)*3 = 18
3组:112,121,211 共3种,C(4,3)*3 = 12
4组:1111 一种,C(4,4)*1 = 1
共35
|
|