場合の数(各々の数)と数え上げ

 これは本当にすごいな。

 何がすごいって、「読解」すれば、わかるようになっているんだろうね。
すごいね。よくこんな問題思いつくものだと感心する。
「理解する」ってどういうことなのだろう。それが言葉を通じて為されるとき、それが「読解」だ。

 

【7 数を分けていくツリーのふしぎ】
『数学ができるようになる算数ドリル』P46

数を2つに順次分けて行って「ツリー」を作るという。記号を割り当てる。

( A B C D E F G H )     8
( A B C D E | F G H )     ∟(5+3)
( A B CD E | F GH )     ∟(3+2)∟(2+1)
A C | D E |G |)     ∟(2+1)∟(1+1)∟(1+1)
( A B | C | D E | F | G | H )     ∟(1+1)

前段

A+B+C+D+E+F+G+H   
=( A + B + C + D + E )+( F + G + H )
=(( A + B + C )+( D + E ))+ (( F + G )+ H )
=((( A + B )+( C ))+(( D )+( E )))+((( F )+( G ))+ H )
=(((( A )+( B ))+( C ))+(( D )+( E )))+((( F )+( G ))+( H ))

後段

( A + B + C + D + E )×( F + G + H )
(( A + B + C )×( D + E ))+ (( F + G )× H )
((( A + B )×( C ))+(( D )×( E )))+((( F )×( G ))
(( A )×( B ))

「展開」すると、どうなるか。

AF+BF+CF+DF+EF+AG+BG+CG+DG+EG+AH+BH+CH+DH+EH
AD+BD+CD+AE+BE+CE+FH+GH
AC+BC+DE+FG
AB
=(AB+AC+AD+AE+AF+AG+AH)+(BC+BD+BE+BF+BG+BH)+(CD+CE+CF+CG+CH)+(DE+DF+DG+DH)+(EF+EG+EH)+(FG+FH)+GH

数を2つに分けるたびに新しくできた2つの数をかけてゆくんだ

7 数を分けていくツリーのふしぎ
『数学ができるようになる算数ドリル』P46

その後、その積の和をだすのだけれど、それはさておき、さて「読解」である。

10 ゆくんだ         til all
20 ↳かけて                                 
30  ↳数を
41   ↳2つの
42   ↳できた
50    ↳新しく     
60     ↳たびに     for every 
70      ↳分ける
80       ↳数を
90        ↳2つに

どうもうまくゆかない。

⓪( A B C D E | F G H ) 
①( A B CD E | F GH )   + ( 5 × 3 )

②( A B C | D E | F G | H )      + ( 2 × 1 )

③( A B C | D E | F G | H )      + ( 3 × 2 )
④( A B | C | D E | F | G | H )   + ( 1 × 1 )
⑤( A B | C | D E | F | G | H )      + ( 1 × 1 )
⑥( A B | C |E | F | G | H )      + ( 2 × 1 )
⑦( A | B | C |E | F | G | H )      + ( 1 × 1 ) 

さて、問題を言い換えるとこうである。

 P( n ) = P( α ) + P( β ) + ( α × β )  , α + β = n

ただし、1は2つに割れないので、P( 1 ) = 0 とする。
したがって、

 P( 8 ) = P( 5 ) + P( 3 ) + ( 5 × 3 )  
 P( 5 ) = P( 3 ) + P( 2 ) + ( 3 × 2 )
 P( 3 ) = P( 2 ) + P( 1 ) + ( 2 × 1 )
 P( 2 ) = P( 1 ) + P( 1 ) + ( 1 × 1 ) = 1 
 P( 3 ) = 1 + 0 + ( 2 × 1 ) = 3
 P( 5 ) = 3 + 1 + ( 3 × 2 ) = 10
 P( 8 ) = 10 + 3 + ( 5 × 3 ) =28   

ここで、( A B | C)から( A B C )への変化を考えてみると、( A B C )の場合の数は、ABとAC、BCの3通りであり、これは、( A B C )の3文字から2文字を選ぶ場合の数に等しい。2C= 1 より、3C22C21C+ ( 2 × 1 ) , 2 + 1 = 3 で 1C2=0 とするならば、n=3のとき、P( n ) = nCが成り立つ。
n= t のとき、P( t ) = tCが成り立つならば、P( t + 1 ) =  P( α ) + P( β + 1 ) + α× ( β + 1 ) =   αC2  +  β+1C2  + α×( β + 1 ) =   α+1C2  +  βC2  + ( α +1 )× β =  t+1C, α + β + 1 = t+1
で n= t+1 のときも成り立つ。 

nC2
=n ( n - 1 ) /2
= ( α + β )( α + β - 1 ) / 2
= {( α + β )2 - ( α + β )} / 2
= { α ( α - 1 ) + β ( β - 1 ) +2( α × β )} / 2 = α ( α - 1 ) / 2 + β ( β - 1 ) / 2 +2( α × β ) / 2
αC2βC+ ( α × β ) , α + β = n

すなわち、この問題は、(順番に関係なく)n個から2個選ぶ場合の数に等しく、それは「総当たり戦」と等しいので、順番に選び取って行くときには、( n - 1 )までの和で求められる。


どうも「読解」がうまくゆかない。再帰的な場合の記述の仕方がうまくゆかない。
これは、トーナメント戦と総当たり戦をくらべることにもなっている。
P()はフィボナッチ数列を思い出して、構成した。

それよりも「読解」がままならない。弱ったな。

techacademy.jp

こういったアルゴリズムと同じことを自然言語で言ってるなずなんだけれど。