03. 継子立て


 
0. はじめに 
   このサイトでは、数学を学習する上で意義のある教材として活用できそうな数学ゲームを紹介することを目的としています。
 今回は「継子立て(ままこたて)
」を取り上げて、このゲームの 仕組みについて考察します。
このゲームで遊びながら、気軽に数学
  的思考を楽しんでください。
 
1.「継子立て」 とは・・・
     
継子立ては碁石を使う遊戯で、徒然草(1330年頃)の文中に引用されているほど、古くからわが国に伝わる一種の数理ゲームです。
     この名称の由来は、黒石を先妻の子(継子),白石を後妻の子(実子)に見立てて、相続人一人を決定するというドラマに擬して遊んだ
     ことによります。この「継子立て」の「立て」とは、「際立たせる」 という意味からきているというのが定説です。江戸時代の和算家 関考和
  (1662?~1708)もこの数理を研究しています。


2.塵劫記に載っている記述
   算法(和算)の学習書である塵劫記
じんこうき)(1630年頃) には、次のような面白い記述が載っています。
 
 
継子立て

   実子15人と継子15人の中から家督を継ぐ1人を決めるときに、実子に家督を継がせたいと思った継母(実子の親)が策略を練って、
  下の図[A]のように、実子と継子を円形に並べました。そして、最初から右回りに数えて10人目ごとに外して、継子だけを除こうとしま
   した。
   そして、右の図[B]が示すように、途中で最後に残った継子が、『最後に残った私から数え始めてください』 と機転を利かしました。
  継母は、実子が全部残っていることに安心して、その通りにしました。その結果、どんでん返しが起こって、継母の目論見(もくろみ)
  はあっけなく崩れ去りました。

                     

 
 
   確かに、実子15人と継子15人の場合、上の図[B]に示したように、途中で、実子15人と継子1人が残りますね。 そこで、問題です。
 
 
 【問題1】
          16人の子供のうちにただ1人残った継子から数え始めると、どのようなどんでん返しが起こって、継母の目論見が崩れ去ること
   になるのでしょうか。そのどんでん返しを
具体的に示してください。
 
 【解答】  この問題1の解答をクリックすると、その解答 が示されます。

 
3.「継子立て」 の仕組み
     最後に残って家督を継ぐことになった継子は、この「継子立て」の仕組みを事前に知っていたのではないでしょうか。以下にその仕組み
 について説明します。
 
  実は、子供の人数 n(n>=1) と何番目ごとに除いていくかという値 m を定めると、最後に残るのが何番目の子供であるかを事前に知る
 ことができます。
まず、n人の子供を円形に並べおいて、説明のために、ある特定の位置から時計回りに順に番号 1,2,3,・・・,n を付け
 ておきます。
そして、番号1の子供から時計回りに数えてm番目の子供をその位置から除いていくという操作を繰り返したときに、最後に残  
 るこ子供の番号を F(n) とします。
  このF(n)番目の子供の次の子供から数えてm-1番目の子供をさらに取り除くとして、その子供の番号をF(n-1)としておきます。つまり、
 このようにF(n-1)を設定しておけば、n人の子供がいるときにF(n)番目の子供が最後に一人だけ残る子供になります。 
したがって  F(n)=m-1+F(n-1) ・・・①  が成り立ちます。 
  ここで、最後に残る子供の番号F(n)が1<= F(n) <= n の範囲に収まるようにしておく必要があります。そのためにまず、F(n)を nで割った
 ときの余りを r とすると、
0 <=  r <= n-1 から 1<= r+1<= n となります。したがって F(n)= r+1 とすればいいわけです。このことを一つ
 の式で表わすために、F(n)を n で割ったときの余りを  Mod(F(n),n) という記号で表わすと、F(n)は
F(n)=Mod(F(n),n)+1 ・・・②  の
 ように表わされます。
  最後に、
① を ② に代入すると、漸化式 F(n)=Mod(m-1+F(n-1),n)+1 ・・・③ が得られます。ただし、題意から F(1)=1 と定めま
 す。そして、
③ で  m=10 とすると F(n)=Mod(n+F(n-1),n)+1 ・・・④  となります。
 
  ここで、④を使って、F(n)のいくつかの値を計算してみましょう。
 

 【問題2】  
       漸化式 F(n)=Mod(n+F(n-1),n)+1 と F(1)=1 を利用して、 F(2),F(3),F(4),F(5),F(6),F(7) の値を順次計算して
     ください。


 【解答】 この問題2の解答をクリックすると、その解答 が示されます。  
 

4.最後に残る人の番号を求めるプログラム 
   「継子立て」で家督を継ぐことになった継子は、F(16)の値が 1 となることを事前に知っていたのではないかと思われます。それにしても、前節の
 問題2の解答で示したように、手計算で F(16) の値を求めるのは大変です。そこで、コンピュータの助けを借りることにします。
  このサイトでは、プログラミング言語としては簡単な「10進BASIC」
を用いて、関数F(n)の値を計算するプログラムを作成しました。
 下に、そのプログラムと実行結果を示します。
  
  
 【プログラム】                 

  PRINT " n =";
  FOR n=1 TO 16 STEP 1
    PRINT USING "###": n;
  NEXT n
  PRINT
  PRINT "F(n)=";
  FOR n=1 TO 16 STEP 1
    PRINT USING "###": F(n);
  NEXT n
  END
  EXTERNAL FUNCTION F(n)
  LET m=10
  IF n=1 THEN
    LET F=1
  ELSE
  LET F=MOD(m-1+F(n-1),n)+1
  END IF
  END FUNCTION

 【実行結果】  
  
          n  =  1  2  3  4  5  6  7  8  9 10  11 12 13 14 15 16
    F(n) =    1   1  2  4  4  2  5  7  8  8   7  5  2 12  7  1  

  ------------------------------------------------------------------------------------------------------------

    この結果から、確かに F(16)=1 となることが分かります。

 

 
  以上のことから、16の子供のうちにただ1人残った継子から数え始めると、確かに、その子供が最後に一人だけ残ることになりますね。
 これがそのどんでん返しを
具体的に示してください。

5.おわりに
最後までご覧いただいたことを感謝します。「継子立て」と同様に、
遊びながら気軽に数学的思考を楽しめるような数学ゲームが他にもある
 のではないかと思われます。もしもそのようなゲームを
御存じの方がおりましたら当方にお知らせ下さい。また、このサイトをご覧になった際の
 ご感想やご意見を当方までお知らせくだされば幸甚です


参考にしたサイト
   (1)  「10進BASIC のホームページ」 http://hp.vector.co.jp/authors/VA008683/
   (2) 「数理パズル 継子立て」 http://homepage3.nifty.com/imura/03math-edu/Mamako/Mamako.html
参考にした文献
  (1) 
「数学パズル事典」 上野 富美夫著 東京堂出版
 (2) 
「数学歴史パズル 数学者も頭をひねった75問」 藤村幸三郎,田村三郎 著  BLUE BACKS 講談社 


サブページ (2): 問題1の解答 問題2の解答
Comments