: Maxima数学A自習教材開発
教材の概要
1場合の数と確率 2)確率
 5.事象と確率
 6.確率の基本性質
 7.独立な試行と確率
 8.条件付き確率
 102.補充問題・章末問題

Maxima数学A自習教材試行報告用紙(Word)
Maxima数学A自習教材試行報告用紙(PDF)

: 教材の概要

活動時間 
 自宅での予習か授業初めの5分程度
活動概要
 1 タブレット等を用いてトライ
  1) 教科書の該当ページを開く
  2) このWebページを開く
  3) Maxima on lineのWebページを開く
  4) 該当コマンドをMaximaOnLineにコピペして、実行
 2 自分なりの感触、着想
  1) 自分なりに、実行結果を見て、気づいたり感じたりすることがないか、考えてみる。
  2) ワークシートに、考えてみたこと(意見・質問・感じたこと)を書く
  3) ワークシートを、事前に提出する場合は、課題提出フォームを使うこと。
 3 問題の雰囲気を2で感じてから、授業へ
  1) 班活動などで自分の考えを仲間に伝える
  2) 仲間の考えを受け止める
  3) 筋が通って、見通しのよい解法、数学的な論点をうまく処理した解法をまとめる


http://www.ac.cyberhome.ne.jp/~konoha/KNOPPIX/MaximaBook.pdf
参照テキスト
 数研出版新編数学A

: 第1章場合の数と確率
 第2節 確率
  5.事象と確率

   A 事柄の起こりやすさ
◆コマンド番号501
●事柄の起こりやすさ
●●●●●●●●●●●●●●●●
kill(all);
MONDAI1:"501 赤玉1個、白玉3個入った袋から2個をでたらめに取り出すとき、赤玉r,白玉3個x,y,zとし、順列として起こる場合をすべて挙げると(◆修正部分1)" $
KOUSATU:"4つの玉をすべて区別して、並べることと同じだから・・・(◆修正部分1)";

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if k=1 then (
/**//**//**//**//**//**/if k=kM then lJee:endcons(lP[3],lJe)else lJee:endcons(lP[7],lJe),
/**//**//**//**//**//**/lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)elseif k=kM then(
/**//**//**//**//**//**/lJeee:[" "],lM:length(lJee),
/**//**//**//**//**//**/for l:2 step 2 thru lM -2 do(
/**//**//**//**//**//**//**/if lJee[l]=lP[7]or lJee[l]=lP[5] or lJee[l]=lP[4] then (lJeee:endcons(lP[5],lJeee),lJeee:endcons(" ",lJeee))
/**//**//**//**//**//**//**//**/else (lJeee:endcons(" ",lJeee),lJeee:endcons(" ",lJeee)) ),
/**//**//**//**//**//**/lJee:endcons(lP[6],lJeee),lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)else(lJee:endcons(lP[4],lJ0),lJee:endcons(last(lB[idB+k]),lJee)),
/**//**//**//**/lJ:endcons(lJee,lJ) /*,display(lJ)*/)
/**//**//**/,idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:4;M2:2;/*""*/
MeP:nPr(M1,M2);/*"(◆修正部分2)"*/
KOTAE:[MeP,"答え"]$
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(4,2,"N");/*"重複を許さず("N"),1~4の番号を2つ並べる並べ方(◆修正部分3)"*/
print("lA",lA)$
Nm:[["r","w","x","y"],["r","w","x","y"]]$/*"第1-2成分がr,w,x,y()"*/
Cn(Nm)$/*"番号をr,w,x,yに変換"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print(lJ[i]))$/*"樹形図の表示(最終結果は最後のブロック)"*/
print(MONDAI1)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"501 赤玉1個、白玉3個入った袋から2個をでたらめに取り出すとき、赤玉r,白玉3個x,y,zとし、組み合わせとして起こる場合をすべて挙げると(◆修正部分1)" $
KOUSATU:"4つの玉をすべて区別して、取り出したものを小さいものから順に並べることと同じだから・・・(◆修正部分1)";
MeP:nCr(M1,M2);/*"(◆修正部分2)"*/
nXr(4,2,"G");/*"昇順で("G"),1~4の番号を2つ並べる並べ方(◆修正部分3)"*/


   B 試行と事象
◆コマンド番号502
●全事象・根元事象
●●●●●●●●●●●●●●●●
kill(all) $
MONDAI1:"例8・練習32 502 10円硬貨、100円硬貨、各1枚を投げたとき、表裏の出方の全事象は(◆修正部分1)" $
KOUSATU:"10円硬貨の表・裏、100円硬貨の表・裏を順に記録することと同じで、表(o)裏(u)を重複を許して2つ並べることと同じだから・・・(◆修正部分1)";

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if k=1 then (
/**//**//**//**//**//**/if k=kM then lJee:endcons(lP[3],lJe)else lJee:endcons(lP[7],lJe),
/**//**//**//**//**//**/lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)elseif k=kM then(
/**//**//**//**//**//**/lJeee:[" "],lM:length(lJee),
/**//**//**//**//**//**/for l:2 step 2 thru lM -2 do(
/**//**//**//**//**//**//**/if lJee[l]=lP[7]or lJee[l]=lP[5] or lJee[l]=lP[4] then (lJeee:endcons(lP[5],lJeee),lJeee:endcons(" ",lJeee))
/**//**//**//**//**//**//**//**/else (lJeee:endcons(" ",lJeee),lJeee:endcons(" ",lJeee)) ),
/**//**//**//**//**//**/lJee:endcons(lP[6],lJeee),lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)else(lJee:endcons(lP[4],lJ0),lJee:endcons(last(lB[idB+k]),lJee)),
/**//**//**//**/lJ:endcons(lJee,lJ) /*,display(lJ)*/)
/**//**//**/,idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:2;/*""*/
MeP:2^M1;/*"(◆修正部分2)"*/
KOTAE:[MeP,"答え"]$
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(2,2,"A");/*"重複を許して("A"),1~2の番号を2つ並べる並べ方(◆修正部分3)"*/
print("lA",lA)$
Nm:[["o","u"],["o","u"]]$/*"第1-2成分がo,u(◆修正部分4)"*/
Cn(Nm)$/*"番号をo,uに変換"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print(lJ[i]))$/*"樹形図の表示(最終結果は最後のブロック)"*/
print(MONDAI1)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"例8・練習32 502 大小のサイコロ、各1個を投げたとき、表裏の出方の全事象は(◆修正部分1)" $
KOUSATU:"大小2個のサイコロの目1~6を順に記録することと同じで、1~6を重複を許して2つ並べることと同じだから・・・(◆修正部分1)";
MeP:6^M1;/*"(◆修正部分2)"*/
nXr(6,2,"A");/*"重複を許して("A"),1~6の番号を2つ並べる並べ方(◆修正部分3)"*/
Nm:[["1","2","3","4","5","6"],["1","2","3","4","5","6"]]$/*"第1-2成分が1~6(◆修正部分4)"*/


   C 同様に確からしい
◆コマンド番号503
●根元事象・同様に確からしい
●●●●●●●●●●●●●●●●
kill(all) $
MONDAI1:"例9・練習33 503 さいころを投げるとき、出る目が偶数となる確率は"/*(◆修正部分1)*/$
KOUSATU:"全事象と該当の事象の場合の数を考えて・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if k=1 then (
/**//**//**//**//**//**/if k=kM then lJee:endcons(lP[3],lJe)else lJee:endcons(lP[7],lJe),
/**//**//**//**//**//**/lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)elseif k=kM then(
/**//**//**//**//**//**/lJeee:[" "],lM:length(lJee),
/**//**//**//**//**//**/for l:2 step 2 thru lM -2 do(
/**//**//**//**//**//**//**/if lJee[l]=lP[7]or lJee[l]=lP[5] or lJee[l]=lP[4] then (lJeee:endcons(lP[5],lJeee),lJeee:endcons(" ",lJeee))
/**//**//**//**//**//**//**//**/else (lJeee:endcons(" ",lJeee),lJeee:endcons(" ",lJeee)) ),
/**//**//**//**//**//**/lJee:endcons(lP[6],lJeee),lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)else(lJee:endcons(lP[4],lJ0),lJee:endcons(last(lB[idB+k]),lJee)),
/**//**//**//**/lJ:endcons(lJee,lJ) /*,display(lJ)*/)
/**//**//**/,idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:6;M2:3;/**/
MeP:M2/M1;/**/
KOTAE:[MeP,"答え"]$
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(6,1,"N");/*"重複を許して("A"),1~6の番号を1つ並べる並べ方"*//**/

print("lA",lA)$
Nm:[["1","2","3","4","5","6"]]$/*"第1成分が1,2,3,4,5,6"*//**/
Cn(Nm)$/*"番号をo,uに変換"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
iM:length(lJ);for i:1 thru iM do(
print(lJ[i]))/*"樹形図の表示(最終結果は最後のブロック)"*/$
SUJIMITI:"全事象は( )通り、偶数の目が出る事象は( )通りだから・・・"/*(◆修正部分3)*/$
print(MONDAI1)$
print(SUJIMITI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"例9・練習33 503 さいころを投げるとき、出る目が3以上となる確率は(◆修正部分1)" $
KOUSATU:"全事象と該当の事象の場合の数を考えて・・・(◆修正部分1)";
M1:6;M2:4/*全事象の場合の数がM1、該当の場合の数がM2*//*(◆修正部分2)*/;
SUJIMITI:"全事象は( )通り、偶数の目が出る事象は( )通りだから・・・"/*(◆修正部分3)*/$


◆コマンド番号504
●根元事象・同様に確からしい
●●●●●●●●●●●●●●●●
kill(all) $
MONDAI1:"練習34 504 赤玉2個、白玉3個の入った袋から、1個を取り出すとき、赤玉の出る確率は"/*(◆修正部分1)*/$
KOUSATU:"赤玉2個を1.2と区別し、白玉3個をa,b,cと区別して、全事象と該当の事象の場合の数を考えて・・・"/**/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if k=1 then (
/**//**//**//**//**//**/if k=kM then lJee:endcons(lP[3],lJe)else lJee:endcons(lP[7],lJe),
/**//**//**//**//**//**/lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)elseif k=kM then(
/**//**//**//**//**//**/lJeee:[" "],lM:length(lJee),
/**//**//**//**//**//**/for l:2 step 2 thru lM -2 do(
/**//**//**//**//**//**//**/if lJee[l]=lP[7]or lJee[l]=lP[5] or lJee[l]=lP[4] then (lJeee:endcons(lP[5],lJeee),lJeee:endcons(" ",lJeee))
/**//**//**//**//**//**//**//**/else (lJeee:endcons(" ",lJeee),lJeee:endcons(" ",lJeee)) ),
/**//**//**//**//**//**/lJee:endcons(lP[6],lJeee),lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)else(lJee:endcons(lP[4],lJ0),lJee:endcons(last(lB[idB+k]),lJee)),
/**//**//**//**/lJ:endcons(lJee,lJ) /*,display(lJ)*/)
/**//**//**/,idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:5;M2:2/*全事象の場合の数がM1、該当の場合の数がM2*//*(◆修正部分2)*/;
MeP:M2/M1;/**/
KOTAE:[MeP,"答え"]$
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(5,1,"N");/*"重複を許さず("N"),1~5の番号を1つ並べる並べ方"*//**/

