|
newkid 发表于 2012-10-5 05:12 ![]()
野花的答案:
WITH d AS (
扩展到4次投掷
WITH d AS (
SELECT N1+N2 n
FROM (SELECT LEVEL N1 FROM DUAL CONNECT BY LEVEL<=6)
,(SELECT LEVEL N2 FROM DUAL CONNECT BY LEVEL<=6)
)
SELECT COUNT(CASE WHEN d1.n=7 AND d2.n=7 OR d2.n=7 AND d3.n=7 OR d3.n=7 AND d4.n=7 THEN 1 END) CNT1
,COUNT(CASE WHEN d1.n<d2.n AND d2.n<d3.n OR d2.n<d3.n AND d3.n<d4.n THEN 1 END) CNT2
FROM d d1,d d2,d d3,d d4;
结果从2376/5370=44.25%下降为
124416/354117=35.13%
扩展到5个时,我改了一下写法,在我的本本上跑了35s
结果是5839776/18536904=31.50%
WITH d AS (
SELECT N1+N2 n
FROM (SELECT LEVEL N1 FROM DUAL CONNECT BY LEVEL<=6)
,(SELECT LEVEL N2 FROM DUAL CONNECT BY LEVEL<=6)
)
SELECT COUNT(CASE WHEN d1.n=7 AND d2.n=7 OR d2.n=7 AND d3.n=7 OR d3.n=7 AND d4.n=7 OR d4.n=7 AND d5.n=7 THEN 1 END) CNT1
,COUNT(CASE WHEN d2.n BETWEEN d1.n+1 AND d3.n-1 OR d3.n BETWEEN d2.n+1 AND d4.n-1 OR d4.n BETWEEN d3.n+1 AND d5.n-1 THEN 1 END) CNT2
FROM d d1,d d2,d d3,d d4,d d5;
猜测最终结果是3/10 |
|