>>163 BASICでまともなプログラムを書くのはかったるいので手抜きだけど、こんな感じでどう? 100 'nCm is combination of m from n 110 'nCm = n!/(n-m)!m! = n・(n-1)…(n-m+2)・(n-m+1)/m・(m-1)…・2・1 120 C1=50*49*48*47*46/(5*4*3*2) 'combination of 5 from 50 130 C2=35*34*33/(3*2) 'combination of 3 from 35 140 C3=15*14/2 'combination of 2 from 15 (=50-35) 150 PRINT "The answer is ..." 160 PRINT C2;"x";C3;"/";C1;"=";C2*C3/C1 170 END
>>171 N88-BASICで百万回… 今時のPC+Winbas95でも最後まで動かす気にならないが、 一応、>>170の理論値に近い値が出そうだ。 1000 CLS: N1=1000: N2=1000: SUM=0 1010 FOR I=1 TO N1 1020 COUNT=0 'counter for the case that male member was 3. 1030 FOR J=1 TO N2 1040 N=50 'number of total members who haven't been selected. 1050 M=35 'number of male members who haven't been selected. 1060 FOR K=1 TO 5 1070 R=RND(1)*N 1080 IF R<=M THEN M=M-1 'male member has been selected. 1090 N=N-1 1100 NEXT K 1110 IF M=35-3 THEN COUNT=COUNT+1 '3 members were male. 1120 NEXT J 1130 RATIO=COUNT/N2: SUM=SUM+RATIO 1140 PRINT "RESULT(";I;"/";N1;")...";RATIO,"TOTAL:";SUM/I 1150 NEXT I 1160 END