print("lA",lA)$
Nm:[["1","2","a","b","c"]]$/*"第1成分が1,2,a,b,c"*//**/
Cn(Nm)$/*"番号をo,uに変換"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
iM:length(lJ);for i:1 thru iM do(
print(lJ[i]))/*"樹形図の表示(最終結果は最後のブロック)"*/$
SUJIMITI:"全事象は( )通り、赤玉が出る事象は( )通りだから・・・"/**/$
print(MONDAI1)$
print(SUJIMITI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"練習34 504 赤玉2個、白玉3個の入った袋から、1個を取り出すとき、白玉の出る確率は"/*(◆修正部分1)*/$
M1:5;M2:3/*全事象の場合の数がM1、該当の場合の数がM2*//*(◆修正部分2)*/;


◆コマンド番号505
●根元事象・同様に確からしい
●●●●●●●●●●●●●●●●
kill(all) $
MONDAI1:"例10・練習35 505 3枚の硬貨を投げ、1枚だけ表が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"硬貨を左,中,右と区別し、表o、裏uとして、重複を許して順に3つ並べるのが全事象、左,中,右から1つ選ぶ組合せが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if k=1 then (
/**//**//**//**//**//**/if k=kM then lJee:endcons(lP[3],lJe)else lJee:endcons(lP[7],lJe),
/**//**//**//**//**//**/lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)elseif k=kM then(
/**//**//**//**//**//**/lJeee:[" "],lM:length(lJee),
/**//**//**//**//**//**/for l:2 step 2 thru lM -2 do(
/**//**//**//**//**//**//**/if lJee[l]=lP[7]or lJee[l]=lP[5] or lJee[l]=lP[4] then (lJeee:endcons(lP[5],lJeee),lJeee:endcons(" ",lJeee))
/**//**//**//**//**//**//**//**/else (lJeee:endcons(" ",lJeee),lJeee:endcons(" ",lJeee)) ),
/**//**//**//**//**//**/lJee:endcons(lP[6],lJeee),lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)else(lJee:endcons(lP[4],lJ0),lJee:endcons(last(lB[idB+k]),lJee)),
/**//**//**//**/lJ:endcons(lJee,lJ) /*,display(lJ)*/)
/**//**//**/,idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:2;M2:3/*M1個のものを、M2個並べる*//**/;
MeP:nCr(M2,1)/M1^M2/*(◆修正部分2)*/;
KOTAE:[MeP,"答え"]$
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(2,3,"A");/*"重複を許して("A"),1~2の番号を3つ並べる並べ方"*//**/

print("lA",lA)$
Nm:[["O","u"],["O","u"],["O","u"]]$/*"第1~5成分がO,u"*//**/
Cn(Nm)$/*"番号をO,uに変換"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
iM:length(lJ);for i:1 thru iM do(
print(lJ[i]))/*"樹形図の表示(最終結果は最後のブロック)"*/$
SUJIMITI:"全事象は( )通り、赤玉が出る事象は( )通りだから・・・"/**/$
print(MONDAI1)$
print(SUJIMITI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"例10・練習35 505 3枚の硬貨を投げ、すべて表が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"硬貨を左,中,右と区別し、表o、裏uとして、重複を許して順に3つ並べるのが全事象、左,中,右から3つ選ぶ組合せが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;
MeP:nCr(M2,M2)/M1^M2/*(◆修正部分2)*/;


   D いろいろな事象の確率
◆コマンド番号506
●いろいろな事象
●●●●●●●●●●●●●●●●
kill(all) $
MONDAI1:"例題10・練習36 506 2つのさいころを同時に投げるとき同じ目が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"さいころを左,右と区別し、目1~6を重複を許して順に2つ並べるのが全事象、同じ目が並ぶのが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if k=1 then (
/**//**//**//**//**//**/if k=kM then lJee:endcons(lP[3],lJe)else lJee:endcons(lP[7],lJe),
/**//**//**//**//**//**/lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)elseif k=kM then(
/**//**//**//**//**//**/lJeee:[" "],lM:length(lJee),
/**//**//**//**//**//**/for l:2 step 2 thru lM -2 do(
/**//**//**//**//**//**//**/if lJee[l]=lP[7]or lJee[l]=lP[5] or lJee[l]=lP[4] then (lJeee:endcons(lP[5],lJeee),lJeee:endcons(" ",lJeee))
/**//**//**//**//**//**//**//**/else (lJeee:endcons(" ",lJeee),lJeee:endcons(" ",lJeee)) ),
/**//**//**//**//**//**/lJee:endcons(lP[6],lJeee),lJee:endcons(last(lB[idB+k]),lJee)
/**//**//**//**//**/)else(lJee:endcons(lP[4],lJ0),lJee:endcons(last(lB[idB+k]),lJee)),
/**//**//**//**/lJ:endcons(lJee,lJ) /*,display(lJ)*/)
/**//**//**/,idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:6;M2:2/*M1個のものを、M2個並べる*//**/;
MeP:6/M1^M2/*(◆修正部分2)*/;
KOTAE:[MeP,"答え"]$
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(6,2,"A");/*"重複を許して("A"),1~6の番号を2つ並べる並べ方"*//**/

print("lA",lA)$
Nm:[["1","2","3","4","5","6"],["1","2","3","4","5","6"]]$/*"第1~6成分が1,2,3,4,5,6"*//**/
Cn(Nm)$/*"番号を1~6に変換"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
iM:length(lJ);for i:1 thru iM do(
print(lJ[i]))/*"樹形図の表示(最終結果は最後のブロック)"*/$
SUJIMITI:"全事象は( )通り、同じ目が出る事象は( )通りだから・・・"/*(◆修正部分3)*/$
print(MONDAI1)$
print(SUJIMITI)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"例題10・練習36 506 2つのさいころを同時に投げるとき、目の和が9になる確率は"/*(◆修正部分1)*/$
KOUSATU:"さいころを左,右と区別し、目1~6を重複を許して順に2つ並べるのが全事象、9を1~6のうちの2つに分けるから、1を9つ並べたときの間の3~6番目の4個のうちの1つ選んで区切ることと同じと考えるのが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;
MeP:nCr(M1-2,1)/M1^M2/*(◆修正部分2)*/;
SUJIMITI:"全事象は( )通り、目の和が7となる事象は( )通りだから・・・"/*(◆修正部分3)*/$


◆コマンド番号507
●いろいろな事象
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI1:"例題11・練習37 507 A,B2人を含む6人の選手が、走る順をくじで決めるとき、Aが最初でBが最後になる確率は"/*(◆修正部分1)*/$
KOUSATU:"6人を順に並べるのが全事象、最初Aと最後Bを固定しA,B以外の4人を順に並べ同じ目が並ぶのが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;

kill(all) /**/$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:6;/*"(◆修正部分2)"*/
MeP:(M1-2)!/M1!;/*"(◆修正部分2)"*/
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(M1,M1,"N");/*"重複を許さず("N"),1~6の番号を6つ並べる並べ方"*/
print("lA",lA)$
Nm:[["A","B","C","D","E","F"],["A","B","C","D","E","F"],["A","B","C","D","E","F"],["A","B","C","D","E","F"],["A","B","C","D","E","F"],["A","B","C","D","E","F"]]$/*第1-6成分が,["A","B","C","D","E","F"]*/
Cn(Nm)$/*"番号を,["A","B","C","D","E","F"]に変換"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=6 and lB[k][1]="A" and last(lB[k])="B" then (jishou:jishou+1,lDe:"◯") else lDe:"",lD:endcons(lDe,lD));/*"(◆◆修正部分3)"*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/
SUJIMITI:"全事象は、6の順列で、事象は4の順列となるから・・・"/*(◆修正部分4)*/;
KOTAE:[MeP,"答え",jishou,"事象",zenjishou,"全事象"]$
print(MONDAI1)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"例題11・練習37 507 A,B2人を含む4人が、くじで順番を決めて、横1列に並ぶとき、Aが左端になる確率は"/*(◆修正部分1)*/$
KOUSATU:"4人を順に並べるのが全事象、左端をAと固定しA以外の3人を順に並べ同じ目が並ぶのが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;
M1:4;/*"(◆修正部分2)"*/
MeP:(M1-1)!/M1!;/*"(◆◆修正部分2)"*/
for k:1 thru kM do( if length(lB[k])=4 and lB[k][1]="A" then (jishou:jishou+1,lDe:"◯") else lDe:"",lD:endcons(lDe,lD));/*"(◆◆修正部分3)"*/
SUJIMITI:"全事象は、4の順列で、事象は3の順列となるから・・・"/*(◆修正部分4)*/;


