・検索作業                          GAI 氏

 本日は、「4月7日」。そこで、「7」にまつわるものとして、7×7行列に非負整数の数を配置
し(同じ数を何度使用しても可)、各行各列の和がすべて7になるようにしたい。
(対角線は無視してよい。)

 さて、何通り可能か?

 これに対し、コンピュータで全検索しようとしても、8^49をすべてチェックするのはいくら時間
があっても不可能に近い。しかし、人類はこの途方もない疑問に対してもピタリと答えを出す
手法を編み出し、その総数を例のOEISに載せてある。
(実は、和が1000になるものまで調査済み)

 そこで、その数が何になるのかを検索技術を駆使して探し出してほしい。


 らすかるさんからのコメントです。(平成30年4月7日付け)

 答えが載っているページはたくさんあります。
(→「A008552」「A110058」「A172919」「A172931」「A172932」)

 215717608046511873通りですね。

# 私はn×n行列に非負整数を配置して各行各列の和がnになる場合の数をn=4まで調べ、
  「1,3,55,10147」を検索しました。


 GAI さんからのコメントです。(平成30年4月8日付け)

 一般に、L×L行列に非負整数を入れて、各行各列の和がnを満たすものの作り方の総数
をHL(n)で表したら、これらがnの多項式で表せていくことが更に求められるということだそう
です。ちなみに、L=3,4,5に対するその多項式が

H3(n)=binomial(n+2,2)+3*binomial(n+3,4)
     =1/8*n^4+3/4*n^3+15/8*n^2+9/4*n+1
     =1/8*(n+1)*(n+2)*(n^2+3*n+4)

H4(n)=binomial(n+3,3)+20*binomial(n+4,5)+152*binomial(n+5,7)+352*binomial(n+6,9)
     =11/11340*n^9 + 11/630*n^8 + 19/135*n^7 + 2/3*n^6 + 1109/540*n^5
      + 43/10*n^4 + 35117/5670*n^3 + 379/63*n^2 + 65/18*n + 1
     =1/11340*(n+1)*(n+2)*(n+3)
      *(11*n^6 + 132*n^5 + 683*n^4 + 1944*n^3 + 3320*n^2 + 3360*n + 1890)

H5(n)=binomial(n+4,4)+115*binomial(n+5,6)+5390*binomial(n+6,8)+
      101275*binomial(n+7,10)+858650*binomial(n+8,12)+
      3309025*binomial(n+9,14)+4718075*binomial(n+10,16)

で構成できるという。らすかるさんの算出55,10147は、H3(3),H4(4)より求まることになります。

 私もH4(3)=2008 を全検索(4^16通り)でやってみましたが、結果がでるまでに相当時間が
必要でした。この式があれば、正にほんの一瞬です。



                         投稿一覧に戻る