楼主不会排列组合基本知识吗?那我帮你讲解一下为书写方便,用(n,m)表示从n个里面取m个的取法数目.则
(n,m)=n!/(m!*(n-m)!)
其中n!=n*(n-1)*(n-2)...*2*1
对于第一问:(70,20)=70!/(50!*20!)=70*69*68*67...*51/(20*19*...*2*1)=161884603662657900
对于第二问:考虑有20个连号的组合有51个
19个连号的有50*2+49*50=2550个
18个连号的有2*(51,2)+51*(50,2)=62475
17个连号的有2*(52,3)+52*(51,3)=1127100
16个连号的有2*(53,4)+53*(52,4)=14934075
15个连号的有2*(54,5)+54*(53,5)=161288010
14个连号的有2*(55,6)+54*(54,6)=1395826497
13个连号的有2*(56,7)+54*(55,7)=11421931950
12个连号的有2*(57,8)+54*(56,8)=80011503000
11个连号的有2*(58,9)+54*(57,9)=507106721550
合计600113397207个有10个以上连号的组合
所以最后没有减去得161884003549260670个.由此看出,这个时候连号10个以上连号的不怎么影响原来的结果了.数量级差太多了.