◆コマンド番号508
●いろいろな事象
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI1:"例題12・練習38 508 赤玉3個、白玉4個のはいった袋から2個を同時に取り出すとき、2個とも白となる確率は"/*(◆修正部分1)*/$
KOUSATU:"7個から2個を選んで取り出すのが全事象、白4個から2個選んで取り出すのが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:3;M2:4;/*"(◆修正部分2)"*/
MeP:nCr(M2,2)/nCr(M1+M2,2);/*"(◆修正部分2)"*/
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(M1+M2,2,"G");/*"昇順で("G"),1~3を赤玉、4~7を白玉として、1~7の番号を2つ並べる並べ方"*//*"(◆修正部分3)"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=2 and lB[k][1]>=4 and last(lB[k])>=4 then (jishou:jishou+1,lDe:"◯") else lDe:"",lD:endcons(lDe,lD));/*"(◆修正部分4)"*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/
SUJIMITI:"全事象は、7から2選ぶ組み合わせで、事象は4から2選ぶ組み合わせとなるから・・・"/*(◆修正部分5)*/;
KOTAE:[MeP,"答え",jishou,"事象",zenjishou,"全事象"]$
print(MONDAI1)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"例題12・練習38 508 赤玉2個、白玉3個、青玉4個のはいった袋から3個を同時に取り出すとき、3個とも同じ色となる確率は"/*(◆修正部分1)*/$
KOUSATU:"1,2,3を白玉、6,7,8,9を青玉として、9個から3個を選んで取り出すのが全事象、白3個から3個選んで取り出すのと青4個から3個選んで取り出すのとを合わせたものが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;
M1:2;M2:3;M3:4;/*"(◆修正部分2)"*/
MeP:(nCr(M2,3)+nCr(M3,3))/nCr(M1+M2+M3,3);/*"(◆修正部分2)"*/
nXr(M1+M2+M3,3,"G");/*"昇順で("G"),1~3を赤玉、4~7を白玉として、1~7の番号を2つ並べる並べ方"*//*"(◆修正部分3)"*/
for k:1 thru kM do( if length(lB[k])=3 then(if lB[k][3]=3 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*"(◆修正部分4)"*/
for k:1 thru kM do( if length(lB[k])=3 then(if lB[k][1]>=6 then (jishou:jishou+1,lDe:"△",lD:substl(lDe,lD,k)),lDe:"") else lDe:"");/*"(◆修正部分4)"*/
SUJIMITI:"全事象は、9から3選ぶ組み合わせで、事象は3から3選ぶ組み合わせと4から3選ぶ組み合わせの和となるから・・・"/*(◆修正部分5)*/;

◆コマンド番号509
●いろいろな事象
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI1:"応用例題8・練習39 509 赤玉8個、白玉5個のはいった袋から3個を同時に取り出すとき、赤玉1個だけとなる確率は"/*(◆修正部分1)*/$
KOUSATU:"13個から3個を選んで取り出すのが全事象、赤8個から1個、白5個から2個選んで取り出すのが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:8;M2:5;/*"(◆修正部分2)"*/
MeP:nCr(M1,1)*nCr(M2,2)/nCr(M1+M2,3);/*"(◆修正部分2)"*/
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(M1+M2,3,"G");/*"昇順で("G"),1~8を赤玉、9~13を白玉として、1~13の番号を3つ並べる並べ方"*//*"(◆修正部分3)"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if lB[k][1]<=8 and lB[k][2]>=9 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*"(◆修正部分4)"*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/
SUJIMITI:"全事象は、13から3選ぶ組み合わせで、事象は8から1選ぶ組み合わせと5から2選ぶ組み合わせとなるから・・・"/*(◆修正部分5)*/;
KOTAE:[MeP,"答え",jishou,"事象",zenjishou,"全事象"]$
print(MONDAI1)$
print(KOTAE)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI1:"応用例題8・練習39 509 男子6人、女子4人から5人を抽選で選ぶとき、男子3人、女子2人となる確率は"/*(◆修正部分1)*/$
KOUSATU:"10人から5人を選ぶのが全事象、男子6人から3人、女子4人から2人選んで取り出すのが該当の事象、それぞれの場合の数を考えて・・・"/*(◆修正部分1)*/;
M1:6;M2:4;/*"(◆修正部分2)"*/
MeP:nCr(M1,3)*nCr(M2,2)/nCr(M1+M2,5);/*"(◆修正部分2)"*/
nXr(M1+M2,5,"G");/*"昇順で("G"),1~6を男子、7~10を女子として、1~10の番号を5つ並べる並べ方"*//*"(◆修正部分3)"*/
for k:1 thru kM do( if length(lB[k])=5 then(if lB[k][3]<=6 and lB[k][4]>=7 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*"(◆修正部分4)"*/
SUJIMITI:"全事象は、10から5選ぶ組み合わせで、事象は6から3選ぶ組み合わせのそれぞれに4から2選ぶ組み合わせとなるから・・・"/*(◆修正部分5)*/;


:   6.確率の基本性質
   A いろいろな事象
◆コマンド番号601
●積事象と和事象
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例11・練習40 601 1個のさいころを投げるとき、「偶数の目が出る」という事象をA、「2以下の目が出る」という事象をBとして、積事象、和事象の集合は"/*(◆修正部分1)*/$
KOUSATU:"1~6の目が全事象、事象A,事象Bの根元事象を考えて・・・"/*(◆修正部分1)*/;

A:{2,4,6} /* "Aと(◆修正部分2)" */;
B:{1,2} /* "Bとの共通部分と和集合は(◆修正部分2)" */;
AnB:intersection(A,B) /* "積事象" */;
AuB:union(A,B) /* "和事象" */;
KAITOU:[AnB,"積事象",AuB,"和事象"];
print(MONDAI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例11・練習40 601 1~10の番号札を1枚引くとき、「奇数番号を引く」という事象をA、「7以上の番号を引く」という事象をBとして、積事象、和事象の集合は"/*(◆修正部分1)*/$
KOUSATU:"1~10が全事象、事象A,事象Bの根元事象を考えて・・・"/*(◆修正部分1)*/;
A:{1,3,5,7,9} /* "Aと(◆修正部分2)" */;
B:{7,8,9,10} /* "Bとの共通部分と和集合は(◆修正部分2)" */;


◆コマンド番号602
●背反事象と空事象
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"練習41 602 1個のさいころを投げるとき、「偶数の目が出る」という事象をAとして、背反事象Acの集合は"/*(◆修正部分1)*/$
KOUSATU:"1~6の目が全事象、事象Aに含まれない根元事象を考えて・・・"/*(◆修正部分1)*/;

Uc(S):=( /**/C:{},
/**/for u in U do
/*....*/if elementp(u,S) then print(u,E,S)
/*........*/else C:adjoin(u,C),
/**/C /* "UでSの補集合をとる関数" */)$
U:{1,2,3,4,5,6};

A:{2,4,6} /* "A(◆修正部分2)" */;
Ac:Uc(A) /*"(◆修正部分2)" */;
print(Ac) /* "求める解" *//*"(◆修正部分2)" */;

SUJIMITI:"全事象は(   )、事象Aの排反事象は( )・・・"/**/;
KAITOU:[Ac,"背反事象"]/*"(◆修正部分3)" */;
print(MONDAI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"練習41 602 1個のさいころを投げるとき、「3の倍数の目が出る」という事象をCとして、背反事象Ccの集合は"/*(◆修正部分1)*/$
KOUSATU:"1~6の目が全事象、事象Cの根元事象を考えて・・・"/*(◆修正部分1)*/;
C:{3,6} /* "C(◆修正部分2)" */;
Cc:Uc(C) /*"(◆修正部分2)" */;
print(Cc) /* "求める解" *//*"(◆修正部分2)" */;
KAITOU:[Cc,"背反事象"]/*"(◆修正部分3)" */;


◆コマンド番号603
●確率の加法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例12練習42 603 各等の当たる確率が、1等2/100,2等5/100,3等10/100,4等20/100のくじを引くとき、1等または2等が当たる確率は"/*(◆修正部分1)*/$
KOUSATU:"各等が当たる事象は背反だから、確率の加法定理が成立するので・・・"/*(◆修正部分1)*/;

P1:2/100;P2:5/100;P3:10/100;P4:20/100;

P1u2:P1+P2/*(◆修正部分2)*/;
SUJIMITI:"各等が当たる事象は背反で、1等の確率( )、2等の確率( )だから・・・"/*(◆修正部分2)*/;
KAITOU:[P1u2,"1等または2等が当たる確率"]/*(◆修正部分2)*/;
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例12練習42 603 各等の当たる確率が、1等2/100,2等5/100,3等10/100,4等20/100のくじを引くとき、2等から4等までのいずれかが当たる確率は"/*(◆修正部分1)*/$
KOUSATU:"各等が当たる事象は背反だから、確率の加法定理が成立するので・・・"/*(◆修正部分1)*/;
P2u3u4:P2+P3+P4/*(◆修正部分2)*/;
SUJIMITI:"各等が当たる事象は背反で、2等の確率( )、2等の確率( )、3等の確率( )だから・・・"/*(◆修正部分2)*/;
KAITOU:[P2u3u4,"2等から4等までのいずれかが当たる確率"]/*(◆修正部分2)*/;


◆コマンド番号604
●確率の加法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例題13・練習43 604 赤玉4個、白玉5個のはいった袋から2個を同時に取り出すとき、2個が同じ色となる確率は"/*(◆修正部分1)*/$
KOUSATU:"2個が赤となる事象と白となる事象は背反だから、確率の加法定理が成立するので・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:4;M2:5/*(◆修正部分2)*/;
P1:nCr(M1,2)/nCr(M1+M2,2);P2:nCr(M2,2)/nCr(M1+M2,2)/*(◆修正部分2)*/;
P1u2:P1+P2/*(◆修正部分2)*/;
SUJIMITI:"各事象は背反で、2つとも赤の確率( )、白の確率( )だから・・・"/*(◆修正部分2)*/;
KAITOU:[P1u2,"2つとも同じ色の確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(M1+M2,2,"G");/*"昇順で("G"),1~4を赤玉、5~9を白玉として、1~9の番号を2つ並べる並べ方"*//*"(◆修正部分3)"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=2 then(if lB[k][2]<=4 or lB[k][1]>=5 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/
SUJIMITI:"2つとも赤になる確率は( )、白になる確率は( )、事象は背反だから・・・"/*(◆修正部分5)*/;

print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例題13・練習43 604 赤玉2個、白玉3個、青玉4個のはいった袋から3個を同時に取り出すとき、3個が同じ色となる確率は"/*(◆修正部分1)*/$
KOUSATU:"3個が赤となる事象、白となる事象と青になる事象は背反だから、確率の加法定理が成立するので・・・"/*(◆修正部分1)*/;
M1:2;M2:3;M3:4/*(◆修正部分2)*/;
P2:nCr(M2,3)/nCr(M1+M2+M3,3);P3:nCr(M3,3)/nCr(M1+M2+M3,3)/*(◆修正部分2)*/;
P2u3:P2+P3/*(◆修正部分2)*/;
SUJIMITI:"各事象は背反で、3つとも赤の確率( )、白の確率( )、青の確率( )だから・・・"/*(◆修正部分2)*/;
KAITOU:[P2u3,"3つとも同じ色の確率"]/*(◆修正部分2)*/;
nXr(M1+M2+M3,3,"G");/*"昇順で("G"),1~2を赤玉、3~5を白玉、6~9を白玉として、1~9の番号を2つ並べる並べ方"*//*"(◆修正部分3)"*/
for k:1 thru kM do( if length(lB[k])=3 then(if (lB[k][1]>=3 and lB[k][3]<=5) or lB[k][1]>=6 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
SUJIMITI:"3つとも赤になる確率は( )、白になる確率は( )、青になる確率は( )、事象は背反だから・・・"/*(◆修正部分5)*/;


   C 余事象とその確率
◆コマンド番号605
●余事象と確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例13練習44 605 1から100までの100枚の番号札を引くとき、5の倍数でない番号を引く確率は"/*(◆修正部分1)*/$
KOUSATU:"余事象の確率は、事象の確率を1から引いたもので・・・"/**/;

M1:100;M2:fix(M1/5)/*(◆修正部分2)*/;
P2c:1-M2/M1/**/;
SUJIMITI:"事象の確率( )だから・・・"/**/;
KAITOU:[P2c,"5の倍数でない番号を引く確率"]/*(◆修正部分3)*/;
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例13練習44 605 1から100までの100枚の番号札を引くとき、3の倍数でない番号を引く確率は"/*(◆修正部分1)*/$
M1:100;M2:fix(M1/3)/*(◆修正部分2)*/;
KAITOU:[P2c,"3の倍数でない番号を引く確率"]/*(◆修正部分3)*/;


◆コマンド番号606
●余事象と確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"応用例題9・練習46 606 1から9までの9枚の番号札から3枚を同時に引くとき、少なくとも1枚が偶数である確率は"/*(◆修正部分1)*/$
KOUSATU:"余事象は、すべて奇数という事象であるから・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:9;M2:3/*(◆修正部分2)*/;
SUJIMITI:"余事象は、すべて奇数の番号となる事象で、余事象の確率( )だから・・・"/*(◆修正部分2)*/;
P2c:1-nCr(5,M2)/nCr(M1,M2)/*(◆修正部分2)*/;
KAITOU:[P2c,"少なくとも1枚が偶数の確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(M1,M2,"G");/*"重複で("A"),1~6の番号を2つ並べる並べ方"*//*"(◆修正部分3)"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if mod(lB[k][1],2)=0 or mod(lB[k][2],2)=0 or mod(lB[k][3],2)=0 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"応用例題9・練習46 606 2つのさいころを同時に投げるとき、異なる目が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"余事象は、同じ目が出るという事象であるから・・・"/*(◆修正部分1)*/;
M1:6;M2:2/*(◆修正部分2)*/;
SUJIMITI:"余事象は、同じ目が出るという事象で、余事象の確率( )だから・・・"/*(◆修正部分2)*/;
P2c:1-6/M1^M2/*(◆修正部分2)*/;
KAITOU:[P2c,"異なる目が出る確率"]/*(◆修正部分2)*/;
nXr(M1,M2,"G");/*"重複で("A"),1~6の番号を2つ並べる並べ方"*//*"(◆修正部分3)"*/
for k:1 thru kM do( if length(lB[k])=M2 then(if lB[k][1]#lB[k][2] then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/

   D 一般の和事象の確率
◆コマンド番号607
●一般の和事象の確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例14・練習47 607 1から5までの5枚の番号札をでたらめに並べるとき、左端または右端が奇数である確率は"/*(◆修正部分1)*/$
KOUSATU:"左端だけが奇数、両方が奇数、右端だけが奇数、の各事象は背反で、この和の事象の場合の数は、左端が奇数、右端が奇数の事象の場合の数から、両方とも奇数の場合の数を、引いたものであるから・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:5/*(◆修正部分2)*/;
SUJIMITI:"左端が奇数の事象の確率は(  )、右端が奇数の事象の確率は(  )、両方とも奇数の事象の確率は(  )だから・・・"/*(◆修正部分2)*/;
P2c:3*nPr(4,4)/nPr(5,5)+3*nPr(4,4)/nPr(5,5)-nPr(3,2)*nPr(3,3)/nPr(5,5)/*(◆修正部分2)*/;
KAITOU:[P2c,"左端または右端が奇数の確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
nXr(M1,M1,"N");/*"異なる("N")で,1~5の番号を5つ並べる並べ方"*//*"(◆修正部分3)"*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=5 then(if mod(lB[k][1],2)=1 or mod(lB[k][5],2)=1 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例14・練習47 607 1から50までの50枚の番号札から1枚を引くとき、3の倍数または4の倍数である確率は"/*(◆修正部分1)*/$
KOUSATU:"3の倍数であり4の倍数でない、3の倍数でもあり4の倍数でもある、4の倍数であり3の倍数でない、の各事象は背反で、この和の事象の場合の数は、3の倍数である事象、4の倍数である事象、の場合の数から、3の倍数でもあり4の倍数でもある事象の場合の数を、引いたものであるから・・・"/*(◆修正部分1)*/;
M1:50/*(◆修正部分2)*/;
SUJIMITI:"3の倍数である事象の確率は(  )、4の倍数である事象の確率は(  )、3の倍数でもあり4の倍数でもある事象の確率は(  )だから・・・"/*(◆修正部分2)*/;
P2c:fix(M1/3)/50+fix(M1/4)/50-fix(M1/12)/50/*(◆修正部分2)*/;
KAITOU:[P2c,"3の倍数または4の倍数である確率"]/*(◆修正部分2)*/;
nXr(M1,1,"N");/*"異なる("N")で,1~50の番号を1つ並べる並べ方"*//*"(◆修正部分3)"*/
for k:1 thru kM do( if length(lB[k])=1 then(if mod(lB[k][1],3)=0 or mod(lB[k][1],4)=0 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


:   7.独立な試行と確率
   A 独立な試行の確率
◆コマンド番号608
●1枚の硬貨と1個のさいころを投げるときの確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例15・練習48 608 1枚の硬貨と1個のさいころを投げるとき、硬貨は表、さいころは5以上の目となる事象の確率は"/*(◆修正部分1)*/$
KOUSATU:"硬貨を投げる試行とさいころを投げる試行は独立だから、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:2;M2:6/*(◆修正部分2)*/;
SUJIMITI:"硬貨が表の事象の確率は(  )、さいころの目が5以上の事象の確率は(  )、両者は独立だから・・・"/*(◆修正部分2)*/;
P1:1/M1;P2:2/6;P1n2:P1*P2/*(◆修正部分2)*/;
KAITOU:[P1n2,"硬貨は表、さいころの目は5以上の確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M2],"A");/*"1つ目が硬貨の表裏1,2、2つ目がさいころの目1,2,3,4,5,6として、・・・"*//*(◆修正部分3)*/
Nm:[["o","u"],[1,2,3,4,5,6]]$/*"1つ目が表・裏、2つ目が1,2,3,4,5,6として、・・・"*//*(◆修正部分3)*/
Cn(Nm)$
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=2 then(if lB[k][1]="o" and lB[k][2]>=5 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例15・練習48 608 2枚の硬貨と1個のさいころを投げるとき、硬貨は1枚だけ表、さいころは2以下の目となる事象の確率は"/*(◆修正部分1)*/$
KOUSATU:"硬貨を投げる試行とさいころを投げる試行は独立だから、・・・"/*(◆修正部分1)*/;
M1:2;M2:2;M3:6/*(◆修正部分2)*/;
SUJIMITI:"硬貨が1枚だけ表の事象の確率は(  )、さいころの目が2以下の事象の確率は(  )、両者は独立だから・・・"/*(◆修正部分2)*/;
P1:(1/M1)*(1/M2);P2:2/6;P1n2:P1*P2/*(◆修正部分2)*/;
KAITOU:[P1n2,"硬貨は1枚だけ表、さいころの目は2以下の確率"]/*(◆修正部分2)*/;
Xr([M1,M2,M3],"A");/*"1,2つ目が1枚目の硬貨の表裏1,2、3つ目がさいころの目1,2,3,4,5,6として、・・・"*//*(◆修正部分3)*/
Nm:[["o","u"],["o","u"],[1,2,3,4,5,6]]$/*"1,2つ目が表・裏、2つ目が1,2,3,4,5,6として、・・・"*//*(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=3 then(if ((lB[k][1]="o" and lB[k][2]="u") or (lB[k][1]="u" and lB[k][2]="o")) and lB[k][3]<=2 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号609
●1個のさいころを3回続けて投げるときの確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例16・練習49 609 1個のさいころを3回続けて投げるとき、少なくとも1回1の目が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"さいころを投げる3回の試行は独立で、3回とも1以外の目が出ることの余事象だから、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:6;M2:6;M3:6/*(◆修正部分2)*/;
SUJIMITI:"さいころの目が3回とも1以外の目が出る事象の確率は(  )で、少なくとも1回は1の目が出る事象は、その余事象だから・・・"/*(◆修正部分2)*/;
P1:(5/M1)*(5/M2)*(5/M3);P1c:1-P1/*(◆修正部分2)*/;
KAITOU:[P1c,"少なくとも1回1の目が出る確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M2,M3],"A");/*"1~3つ目がさいころの目1,2,3,4,5,6として、・・・"*//*(◆修正部分3)*/
Nm:[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]$/*"1~3つ目が1,2,3,4,5,6として、・・・"*//*(◆修正部分3)*/
Cn(Nm)$
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if lB[k][1]=1 or lB[k][2]=1 or lB[k][3]=1 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例16・練習49 609 1枚の硬貨を3回続けて投げるとき、少なくとも1回裏が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"硬貨を投げる3回の試行は独立で、3回とも表の目が出ることの余事象だから、・・・"/*(◆修正部分1)*/;
M1:2;M2:2;M3:2/*(◆修正部分2)*/;
SUJIMITI:"硬貨が3回とも表が出る事象の確率は(  )で、少なくとも1回は裏が出る事象は、その余事象だから・・・"/*(◆修正部分2)*/;
P1:(1/M1)*(1/M2)*(1/M3);P1c:1-P1/*(◆修正部分2)*/;
KAITOU:[P1c,"少なくとも1回裏が出る確率"]/*(◆修正部分2)*/;
Xr([M1,M2,M3],"A");/*"1~3つ目が硬貨の裏表1,2として、・・・"*//*(◆修正部分3)*/
Nm:[["o","u"],["o","u"],["o","u"]]$/*"1~3つ目が"o","u"として、・・・"*//*(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=3 then(if lB[k][1]="u" or lB[k][2]="u" or lB[k][3]="u" then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号610
●A,Bの袋から赤・白の玉を取り出すときの確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例題14・練習50 610 Aの袋に赤玉3個、白玉2個、Bの袋に赤玉2個、白玉4個。A,Bの袋から1個ずつ取り出すとき、ともに赤玉を取り出す確率は"/*(◆修正部分1)*/$
KOUSATU:"Aから取り出す試行とBから取り出す試行は独立だから、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#" " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:5;M2:6/**/;
SUJIMITI:"Aから赤玉を取り出す確率は(  )で、Bから赤玉を取り出す確率は(  )だから・・・"/*(◆修正部分2)*/;
P1:(3/M1);P2:(2/6);P1n2:P1*P2/*(◆修正部分2)*/;
KAITOU:[P1n2,"ともに赤玉の確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M2],"A");/*"1,2つ目がA,Bから取り出す玉の色で、それぞれ1~M1、1~M2として、・・・"*//**/
Nm:[["a","a","a","s","s"],["a","a","s","s","s","s"]]$/*赤を"a",白を"s"として、・・・*//**/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=2 then(if lB[k][1]<=3 and lB[k][2]<=2 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分3)*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例題14・練習50 610 Aの袋に赤玉3個、白玉2個、Bの袋に赤玉2個、白玉4個。A,Bの袋から1個ずつ取り出すとき、色が異なる玉を取り出す確率は"/*(◆修正部分1)*/$
KOUSATU:"Aから取り出す試行とBから取り出す試行は独立で、A赤・B白とA白・B赤の事象は背反だから、・・・"/*(◆修正部分1)*/;
SUJIMITI:"Aから赤玉を取り出す確率は(  )で、Bから白玉を取り出す確率は(  )だから・・・"/*(◆修正部分2)*/;
P1:(3/M1);P2:(2/6);P1x2:P1*(1-P2)+(1-P1)*P2/*(◆修正部分2)*/;
KAITOU:[P1x2,"色が異なる玉を取り出す確率"]/*(◆修正部分2)*/;
for k:1 thru kM do( if length(lB[k])=2 then(if (lB[k][1]<=3 and lB[k][2]>=3) or (lB[k][1]>=4 and lB[k][2]<=2) then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分3)*/


   B 反復試行の確率
◆コマンド番号611
●硬貨を5回投げて表がちょうど2回出る確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例17・練習51 611 硬貨を5回投げたとき、表がちょうど2回出る確率は"/*(◆修正部分1)*/$
KOUSATU:"硬貨を投げる試行は独立だから、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#" " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:2/*(◆修正部分2)*/;
SUJIMITI:"1回投げたとき表が出る確率は(  )、裏が出る確率は(  )で、表が出る回は5回のうちの2回を選ぶことと同じで( )通りだから・・・"/*(◆修正部分2)*/;
Po:(1/M1);Pu:(1/2);Po2:nCr(5,2)*Po^2*Pu^3/*(◆修正部分2)*/;
KAITOU:[Po2,"表がちょうど2回出る確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1,M1,M1],"A");/*"1~5つ目が表・裏のどちらかで、それぞれ1~M1として、・・・"*//*(◆修正部分3)*/
Nm:[["o","u"],["o","u"],["o","u"],["o","u"],["o","u"]]$/*表を"o",裏を"u"として、・・・*//*(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=5 then(if lsum(i,i,lB[k])=8 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例17・練習51 611 1個のさいころを4回投げたとき、5以上の目がちょうど2回出る確率は"/*(◆修正部分1)*/$
KOUSATU:"さいころを投げる試行は独立だから、・・・"/*(◆修正部分1)*/;
M1:6/*(◆修正部分2)*/;
SUJIMITI:"1回投げたとき5以上の目が出る確率は(  )、4以下の目が出る確率は(  )で、5以上が出る回は4回のうちの2回を選ぶことと同じで( )通りだから・・・"/*(◆修正部分2)*/;
Po:(2/M1);Pu:(1-Po);Po2:nCr(4,2)*Po^2*Pu^2/*(◆修正部分2)*/;
KAITOU:[Po2,"5以上がちょうど2回出る確率"]/*(◆修正部分2)*/;
Xr([M1,M1,M1,M1],"A");/*"1~4つ目が1,2,3,4,5,6のどれかで、それぞれ1~M1として、・・・"*//*(◆修正部分3)*/
Nm:[["1","2","3","4","5","6"],["1","2","3","4","5","6"],["1","2","3","4","5","6"],["1","2","3","4","5","6"]]$/*["1","2","3","4","5","6"]として、・・・*//*(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=4 then(if lsum(fix(i/5),i,lB[k])=2 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号612
●硬貨を5回投げて表がちょうど2回出る確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例第15・練習52 612 赤玉2個と白玉3個の入った袋から1個取り出し、色を見てから戻す。この試行を4回行うとき、赤玉が3回以上出る確率は"/*(◆修正部分1)*/$
KOUSATU:"球を取り出す試行は独立で、赤玉が3回出る事象と4回出る事象は背反だから、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#" " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:5/*(◆修正部分2)*/;
SUJIMITI:"1回取り出すとき赤玉が出る確率は(  )、白玉が出る確率は(  )で、赤玉が出る回は4回のうちの3回と4回を選ぶことと同じで( )通りだから・・・"/*(◆修正部分2)*/;
Po:(2/M1);Pu:(1-Po);Po34:nCr(4,3)*Po^3*Pu+nCr(4,4)*Po^4/*(◆修正部分2)*/;
KAITOU:[Po34,"赤玉が3回以上でる確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1,M1],"A");/*"1~4つ目が赤1,2、白3,4,5のどれかで、それぞれ1~M1として、・・・"*//*(◆修正部分3)*/
Nm:[["a","a","s","s","s"],["a","a","s","s","s"],["a","a","s","s","s"],["a","a","s","s","s"]]$/*["a","a","s","s","s"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=4 then(if lsum(if 2>=i then 1 else 0,i,lB[k])>=3 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例第15・練習52 612 赤玉2個と白玉4個の入った袋から1個取り出し、色を見てから戻す。この試行を5回行うとき、赤玉が4回以上出る確率は"/*(◆修正部分1)*/$
KOUSATU:"球を取り出す試行は独立で、赤玉が4回出る事象と5回出る事象は背反だから、・・・"/*(◆修正部分1)*/;
M1:6/*(◆修正部分2)*/;
SUJIMITI:"1回取り出すとき赤玉が出る確率は(  )、白玉が出る確率は(  )で、赤玉が出る回は5回のうちの4回と5回を選ぶことと同じで( )通りだから・・・"/*(◆修正部分2)*/;
Po:(2/M1);Pu:(1-Po);Po45:nCr(5,4)*Po^4*Pu+nCr(5,5)*Po^5/*(◆修正部分2)*/;
KAITOU:[Po45,"赤玉が4回以上でる確率"]/*(◆修正部分2)*/;
Xr([M1,M1,M1,M1,M1],"A");/*"1~5つ目が赤1,2、白3,4,5のどれかで、それぞれ1~M1として、・・・"*//*(◆修正部分3)*/
Nm:[["a","a","s","s","s","s"],["a","a","s","s","s","s"],["a","a","s","s","s","s"],["a","a","s","s","s","s"],["a","a","s","s","s","s"]]$/*["a","a","s","s","s","s"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=5 then(if lsum(if 2>=i then 1 else 0,i,lB[k])>=4 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


:   8.条件付き確率
   A 条件付き確率
◆コマンド番号613
●条件付き確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例18 613 箱の中に1~7の赤の番号札、1~5の白の番号札が入っている。この箱から番号札1枚を引くとき、赤で偶数の札の確率は"/*(◆修正部分1)*/$
KOUSATU:"赤で偶数の札の枚数は、・・・。全部の札の枚数は・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#" " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:12/*(◆修正部分2)*/;
SUJIMITI:"引いた札が赤で偶数の札の事象の場合の数は(  )、引いた札の色・数にこだわらないときの事象の場合の数は(  )だから・・・"/*(◆修正部分2)*/;
Po:(3/M1)/*(◆修正部分2)*/;
KAITOU:[Po,"赤で偶数の札である確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1],"A");/*"赤1,2,3,4,5,6,7、白8,9,10,11,12のどれかで、・・・"*//*(◆修正部分3)*/
Nm:[["a1","a2","a3","a4","a5","a6","a7","s1","s2","s3","s4","s5"]]$/*["a1","a2","a3","a4","a5","a6","a7","s1","s2","s3","s4","s5"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=1 then(if 7>=lB[k][1] and mod(lB[k][1],2)=0 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/*(◆修正部分4)*/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/*(◆修正部分5)*/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例18 613 箱の中に1~7の赤の番号札、1~5の白の番号札が入っている。この箱から番号札1枚を引くとき、赤であったとして、それが偶数の札の確率は"/*(◆修正部分1)*/$
KOUSATU:"赤札の枚数は、赤札で偶数の枚数は、・・・"/*(◆修正部分1)*/;
M1:12/*(◆修正部分2)*/;
SUJIMITI:"赤札の事象の場合の数は(  )、赤札で偶数の事象の場合の数は(  )だから・・・"/*(◆修正部分2)*/;
Po:(3/7)/*(◆修正部分2)*/;
KAITOU:[Po,"赤であったとして、偶数の札が出る確率"]/*(◆修正部分2)*/;
Xr([M1],"A");/*"赤1,2,3,4,5,6,7、白8,9,10,11,12のどれかで、・・・"*//*(◆修正部分3)*/
Nm:[["a1","a2","a3","a4","a5","a6","a7","s1","s2","s3","s4","s5"]]$/*["a1","a2","a3","a4","a5","a6","a7","s1","s2","s3","s4","s5"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
joukenjishou:0;for k:1 thru kM do( if length(lB[k])=1 then(if 7>=lB[k][1] then (joukenjishou:joukenjishou+1,lDe:["▽"])else lDe:[""]) else lDe:[""],lD:endcons(lDe,lD));/*(◆修正部分4)*/
for k:1 thru kM do( if length(lB[k])=1 then(if 7>=lB[k][1] and mod(lB[k][1],2)=0 then (jishou:jishou+1,lDe:substl("▽◯",lD[k],1))else lDe:lD[k]) else lDe:lD[k],lD:substl(lDe,lD,k));/*(◆修正部分4)*/
print([jishou,joukenjishou,length(lD)]);/*(◆修正部分4)*/
print([KAITOU,jishou,joukenjishou])/*(◆修正部分5)*/$


◆コマンド番号614
●条件付き確率
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例19・練習53 614 赤玉3個と白玉5個の入った袋から、球を1個ずつ2回取り出し、球は戻さない。この試行で、1回目に赤玉が出たとき、2回目に白玉が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"1回目で赤玉の個数と2回目で玉全部の個数は、・・・。1回目赤玉として2回目で白玉の個数は・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#" " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[">"," ","―","├","│","└","┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl("│",lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:8/*(◆修正部分2)*/;
SUJIMITI:"1回目赤で2回目の色はどちらでもよい事象の場合の数は(  )、1回目赤で2回目白である事象の場合の数は(  )だから・・・"/*(◆修正部分2)*/;
Po:((3*5)/(3*7))/*(◆修正部分2)*/;
KAITOU:[Po,"1回目が赤であったとして2回目が白の玉が出る確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1],"N");/*"赤1,2,3、白4,5,6,7,8のどれかで、・・・"*//*(◆修正部分3)*/
Nm:[["a1","a2","a3","s1","s2","s3","s4","s5"],["a1","a2","a3","s1","s2","s3","s4","s5"]]$/*["a1","a2","a3","s1","s2","s3","s4","s5"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
joukenjishou:0;for k:1 thru kM do( if length(lB[k])=2 then(if 3>=lB[k][1] then (joukenjishou:joukenjishou+1,lDe:["▽"])else lDe:[""]) else lDe:[""],lD:endcons(lDe,lD));/*(◆修正部分4)*/
for k:1 thru kM do( if length(lB[k])=2 then(if 3>=lB[k][1] and lB[k][2]>=4 then (jishou:jishou+1,lDe:substl("▽◯",lD[k],1))else lDe:lD[k]) else lDe:lD[k],lD:substl(lDe,lD,k));/*(◆修正部分4)*/
print([jishou,joukenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(
print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,joukenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例19・練習53 614 赤玉3個と白玉6個の入った袋から、球を1個ずつ2回取り出し、球は戻さない。この試行で、1回目に白玉が出たとき、2回目に白玉が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"1回目で白玉の個数と2回目で玉全部の個数は、・・・。1回目白玉として2回目で白玉の個数は・・・"/*(◆修正部分1)*/;
M1:9/*(◆修正部分2)*/;
SUJIMITI:"1回目白で2回目の色はどちらでもよい事象の場合の数は(  )、1回目白で2回目白である事象の場合の数は(  )だから・・・"/*(◆修正部分2)*/;
Po:((6*5)/(6*8))/*(◆修正部分2)*/;
KAITOU:[Po,"1回目が白であったとして2回目が白の玉が出る確率"]/*(◆修正部分2)*/;
Xr([M1,M1],"N");/*"赤1,2,3、白4,5,6,7,8,9のどれかで、・・・"*//*(◆修正部分3)*/
Nm:[["a1","a2","a3","s1","s2","s3","s4","s5","s6"],["a1","a2","a3","s1","s2","s3","s4","s5","s6"]]$/*["a1","a2","a3","s1","s2","s3","s4","s5","s6"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
joukenjishou:0;for k:1 thru kM do( if length(lB[k])=2 then(if lB[k][1]>=4 then (joukenjishou:joukenjishou+1,lDe:["▽"])else lDe:[""]) else lDe:[""],lD:endcons(lDe,lD));/*(◆修正部分4)*/
for k:1 thru kM do( if length(lB[k])=2 then(if lB[k][1]>=4 and lB[k][2]>=4 then (jishou:jishou+1,lDe:substl("▽◯",lD[k],1))else lDe:lD[k]) else lDe:lD[k],lD:substl(lDe,lD,k));/*(◆修正部分4)*/


   B 確率の乗法定理
◆コマンド番号615
●確率の乗法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例20・練習54 615 当たりくじ4本を含む10本のくじを、A,B2人がこの順に引き、引いたくじは戻さない。A、Bの2人とも当たる確率は"/*(◆修正部分1)*/$
KOUSATU:"1回目でAが当たり、その条件のもとで2回目でBが当たる確率を考えると・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:10/*(◆修正部分2)*/;
SUJIMITI:"1回目でAが当たる確率は(  )、Aが当たった条件で2回目でBが当たる確率数は(  )だから・・・"/*(◆修正部分2)*/;
Po:((4/10)*(3/9))/*(◆修正部分2)*/;
KAITOU:[Po,"A,Bが共に当たる確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1],"N");/*"当たり1,2,3,4、ハズレ5,6,7,8,9,10のどれかで、・・・"*//*(◆修正部分3)*/
Nm:[["a1","a2","a3","a4","s1","s2","s3","s4","s5","s6"],["a1","a2","a3","a4","s1","s2","s3","s4","s5","s6"]]$/*["a1","a2","a3","a4","s1","s2","s3","s4","s5","s6"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=2 then(if 4>=lB[k][1] and 4>=lB[k][2] then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例20・練習54 615 当たりくじ4本を含む10本のくじを、A,B2人がこの順に引き、引いたくじは戻さない。Aが当たり、Bがはずれる確率は"/*(◆修正部分1)*/$
KOUSATU:"1回目でAが当たり、その条件のもとで2回目でBがはずれる確率を考えると・・・"/*(◆修正部分1)*/;
M1:10/*(◆修正部分2)*/;
SUJIMITI:"1回目でAが当たる確率は(  )、Aが当たった条件で2回目でBがはずれる確率数は(  )だから・・・"/*(◆修正部分2)*/;
Po:((4/10)*(6/9))/*(◆修正部分2)*/;
KAITOU:[Po,"Aが当たり、Bがはずれる確率"]/*(◆修正部分2)*/;
Xr([M1,M1],"N");/*"当たり1,2,3,4、ハズレ5,6,7,8,9,10のどれかで、・・・"*//*(◆修正部分3)*/
Nm:[["a1","a2","a3","a4","s1","s2","s3","s4","s5","s6"],["a1","a2","a3","a4","s1","s2","s3","s4","s5","s6"]]$/*["a1","a2","a3","a4","s1","s2","s3","s4","s5","s6"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=2 then(if 4>=lB[k][1] and lB[k][2]>=5 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号616
●確率の乗法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"練習55 616 赤玉3個と白玉10個の入った袋から、玉を1つずつ3個取り出す。取り出した玉は戻さないとき、取り出した玉が全て赤玉である確率は"/*(◆修正部分1)*/$
KOUSATU:"1個目で赤で、その条件のもとで2個目も赤で、さらに3個目も赤の確率を考えると・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:13/*(◆修正部分2)*/;
SUJIMITI:"1回目が赤の確率は(  )、その条件で2回目が赤の確率は(  )、さらにその条件で3回目が赤の確率は(  )、だから・・・"/*(◆修正部分2)*/;
Po:((3/13)*(2/12)*(1/11))/*(◆修正部分2)*/;
KAITOU:[Po,"3個とも赤の確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1],"N");/*"赤1,2,3、白4,5,6,7,8,9,10,11,12,13のどれかで、・・・"*//**/
Nm:[["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7","s8","s9","sa"],["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7","s8","s9","sa"],["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7","s8","s9","sa"]]$/*["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7","s8","s9","sa"]として、・・・*//*lCの成分の名前変更*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if 3>=lB[k][1] and 3>=lB[k][2] and 3>=lB[k][3] then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分3)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"練習55 616 赤玉3個と白玉10個の入った袋から、玉を1つずつ3個取り出す。取り出した玉は戻さないとき、取り出した玉が1つだけ赤玉である確率は"/*(◆修正部分1)*/$
KOUSATU:"1個目で赤で、その条件のもとで2個目が白で、さらに3個目も白の確率を考え、次に2個目だけが赤、最後に3個目だけが赤の確立を考えると・・・"/*(◆修正部分1)*/;
M1:13/*(◆修正部分2)*/;
SUJIMITI:"1回目が赤の確率は(  )、その条件で2回目が白の確率は(  )、さらにその条件で3回目が白の確率は(  )、次に・・・"/*(◆修正部分2)*/;
Po:((3/13)*(10/12)*(9/11)+(10/13)*(3/12)*(9/11)+(10/13)*(9/12)*(3/11))/*(◆修正部分2)*/;
KAITOU:[Po,"1個だけ赤の確率"]/*(◆修正部分2)*/;
for k:1 thru kM do( if length(lB[k])=3 then(if lsum(if 3>=i then 1 else 0,i,lB[k])=1 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分3)*/


◆コマンド番号617
●確率の乗法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"例題16・練習56 617 当たりくじ3本を含む10本のくじを、A,Bの2人がこの順に1本ずつ引く。引いたくじは戻さないとき、Bが当たる確率は"/*(◆修正部分1)*/$
KOUSATU:"Aが当たり、その条件のもとでBが当たる事象と、Aがはずれ、Bが当たる事象は背反で・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:10/*(◆修正部分2)*/;
SUJIMITI:"Aが当たる確率は(  )、その条件でBが当たる確率は(  )、次に・・・"/*(◆修正部分2)*/;
Po:((3/10)*(2/9)+(7/10)*(3/9))/*(◆修正部分2)*/;
KAITOU:[Po,"Bが当たる確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1],"N");/*"当り1,2,3、はずれ4,5,6,7,8,9,10のどれかで、・・・"*//*(◆修正部分3)*/
Nm:[["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7"],["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7"]]$/*["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=2 then(if 3>=lB[k][2] then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"例題16・練習56 617 当たりくじ5本を含む12本のくじを、A,Bの2人がこの順に1本ずつ引く。引いたくじは戻さないとき、Bが当たる確率は"/*(◆修正部分1)*/$
KOUSATU:"Aが当たり、その条件のもとでBが当たる事象と、Aがはずれ、Bが当たる事象は背反で・・・"/*(◆修正部分1)*/;
M1:12/*(◆修正部分2)*/;
SUJIMITI:"Aが当たる確率は(  )、その条件でBが当たる確率は(  )、次に・・・"/*(◆修正部分2)*/;
Po:((5/12)*(4/11)+(7/12)*(5/11))/*(◆修正部分2)*/;
KAITOU:[Po,"Bが当たる確率"]/*(◆修正部分2)*/;
Xr([M1,M1],"N");/*"当り1,2,3,4,5、はずれ6,7,8,9,10,11,12のどれかで、・・・"*//*(◆修正部分3)*/
Nm:[["a1","a2","a3","a4","a5","s1","s2","s3","s4","s5","s6","s7"],["a1","a2","a3","a4","a5","s1","s2","s3","s4","s5","s6","s7"]]$/*["a1","a2","a3","a4","a5","s1","s2","s3","s4","s5","s6","s7"]として、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=2 then(if 5>=lB[k][2] then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


:   102.補充問題・章末問題
   補充問題
◆コマンド番号10201

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"補充問題5 10201 A,B,Cの3人がじゃんけんを1回行うとき、Aだけが勝つ確率は"/*(◆修正部分1)*/$
KOUSATU:"Aの出した手に対し、B,Cが負ける手を出すとすると・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:3/*(◆修正部分2)*/;
SUJIMITI:"Aの出した手に対し、Bが負ける手を出す確率は(  )、Cも負ける手を出す確率は(  )となるから、・・・"/*(◆修正部分2)*/;
Po:((1/M1)*(1/M1))/*(◆修正部分2)*/;
KAITOU:[Po,"Aだけが勝つ確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1],"A");/*"グー1,チョキ2,パー3とし、1つ目をAの手、2つ目をB、3つ目をCの手とすると、・・・"*//*(◆修正部分3)*/
Nm:[["Ag","Ac","Ap"],["Bg","Bc","Bp"],["Cg","Cc","Cp"]]$/*["Ag","Ac","Ap"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if mod(lB[k][1]-lB[k][2]+1,3)=0 and mod(lB[k][1]-lB[k][3]+1,3)=0 then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"補充問題5 10201 A,B,Cの3人がじゃんけんを1回行うとき、あいこになる確率は"/*(◆修正部分1)*/$
KOUSATU:"全員が違う手を出すか、全員が同じ手を出すか、だから・・・"/*(◆修正部分1)*/;
M1:3/*(◆修正部分2)*/;
SUJIMITI:"Aの出した手に対し、BもCも同じ手を出す確率は(  )、Bが違う手を出し、CがA,Bと違う手を出す確率は(  )となるから、・・・"/*(◆修正部分2)*/;
Po:((1/M1)*(1/M1)+(2/M1)*(1/M1))/*(◆修正部分2)*/;
KAITOU:[Po,"あいこになる確率"]/*(◆修正部分2)*/;
Xr([M1,M1,M1],"A");/*"グー1,チョキ2,パー3とし、1つ目をAの手、2つ目をB、3つ目をCの手とすると、・・・"*//*(◆修正部分3)*/
Nm:[["Ag","Ac","Ap"],["Bg","Bc","Bp"],["Cg","Cc","Cp"]]$/*["Ag","Ac","Ap"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=3 then(if (lB[k][1]=lB[k][2] and lB[k][1]=lB[k][3]) or (lB[k][1]#lB[k][2] and lB[k][1]#lB[k][3] and lB[k][2]#lB[k][3]) then (jishou:jishou+1,lDe:"◯")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10202

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"補充問題6 10202 男子2人、女子3人が、くじ引きで順番を決めて横1列に並ぶとき、男子、女子それぞれ続いて並ぶ確率は"/*(◆修正部分1)*/$
KOUSATU:"左側が男子か、女子か、の事象があり、それぞれにおいて男子が並ぶ場合、女子が並ぶ場合の数を考えると、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:5;Da:2/*(◆修正部分2)*/;
SUJIMITI:"全事象の場合の数は(  )、左側が男子の事象なら、左側に男子2人を並べる場合の数は(  )、右側に女子3人を並べる場合の数は(  )となるから、・・・"/*(◆修正部分2)*/;
Po:(2*nPr(Da,Da)*nPr(M1-Da,M1-Da)/nPr(M1,M1))/*(◆修正部分2)*/;
KAITOU:[Po,"男子、女子それぞれ続いて並ぶ確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];lM1:makelist(M1,M1);
Xr(lM1,"N");/*"1~10を重ならないように並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["D1","D2","J1","J2","J3"],M1)$/*,["D1","D2","J1","J2","J3"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=M1 then(if (lB[k][Da+1]>=Da+1 and lB[k][Da+2]>=Da+1 and lB[k][Da+3]>=Da+1) or (lB[k][1]>=Da+1 and lB[k][2]>=Da+1 and lB[k][3]>=Da+1) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"補充問題6 10202 男子2人、女子3人が、くじ引きで順番を決めて横1列に並ぶとき、両端の少なくとも一方が女子となる確率は"/*(◆修正部分1)*/$
KOUSATU:"両端が男子になる事象が余事象であり、左側が男子か、女子か、の事象があり、それぞれにおいて男子が並ぶ場合、女子が並ぶ場合の数を考えると、・・・"/*(◆修正部分1)*/;
M1:5;Da:2/*(◆修正部分2)*/;
SUJIMITI:"全事象の場合の数は(  )、両端に男子2人を並べる事象の場合の数は(  )、両端以外に女子3人を並べる事象の場合の数は(  )となるから、・・・"/*(◆修正部分2)*/;
Po:1-(nPr(Da,Da)*nPr(M1-Da,M1-Da)/nPr(M1,M1))/*(◆修正部分2)*/;
KAITOU:[Po,"両端の少なくとも一方が女子となる確率"]/*(◆修正部分2)*/;
Xr(lM1,"N");/*"1~5を重ならないように並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["D1","D2","J1","J2","J3"],M1)$/*,["D1","D2","J1","J2","J3"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=M1 then(if (lB[k][1]>=Da+1 or lB[k][M1]>=Da+1) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10203

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"補充問題7 10203 当たりくじ3本を含む10本のくじを、A,B,Cの3人がこの順に1本ずつ引く。引いたくじは戻さないものとして、Cだけが当たる確率は"/*(◆修正部分1)*/$
KOUSATU:"Aがはずれを引き、その条件の下でBがはずれを引き、その条件の下でCが当りを引くと考えて、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:10/*(◆修正部分2)*/;
SUJIMITI:"Aがはずれを引く確率は(  )、その条件の下でBがはずれを引く確率は(  )、その条件の下でCが当りを引く確率は(  )。だから、・・・"/*(◆修正部分2)*/;
Po:7/10*6/9*3/8/*(◆修正部分2)*/;
KAITOU:[Po,"Cだけが当りを引く確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1],"N");/*"1つ目はAが引いたくじ、2つ目はBが、3つ目はCが引いたくじで、1~10を重ならないように並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7"],3)$/*,[a1","a2","a3","s1","s2","s3","s4","s5","s6","s7"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if ( lB[k][1]>=4 and lB[k][2]>=4 and 3>=lB[k][3]) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"補充問題7 10203 当たりくじ3本を含む10本のくじを、A,B,Cの3人がこの順に1本ずつ引く。引いたくじは戻さないものとして、Cが当たる確率は"/*(◆修正部分1)*/$
KOUSATU:"A当り・B当りの条件下でC当りの事象、A当り・Bはずれの条件下でC当りの事象、Aはずれ・B当りの条件下でC当りの事象、Cだけが当りの事象を考えて、・・・"/*(◆修正部分1)*/;
M1:10/*(◆修正部分2)*/;
SUJIMITI:"A当り・B当りの条件下でC当りの確率(  )、A当り・Bはずれの条件下でC当りの確率(  )、Aはずれ・B当りの条件下でC当りの確率(  )、・・・"/*(◆修正部分2)*/;
Po:3/10*2/9*1/8+3/10*7/9*2/8+7/10*3/9*2/8+7/10*6/9*3/8/*(◆修正部分2)*/;
KAITOU:[Po,"Cが当りを引く確率"]/*(◆修正部分2)*/;
Xr([M1,M1,M1],"N");/*"1つ目はAが引いたくじ、2つ目はBが、3つ目はCが引いたくじで、1~10を重ならないように並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["a1","a2","a3","s1","s2","s3","s4","s5","s6","s7"],3)$/*,[a1","a2","a3","s1","s2","s3","s4","s5","s6","s7"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=3 then(if (3>=lB[k][3]) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10204

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"補充問題コラム 10204 3つの箱の1つにだけ当たりの札が入っている。挑戦者が箱を選ぶ。司会者は残りの箱のうちはずれの札の箱を開ける。ここで挑戦者は選んだ箱をまだ開けられていない箱に変えてもよい。選んだ箱を変えて当たる確率は"/*(◆修正部分1)*/$
KOUSATU:"選んだ箱を1つ目、選ばずに開けられていない箱を2つ目とし、1つ目には当たり1枚とはずれ2枚のどれかが入っており、2つ目には司会者が開けた箱のはずれの札と1つ目の箱の札を除いた札が入っている、3つ目はすでに開けられているから問題外と考えて、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:3/*(◆修正部分2)*/;
SUJIMITI:"1つ目の箱に当たりの札がある事象は、2つ目に当たりの札がある事象の余事象と考えて、1つ目の箱に当たりの札がある確率は(  )。だから、・・・"/*(◆修正部分2)*/;
Po:1-(1/3)/*(◆修正部分2)*/;
KAITOU:[Po,"選んだ箱を変えて当たる確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1-1],"N");/*"1つ目はAが引いたくじ、2つ目はBが、3つ目はCが引いたくじで、1~10を重ならないように並べて・・・"*//*(◆修正部分3)*/
dlA([2,[2,3]]);print(lA)/*"2つ目の2は、3と同一視し、1つ目に3があれば、重複するものとして削除"*/;
Nm:makelist(["a1","s1","s2"],2)$/*,["a1","s1","s2"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/ print("lA",lA)$ Nm:makelist(["a1","s1","s2"],2)$/*,["a1","s1","s2"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=2 then(if ( 1>=lB[k][2]) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行し、結果を考察せよ。


◆コマンド番号10205

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"章末問題A1 10205 0,1,2,3,4,5の6個の数字を1個ずつ使って、3桁の数字を作るとき、偶数は何個か"/*(◆修正部分1)*/$
KOUSATU:"一の桁は偶数。百の桁は1~5、十の桁は0~5となるが、1個ずつしか使えないので、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:6/*(◆修正部分2)*/;
SUJIMITI:"偶数だから、一の桁が0となるか2,4となるかで、場合分けして、それぞれ一の桁、百の桁、十の桁を考えると、・・・"/*(◆修正部分2)*/;
Po:1*5*4+2*4*4/*(◆修正部分2)*/;
KAITOU:[Po,"偶数となる場合の数"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1],"N");/*"1つ目が百の桁、2つ目が十の桁、3つ目が一の桁重ならないように並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" 1"," 2"," 3"," 4"," 5"," 0"],3)$/*,[" 1"," 2"," 3"," 4"," 5"," 0"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if ( 6#lB[k][1] and mod(lB[k][3],2)=0) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題A1 10205 0,1,2,3,4,5の6個の数字を1個ずつ使って、3桁の数字を作るとき、5の倍数は何個か"/*(◆修正部分1)*/$
KOUSATU:"一の桁は0か5。百の桁は1~5、十の桁は0~5となるが、1個ずつしか使えないので、・・・"/*(◆修正部分1)*/;
M1:6/*(◆修正部分2)*/;
SUJIMITI:"偶数だから、一の桁が0となるか5となるかで、場合分けして、それぞれ一の桁、百の桁、十の桁を考えると、・・・"/*(◆修正部分2)*/;
Po:1*5*4+1*4*4/*(◆修正部分2)*/;
KAITOU:[Po,"偶数となる場合の数"]/*(◆修正部分2)*/;
Xr([M1,M1,M1],"N");/*"1つ目が百の桁、2つ目が十の桁、3つ目が一の桁重ならないように並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" 1"," 2"," 3"," 4"," 5"," 0"],3)$/*,[" 1"," 2"," 3"," 4"," 5"," 0"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=3 then(if ( 6#lB[k][1] and lB[k][3]>=5) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10206

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"章末問題A2 10206 大人2人と子ども4人が円形の6人テーブルに着席するとき、大人2人が向かい合う並び方は何とおりか"/*(◆修正部分1)*/$
KOUSATU:"大人一人を固定して、他の5人について考えると、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:6/*(◆修正部分2)*/;
SUJIMITI:"固定した大人の向かいも決まるから、残りの4席に子ども4人を並べると、・・・"/*(◆修正部分2)*/;
Po:4!/*(◆修正部分2)*/;
KAITOU:[Po,"大人2人が向かい合う並べ方の数"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([1,2,M1,M1,M1,M1],"N");/*"1つ目が固定した大人1、2つ目がもう一人の大人2、残り4つに子ども4人を並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["O1","O2","k1","k2","k3","k4"],6)$/*,["O1","O2","k1","k2","k3","k4"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=6 then(if ( 1=lB[k][1] and lB[k][2]=2) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題A2 10206 大人2人と子ども4人が円形の6人テーブルに着席するとき、大人2人の間に子ども1人が入る並び方は何とおりか"/*(◆修正部分1)*/$
KOUSATU:"大人一人を固定して、他の5人について考えると、・・・"/*(◆修正部分1)*/;
M1:6/*(◆修正部分2)*/;
SUJIMITI:"固定した大人の右に席を1つ空けてもう一人の大人が着席する場合と、左に1つ空ける場合があって、残りの4席に子ども4人を並べると、・・・"/*(◆修正部分2)*/;
Po:4!*2/*(◆修正部分2)*/;
KAITOU:[Po,"大人2人の間に子どもが1人入る並べ方の数"]/*(◆修正部分2)*/;
Xr([1,M1,M1,M1,M1,M1],"N");/*"1つ目が固定した大人1、2つ目がもう一人の大人2、残り4つに子ども4人を並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["O1","O2","k1","k2","k3","k4"],6)$/*,["O1","O2","k1","k2","k3","k4"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=6 then(if ( 1=lB[k][1] and (lB[k][3]=2 or lB[k][5]=2)) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10207

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"章末問題A5 10207 1~9までの9枚の番号札から4枚を選ぶとき、全部が6以下の確率は"/*(◆修正部分1)*/$
KOUSATU:"事象の場合の数は1~6から4枚を選ぶときのもの、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:9;M2:4/*(◆修正部分2)*/;
SUJIMITI:"全事象の場合の数は(  )、事象の場合の数は(  )、・・・"/*(◆修正部分2)*/;
Po:nCr(6,M2)/nCr(M1,M2) /*(◆修正部分2)*/;
KAITOU:[Po,"全部が6以下の確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1,M1],"G");/*"組合せだから、昇順に4つの番号札を並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9"],4)$/*,[" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=4 then(if lsum(if i<=6 then 1 else 0,i,lB[k])=4) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題A5 10207 1~9までの9枚の番号札から4枚を選ぶとき、最大の番号が7以上確率は"/*(◆修正部分1)*/$
KOUSATU:"この事象の余事象は、全部が6以下の事象だから、・・・"/*(◆修正部分1)*/;
M1:9;M2:4/*(◆修正部分2)*/;
SUJIMITI:"余事象の確率は(  )だから、・・・"/*(◆修正部分2)*/;
Po:1-nCr(6,M2)/nCr(M1,M2) /*(◆修正部分2)*/;
KAITOU:[Po,"最大の番号が7以上の確率"]/*(◆修正部分2)*/;
Xr([M1,M1,M1,M1],"G");/*"組合せだから、昇順に4つの番号札を並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9"],4)$/*,[" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=4 then(if lB[k][4]>=7 then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10208

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"章末問題A6 10208 赤玉7個、白玉3個が入った袋から1個ずつ球を取り出す。取り出した球は戻さないとき、3番目に初めて白が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"1つ目、2つ目が赤という条件のもとで、3つ目が白となるのだから、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$
take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:10/*(◆修正部分2)*/;
SUJIMITI:"1つ目赤の確率は(  )、その条件で2つ目赤の確率は( )、・・・"/*(◆修正部分2)*/;
Po:7/10*6/9*3/8 /*(◆修正部分2)*/;
KAITOU:[Po,"3番目に初めて白の確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1],"N");/*"1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["a1","a2","a3","a4","a5","a6","a7","s1","s2","s3"],3)$/*,["a1","a2","a3","a4","a5","a6","a7","s1","s2","s3"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if 7>=lB[k][1] and 7>=lB[k][2] and lB[k][3]>=8 then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題A6 10208 赤玉7個、白玉3個が入った袋から1個ずつ球を取り出す。取り出した球は戻さないとき、4番目に2個目の白が出る確率は"/*(◆修正部分1)*/$
KOUSATU:"1つ目白、2,3つ目赤、4つ目白の事象、1つ目赤、2つ目白、3つ目赤、4つ目白の事象、1,2つ目赤、3つ目白、4つ目白の事象、という書く事象の確率の和だから、・・・"/*(◆修正部分1)*/;
M1:10/*(◆修正部分2)*/;
SUJIMITI:"1つ目白の確率は(  )、その条件で2つ目赤の確率は( )、・・・"/*(◆修正部分2)*/;
Po:3/10*7/9*6/8*2/7+7/10*3/9*6/8*2/7+7/10*6/9*3/8*2/7 /*(◆修正部分2)*/;
KAITOU:[Po,"4番目に2つ目の白の確率"]/*(◆修正部分2)*/;
Xr([M1,M1,M1,M1],"N");/*"1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["a1","a2","a3","a4","a5","a6","a7","s1","s2","s3"],4)$/*,["a1","a2","a3","a4","a5","a6","a7","s1","s2","s3"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=4 then(if lsum(if i>=8 then 1 else 0,i,take(3,lB[k]))=1 and lB[k][4]>=8 then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10209

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"章末問題B6 10209 A,B,C,Dの4人が品物を1個ずつ持ち寄り、分けるとき、2人だけが自分の物をもらう分け方は、何通りか"/*(◆修正部分1)*/$
KOUSATU:"4人のうちどの2人になるかは4C2通り、その1通りについて、他の2人は自分のものでないのでないが、これは明らかに・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
CP(n):=if n#1 then n!-sum(nCr(n,k)*CP(n-k),k,1,n) else 0;/*完全順列*/
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$

take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:4/*(◆修正部分2)*/;
SUJIMITI:"4人のうちどの2人になるかは4C2通り、その1通りについて、他の2人は自分のものでないのでないが、これは明らかに( )通りとなり、・・・・・・"/*(◆修正部分2)*/;
Po:nCr(4,2)*1 /*(◆修正部分2)*/;
KAITOU:[Po,"2人だけ自分のものをもらう場合の数"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1,M1],"N");/*"1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["a1","a2","a3","a4"],M1)$/*,["a1","a2","a3","a4"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=4 then(if (lB[k][1]=1 and lB[k][2]=2 and lB[k][3]#3 and lB[k][4]#4)or(lB[k][1]=1 and lB[k][2]#2 and lB[k][3]=3 and lB[k][4]#4)or(lB[k][1]=1 and lB[k][2]#2 and lB[k][3]#3 and lB[k][4]=4)or(lB[k][1]#1 and lB[k][2]=2 and lB[k][3]=3 and lB[k][4]#4)or(lB[k][1]#1 and lB[k][2]=2 and lB[k][3]#3 and lB[k][4]=4)or(lB[k][1]#1 and lB[k][2]#2 and lB[k][3]=3 and lB[k][4]=4) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題B6 10209 A,B,C,Dの4人が品物を1個ずつ持ち寄り、分けるとき、各人が他人の物をもらう分け方は、何通りか"/*(◆修正部分1)*/$
KOUSATU:"n人で持ち寄り各人が他人の物をもらう分け方をCP(n)として、1人だけ同じ場合は、nC1*CP(n-1)、2つだけ同じ場合は、nC2*CP(n-2)、・・・nCn*CP(0)となり、これらとCP(n)を合わせるとn!となるので、・・・"/*(◆修正部分1)*/;
M1:4/*(◆修正部分2)*/;
SUJIMITI:"4!から、1人だけ自分のもの、2人だけ自分のもの、3人(したがって4人とも)自分のものとなる場合の数の合計( )を引くと、・・・・・・"/*(◆修正部分2)*/;
Po:CP(4) /*(◆修正部分2)*/;
KAITOU:[Po,"4人とも自分のものでないものをもらう場合の数"]/*(◆修正部分2)*/;
Xr([M1,M1,M1,M1],"N");/*"1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist(["a1","a2","a3","a4"],M1)$/*,["a1","a2","a3","a4"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=4 then(if lB[k][1]#1 and lB[k][2]#2 and lB[k][3]#3 and lB[k][4]#4 then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10210

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"章末問題B10 10210 0000から8888までの番号のうち、0101,0033のように同じ数字を2こずつ含むものは何個か"/*(◆修正部分1)*/$
KOUSATU:"0~9の番号のうちどの2つを選んで考えるか、4桁のうちのどの2つで考えるか、すると・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
CP(n):=if n#1 then n!-sum(nCr(n,k)*CP(n-k),k,1,n) else 0;/*完全順列*/
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$

take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:10/*(◆修正部分2)*/;
SUJIMITI:"番号の選び方は(  )通り、その1つについて桁の選び方は(  )通りで、・・・"/*(◆修正部分2)*/;
Po:nCr(10,2)*nCr(4,2) /*(◆修正部分2)*/;
KAITOU:[Po,"同じ数字を2こずつ含むものの場合の数"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1,M1],"A");/*"重複を許して、1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9"," 0"],4)$/*,[" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9"," 0"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=4 then(if (lB[k][1]=lB[k][2] and lB[k][3]=lB[k][4] and lB[k][1]#lB[k][3])or(lB[k][1]=lB[k][3] and lB[k][2]=lB[k][4] and lB[k][1]#lB[k][2])or(lB[k][1]=lB[k][4] and lB[k][2]=lB[k][3] and lB[k][1]#lB[k][2]) then (jishou:jishou+1,lDe:"O")else lDe:"") else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題B10 10210 0000から9999までの番号のうち、1248のように異なる数字が小さい順に並ぶものは何個か"/*(◆修正部分1)*/$
KOUSATU:"0~9の番号のうちどの4つを選ぶかで、異なる数字が小さい順に並ぶものが1つ決まるので、・・・"/*(◆修正部分1)*/;
M1:10/*(◆修正部分2)*/;
SUJIMITI:"4番号の選び方は(  )通りだから、・・・"/*(◆修正部分2)*/;
Po:nCr(10,4) /*(◆修正部分2)*/;
KAITOU:[Po,"異なる数字が小さい順に並ぶ場合の数"]/*(◆修正部分2)*/;
Xr([M1,M1,M1,M1],"G");/*"重複を許さず、昇順で1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9"," 0"],4)$/*,[" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9"," 0"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( if length(lB[k])=4 then(jishou:jishou+1,lDe:"O")else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/


◆コマンド番号10211

●●●●●●●●●●●●●●●●
kill(all) /**/$
MONDAI:"章末問題B13 10211 じゃんけんを3人でして、負けたものから順に抜け、最後に残ったものを優勝者とする。あいこも1回と数えるとき、1回目で優勝者が決まる確率は"/*(◆修正部分1)*/$
KOUSATU:"グー1、チョキ2、パー3を重複を許して並べる。1回で優勝者が決まるのは、1,2,2、2,3,3、3,1,1のうちのいずれかを並べる場合だから、・・・"/*(◆修正部分1)*/;

KANSUU:"";
nPr(n,r):=block([i,p,P],p:1,
/**/for i:n step -1 thru n-r+1 do(p:p*i),P:p
/**/)$
nCr(n,r):=nPr(n,r)/r!$
CP(n):=if n#1 then n!-sum(nCr(n,k)*CP(n-k),k,1,n) else 0;/*完全順列*/
nXr(n,r,sw):=block([i,j],/*print("nHr",lA,length(lA[1]),r),*/
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("lL",lL),*/
/**//**//**/for j:1 thru n do(
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),/*print("lEA",lEA),*/
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*"異なるsw="N"、昇順"G"、降順"L"、重複"A"でn個からr個の並べ方"*/
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))$/*1324>>...sw="N",1234>>sw="G",4321>>sw="L",1122>>sw="A"*/
dlA(list):=block([i,iM,j,jM,list2,D],iM:length(lA),jM:length(lA[1]),list2:[] /*list:[2,[2,3]]*/,
/**/for i:1 thru iM do(D:true,
/**//**/for j:1 thru jM do(if lA[i][list[1]]=list[2][1] and j#list[1] and lA[i][j]=list[2][2] then D:false),
/**//**/if D=true then list2:endcons(lA[i],list2)),
/**/lA:list2)$
Cn(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lA),lN:[],jM:length(lA[1]),
/**/for i:1 thru iM do(lNe:[],r:length(lNe),
/**//**/while jM>r do(lNe:endcons(Nm[r+1][lA[i][r+1]],lNe),r:length(lNe)),
/**//**/lN:endcons(lNe,lN)),
/**/lA:lN)$
CnJ(list):=block([i,iM,j,jM,lN,lNe,r],iM:length(lJ),lN:[],/*jM:length(lA[1]),*/
/**/for i:1 thru iM do(jM:length(lJ[i]),lNe:lJ[i],r:1,
/**//**/while jM>=1+2*r do(if lNe[1+2*r]#". "and lne[1+2*r]#". " then(lNe:substl(list[r][lNe[1+2*r]],lNe,1+2*r)),r:r+1),
/**//**/lN:endcons(lNe,lN)),
/**/lJ:lN,print(lN))$

take(n,list):=rest(list,n-length(list))$
zJ():=block([i,iM,j,jM,bB,bN],iM:length(lA),jM:length(lA[1]),bB:[],
/**/for j:1 thru jM do(
/**//**/for i:1 thru iM do(bN:take(j,lA[i]),
/**//**//**/if bB#bN then (lB:endcons(bN,lB),bB:bN) /*else(print(bB,bN))*/
/**//**//**/)))$/*"樹形図構成過程(lB)まとめ"*/
sJ():=block([i,iM,nB,dB,nC,lCe,nN,dN],iM:length(lB),nB:1,dB:[],nC:0,lCe:[],
/**/for i:1 thru iM do(nN:length(lB[i]),dN:take(nN-1,lB[i]),/*display(i,nB,nN,dB,dN),*/
/**//**/if nB=nN then(
/**//**//**//**/if dB=dN then(nC:nC+1/*,display(dB,dN,nC)*/
/**//**//**//**//**/)else(lCe:endcons(nC,lCe),dB:dN,nC:1/*,display(dB,dN,nC,lCe)*//*,display(i,nB,dB,lCe)*/)
/**//**//**/)else(lCe:endcons(nC,lCe),lC:endcons(lCe,lC)/*,display(lC,lCe)*/,nC:1,nB:nN,dB:dN,lCe:[])),
/**/lCe:endcons(nC,lCe),lC:endcons(lCe,lC))$/*"樹形図構成点(lC)まとめ"*/
substl(a,list,k):=block([n,l],n:length(list),l:append(append(rest(list,k-1-n),[a]),rest(list,k)))$
mJ():=block([i,iM,nlC,lP,lJ0,lJe,lJ1,idB,kM,lJee,lJeee],nlC:[0],lP:[" >",". ","――"," ├"," │"," └","―┬"],
/**/lJ0:[lP[2]],lJe:[lP[1]],iM:length(lC),lJ1:lJ0,idB:0,lCb:1,
/**/for i:1 thru iM do(jM:length(lC[i]),nlC:endcons(lsum(i1,i1,lC[i]),nlC),
/**//**/for j:1 thru jM do(
/**//**//**/if i#1 then (lJe:lJ[j+lsum(ls,ls,take(i-1,nlC))]),
/**//**//**/if i#1 and j=jM then lJ0:lJ1,
/**//**//**/kM:lC[i][j],/*display(lC[i][j]),*/
/**//**//**/for k:1 thru kM do(
/**//**//**//**/if i=1 then(
/**//**//**//**//**//**/if k=1 then(
/**//**//**//**//**//**//**//**/lJee9:[lP[1],lP[7],last(lB[idB+k])])
/**//**//**//**//**//**//**/elseif k=kM then(
/**//**//**//**//**//**//**//**/lJee9:[lP[2],lP[6],last(lB[idB+k])])
/**//**//**//**//**//**//**/else lJee9:[lP[2],lP[4],last(lB[idB+k])]
/**//**//**//**//**//**//*,display([lJee,lJee9])*/ )
/**//**//**//**//**/else(
/**//**//**//**//**//**/if k=1 and k#kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[7],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/elseif k=1 and k=kM then(
/**//**//**//**//**//**//**//**/lJee9:append(lJ[lCb],[lP[3],last(lB[idB+k])]),lJee8:lJee9)
/**//**//**//**//**//**//**/else(
/**//**//**//**//**//**//**//**/lJee9:lJ[lCb],
/**//**//**//**//**//**//**//**/for k2:1 thru length(lJ[lCb]) do(
/**//**//**//**//**//**//**//**//**/if lJee9[k2]=lP[4] or lJee9[k2]=lP[5] or lJee9[k2]=lP[7] then(
/**//**//**//**//**//**//**//**//**//**//**/lJee9:substl(lP[5],lJee9,k2)/*,print(k2,lJee9)*/)
/**//**//**//**//**//**//**//**//**//**/else (lJee9:substl(lP[2],lJee9,k2)/*,print(k2,k2,lJee9)*/)),
/**//**//**//**//**//**//**//**/if k#kM then(/*kokokara*/
/**//**//**//**//**//**//**//**//**//**/lJee9:append(lJee9,[lP[4],last(lB[idB+k])]))
/**//**//**//**//**//**//**//**//**/else lJee9:append(lJee9,[lP[6],last(lB[idB+k])]))
/**//**//**//**//**//**//*,display([lJee,lJee9])*/),/*kokomade*/
/**//**//**//**/if i#1 and k=kM then lCb:lCb+1,
/**//**//**//**/lJ:endcons(lJee9,lJ) /**/),
/**//**//**/idB:idB+lC[i][j]),
/**//**/lJ0:endcons(lP[5],lJ0),lJ0:endcons(lP[2],lJ0),/*display(lJ0),*/
/**//**/lJ1:endcons(lP[2],lJ1),lJ1:endcons(lP[2],lJ1)/*,display(lJ1)*/))$/*"樹形図(lJ)の構成(最終結果は最後のブロックの前半)"*/

M1:3/*(◆修正部分2)*/;
SUJIMITI:"1,2,2の場合なら、1を3人の誰にするかで決まるので(  )通りだから、・・・"/*(◆修正部分2)*/;
Po:(3+3+3)/3^3 /*(◆修正部分2)*/;
KAITOU:[Po,"1回で優勝者が決まる確率"]/*(◆修正部分2)*/;
KAKUNIN:"樹形図で確認すると";
lA:[[]];
Xr([M1,M1,M1],"A");/*"重複を許して、1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" g"," c"," p"],3)$/*,[" g"," c"," p"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
print("lA",lA)$
lB:[];
zJ()$/*"樹形図構成過程まとめ"*/
print("lB",lB)$
jishou:0;kM:length(lB);zenjishou:length(lA);lD:[];
for k:1 thru kM do( if length(lB[k])=3 then(if lsum(i*10^i,i,lB[k])=410 or lsum(i*10^i,i,lB[k])=6200 or lsum(i*10^i,i,lB[k])=3020 then (jishou:jishou+1,lDe:"O")else lDe:"")else lDe:"",lD:endcons(lDe,lD));/*(◆修正部分4)*/
print([jishou,zenjishou,length(lD)]);/**/
lC:[];
sJ()$/*"樹形図構成点まとめ"*/
print("lB->lC",lC)$
lJ:[];
mJ()$/*"樹形図の構成(最終結果は最後のブロック)"*/
CnJ(Nm)$
print(MONDAI1)$
iM:length(lJ);for i:1 thru iM do(print([lJ[i],lD[i]]))$/*"樹形図の表示(最終結果は最後のブロック)"*/

print(MONDAI)$
print(SUJIMITI)$
print([KAITOU,jishou,zenjishou])/**/$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題B13 10211 じゃんけんを3人でして、負けたものから順に抜け、最後に残ったものを優勝者とする。あいこも1回と数えるとき、1回目終了後に2人残っている確率は"/*(◆修正部分1)*/$
KOUSATU:"グー1、チョキ2、パー3を重複を許して並べる。1回終了後に2人残っているのは、1,1,2、2,2,3、3,3,1のうちのいずれかを並べる場合だから、・・・"/*(◆修正部分1)*/;
M1:3/*(◆修正部分2)*/;
SUJIMITI:"1,1,2の場合なら、2を3人の誰にするかで決まるので(  )通りだから、・・・"/*(◆修正部分2)*/;
Po:(3+3+3)/3^3 /*(◆修正部分2)*/;
KAITOU:[Po,"1回終了後に2人残っている確率"]/*(◆修正部分2)*/;
Xr([M1,M1,M1],"A");/*"重複を許して、1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" g"," c"," p"],3)$/*,[" g"," c"," p"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( (if length(lB[k])=3 then(if lsum(i*10^i,i,lB[k])=220 or lsum(i*10^i,i,lB[k])=3400 or lsum(i*10^i,i,lB[k])=6010 then (jishou:jishou+1,lDe:"O")else lDe:"")else lDe:""),lD:endcons(lDe,lD));/*(◆修正部分4)*/

◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題B13 10211 じゃんけんを2人で1回して、あいこになる確率は"/*(◆修正部分1)*/$
KOUSATU:"グー1、チョキ2、パー3を重複を許して並べる。じゃんけんを2人で1回して、あいこになるのは、1,1、2,2、3,3のうちのいずれかを並べる場合だから、・・・"/*(◆修正部分1)*/;
M1:3/*(◆修正部分2)*/;
SUJIMITI:"1,1の場合は(  )通りだから、・・・"/*(◆修正部分2)*/;
Po:(1+1+1)/3^2 /*(◆修正部分2)*/;
KAITOU:[Po,"2人がじゃんけんを1回してあいこの確率"]/*(◆修正部分2)*/;
Xr([M1,M1],"A");/*"重複を許して、1つ目、2つ目、3つ目と並べて・・・"*//*(◆修正部分3)*/
Nm:makelist([" g"," c"," p"],2)$/*,[" g"," c"," p"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( (if length(lB[k])=2 then(if lsum(i*10^i,i,lB[k])=20 or lsum(i*10^i,i,lB[k])=400 or lsum(i*10^i,i,lB[k])=6000 then (jishou:jishou+1,lDe:"O")else lDe:"")else lDe:""),lD:endcons(lDe,lD));/*(◆修正部分4)*/

◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"章末問題B13 10211 じゃんけんを3人でして、負けたものから順に抜け、最後に残ったものを優勝者とする。あいこも1回と数えるとき、ちょうど3回目終了後に優勝者が決まる確率は"/*(◆修正部分1)*/$
KOUSATU:"ちょうど3回目で優勝者が決まるのは、3人あいこ・3人あいこ・3人から1人決定(3→1)、3人あいこ・3→2・2→1、3→2・2人あいこ・2→1、の場合で、条件付確率により、・・・"/*(◆修正部分1)*/;
M1:3/*(◆修正部分2)*/;
SUJIMITI:"3人あいこの確率(  )、3→1の確率(  )、3→2の確率(  )、2人あいこの確率(  )、2→1の確率(  )だから、・・・"/*(◆修正部分2)*/;
Po:1/3*1/3*1/3+1/3*1/3*2/3+1/3*1/3*2/3 /*(◆修正部分2)*/;
KAITOU:[Po,"ちょうど3回目終了後に優勝者決定の確率(樹形図、後ろの数は3人じゃんけんでのあいこ)"]/*(◆修正部分2)*/;
Xr([M1,M1,M1],"A");/*"重複を許して、1つ目、2つ目、3つ目と並べて、3人であいこになるのは・・・"*//*(◆修正部分3)*/
Nm:makelist([" g"," c"," p"],3)$/*,[" g"," c"," p"]などとして、・・・*//*lCの成分の名前変更(◆修正部分3)*/
for k:1 thru kM do( (if length(lB[k])=3 then(if lsum(i*10^i,i,lB[k])=30 or lsum(i*10^i,i,lB[k])=600 or lsum(i*10^i,i,lB[k])=9000 or lsum(i*10^i,i,lB[k])=3210 then (jishou:jishou+1,lDe:"O")else lDe:"")else lDe:""),lD:endcons(lDe,lD));/*(◆修正部分4)*/