「あそびをせんとや」というホームページは大変興味深くよく眺めているのですが、先日、
そこに、このような問題が紹介されていました。
例えば、4文字 A、B、C、D を並べた文字列で、その部分文字列が、
AA、AB、AC、AD、・・・、DD
の16個の2文字の連鎖パターンをすべて含むようにしたい。17文字で可能か?
2文字 A、B であれば、AABBA だと、AA、AB、BB、BAが全て含まれていて、5文字だから
最短という例も紹介されてました。
後日、気になって調べていると、k文字を並べた文字列に、n文字の連鎖パターンのすべ
てが部分文字列として含まれているような「循環文字列」という「de Bruijn sequence(デ・ブラ
イン数列)」の話に、検索していて行き当たりました。
そこでは、k文字を並べた文字列に、n文字の連鎖パターンのすべてが部分文字列として
含まれているような「循環文字列」を、B(k,n) のように表記するとあります。
グラフ理論を用いるなどして、任意の k、n について、B(k,n) が「可能である」ことは納得
できたのですが、このB(k,n) な循環文字列が (k!)^(k^(n-1))/k^n 通りあると書いてあり、
その数え方が分かりませんでした。
一番簡単そうな B(2,2)、つまり、A、Bの2文字で、2文字の連鎖パターンをすべて含む
AABBのような循環文字列だと、(2!)^(2^1)/2^2=2^2/2^2=1(通り)で、なるほど確かに
そうだとなるわけです。
B(3,2) つまり、A、B、C の3文字で、2文字連鎖... な、AABBCCACB のような循環文字
列だと、(3!)^(2^1)/3^2=3^2*2^2/3^2=2^2=4(通り)な筈ですが、... これでも一寸どう
数えてるのか見当がつきません。どなたかお知恵を貸してください。
職場で、この質問を投げたと思っていたのですが、どうもネット環境か制限に引っ掛かって
いたようで、投稿できていませんでした。「あそびをせんとや」さんでは、少し解説がされました
が、やはり数え方については言及がありませんでした。どうかよろしくお願いします。
GAI さんからのコメントです。(令和5年7月24日付け)
B(3,2) で、3!^(3^1)/3^2=6^3/9=216/9=24 (通り) になりませんか?
M=[1,1,1,2,2,2,3,3,3] からなる異なる3つの文字(ここでは、1、2、3 としておく。)をランダムに
並べたとき(9!/(3!^3)=1680 (通り)) に、前から2つずつを区切って、2語からなる単語を作って
いくとき(最後の文字に最初の文字をくっつけたものも含む。)、全て異なるものが構成出来る
配列は、次の 216 通りが可能であるが、各配列は、9個をサイクリックにずらしていくと、各配
列が同じものが 9 通りずつ、次の 216 (通り)の中に現れる。
(例えば、1,27,91,57,187,115,133,193,145が同じ配列)
したがって、216/9=24 (通り) が実質的に異なる配列方法を持つことになる。
1;[1, 1, 2, 1, 3, 2, 2, 3, 3] 2;[1, 1, 2, 1, 3, 3, 2, 2, 3] 3;[1, 1, 2, 2, 1, 3, 2, 3, 3] 4;[1, 1, 2, 2, 1, 3, 3, 2, 3] 5;[1, 1, 2, 2, 3, 1, 3, 3, 2] 6;[1, 1, 2, 2, 3, 2, 1, 3, 3] 7;[1, 1, 2, 2, 3, 3, 1, 3, 2] 8;[1, 1, 2, 2, 3, 3, 2, 1, 3] 9;[1, 1, 2, 3, 1, 3, 3, 2, 2] 10;[1, 1, 2, 3, 2, 2, 1, 3, 3] 11;[1, 1, 2, 3, 3, 1, 3, 2, 2] 12;[1, 1, 2, 3, 3, 2, 2, 1, 3] 13;[1, 1, 3, 1, 2, 2, 3, 3, 2] 14;[1, 1, 3, 1, 2, 3, 3, 2, 2] 15;[1, 1, 3, 2, 1, 2, 2, 3, 3] 16;[1, 1, 3, 2, 2, 1, 2, 3, 3] 17;[1, 1, 3, 2, 2, 3, 3, 1, 2] 18;[1, 1, 3, 2, 3, 3, 1, 2, 2] 19;[1, 1, 3, 3, 1, 2, 2, 3, 2] 20;[1, 1, 3, 3, 1, 2, 3, 2, 2] 21;[1, 1, 3, 3, 2, 1, 2, 2, 3] 22;[1, 1, 3, 3, 2, 2, 1, 2, 3] 23;[1, 1, 3, 3, 2, 2, 3, 1, 2] 24;[1, 1, 3, 3, 2, 3, 1, 2, 2] 25;[1, 2, 1, 1, 3, 2, 2, 3, 3] 26;[1, 2, 1, 1, 3, 3, 2, 2, 3] 27;[1, 2, 1, 3, 2, 2, 3, 3, 1] 28;[1, 2, 1, 3, 3, 2, 2, 3, 1] 29;[1, 2, 2, 1, 1, 3, 2, 3, 3] 30;[1, 2, 2, 1, 1, 3, 3, 2, 3] 31;[1, 2, 2, 1, 3, 2, 3, 3, 1] 32;[1, 2, 2, 1, 3, 3, 2, 3, 1] 33;[1, 2, 2, 3, 1, 1, 3, 3, 2] 34;[1, 2, 2, 3, 1, 3, 3, 2, 1] 35;[1, 2, 2, 3, 2, 1, 1, 3, 3] 36;[1, 2, 2, 3, 2, 1, 3, 3, 1] 37;[1, 2, 2, 3, 3, 1, 1, 3, 2] 38;[1, 2, 2, 3, 3, 1, 3, 2, 1] 39;[1, 2, 2, 3, 3, 2, 1, 1, 3] 40;[1, 2, 2, 3, 3, 2, 1, 3, 1] 41;[1, 2, 3, 1, 1, 3, 3, 2, 2] 42;[1, 2, 3, 1, 3, 3, 2, 2, 1] 43;[1, 2, 3, 2, 2, 1, 1, 3, 3] 44;[1, 2, 3, 2, 2, 1, 3, 3, 1] 45;[1, 2, 3, 3, 1, 1, 3, 2, 2] 46;[1, 2, 3, 3, 1, 3, 2, 2, 1] 47;[1, 2, 3, 3, 2, 2, 1, 1, 3] 48;[1, 2, 3, 3, 2, 2, 1, 3, 1] 49;[1, 3, 1, 1, 2, 2, 3, 3, 2] 50;[1, 3, 1, 1, 2, 3, 3, 2, 2] 51;[1, 3, 1, 2, 2, 3, 3, 2, 1] 52;[1, 3, 1, 2, 3, 3, 2, 2, 1] 53;[1, 3, 2, 1, 1, 2, 2, 3, 3] 54;[1, 3, 2, 1, 2, 2, 3, 3, 1] 55;[1, 3, 2, 2, 1, 1, 2, 3, 3] 56;[1, 3, 2, 2, 1, 2, 3, 3, 1] 57;[1, 3, 2, 2, 3, 3, 1, 1, 2] 58;[1, 3, 2, 2, 3, 3, 1, 2, 1] 59;[1, 3, 2, 3, 3, 1, 1, 2, 2] 60;[1, 3, 2, 3, 3, 1, 2, 2, 1] 61;[1, 3, 3, 1, 1, 2, 2, 3, 2] 62;[1, 3, 3, 1, 1, 2, 3, 2, 2] 63;[1, 3, 3, 1, 2, 2, 3, 2, 1] 64;[1, 3, 3, 1, 2, 3, 2, 2, 1] 65;[1, 3, 3, 2, 1, 1, 2, 2, 3] 66;[1, 3, 3, 2, 1, 2, 2, 3, 1] 67;[1, 3, 3, 2, 2, 1, 1, 2, 3] 68;[1, 3, 3, 2, 2, 1, 2, 3, 1] 69;[1, 3, 3, 2, 2, 3, 1, 1, 2] 70;[1, 3, 3, 2, 2, 3, 1, 2, 1] 71;[1, 3, 3, 2, 3, 1, 1, 2, 2] 72;[1, 3, 3, 2, 3, 1, 2, 2, 1] |
73;[2, 1, 1, 2, 2, 3, 1, 3, 3] 74;[2, 1, 1, 2, 2, 3, 3, 1, 3] 75;[2, 1, 1, 2, 3, 1, 3, 3, 2] 76;[2, 1, 1, 2, 3, 3, 1, 3, 2] 77;[2, 1, 1, 3, 1, 2, 2, 3, 3] 78;[2, 1, 1, 3, 1, 2, 3, 3, 2] 79;[2, 1, 1, 3, 2, 2, 3, 3, 1] 80;[2, 1, 1, 3, 2, 3, 3, 1, 2] 81;[2, 1, 1, 3, 3, 1, 2, 2, 3] 82;[2, 1, 1, 3, 3, 1, 2, 3, 2] 83;[2, 1, 1, 3, 3, 2, 2, 3, 1] 84;[2, 1, 1, 3, 3, 2, 3, 1, 2] 85;[2, 1, 2, 2, 3, 1, 1, 3, 3] 86;[2, 1, 2, 2, 3, 3, 1, 1, 3] 87;[2, 1, 2, 3, 1, 1, 3, 3, 2] 88;[2, 1, 2, 3, 3, 1, 1, 3, 2] 89;[2, 1, 3, 1, 1, 2, 2, 3, 3] 90;[2, 1, 3, 1, 1, 2, 3, 3, 2] 91;[2, 1, 3, 2, 2, 3, 3, 1, 1] 92;[2, 1, 3, 2, 3, 3, 1, 1, 2] 93;[2, 1, 3, 3, 1, 1, 2, 2, 3] 94;[2, 1, 3, 3, 1, 1, 2, 3, 2] 95;[2, 1, 3, 3, 2, 2, 3, 1, 1] 96;[2, 1, 3, 3, 2, 3, 1, 1, 2] 97;[2, 2, 1, 1, 2, 3, 1, 3, 3] 98;[2, 2, 1, 1, 2, 3, 3, 1, 3] 99;[2, 2, 1, 1, 3, 1, 2, 3, 3] 100;[2, 2, 1, 1, 3, 2, 3, 3, 1] 101;[2, 2, 1, 1, 3, 3, 1, 2, 3] 102;[2, 2, 1, 1, 3, 3, 2, 3, 1] 103;[2, 2, 1, 2, 3, 1, 1, 3, 3] 104;[2, 2, 1, 2, 3, 3, 1, 1, 3] 105;[2, 2, 1, 3, 1, 1, 2, 3, 3] 106;[2, 2, 1, 3, 2, 3, 3, 1, 1] 107;[2, 2, 1, 3, 3, 1, 1, 2, 3] 108;[2, 2, 1, 3, 3, 2, 3, 1, 1] 109;[2, 2, 3, 1, 1, 2, 1, 3, 3] 110;[2, 2, 3, 1, 1, 3, 3, 2, 1] 111;[2, 2, 3, 1, 2, 1, 1, 3, 3] 112;[2, 2, 3, 1, 3, 3, 2, 1, 1] 113;[2, 2, 3, 2, 1, 1, 3, 3, 1] 114;[2, 2, 3, 2, 1, 3, 3, 1, 1] 115;[2, 2, 3, 3, 1, 1, 2, 1, 3] 116;[2, 2, 3, 3, 1, 1, 3, 2, 1] 117;[2, 2, 3, 3, 1, 2, 1, 1, 3] 118;[2, 2, 3, 3, 1, 3, 2, 1, 1] 119;[2, 2, 3, 3, 2, 1, 1, 3, 1] 120;[2, 2, 3, 3, 2, 1, 3, 1, 1] 121;[2, 3, 1, 1, 2, 1, 3, 3, 2] 122;[2, 3, 1, 1, 2, 2, 1, 3, 3] 123;[2, 3, 1, 1, 3, 3, 2, 1, 2] 124;[2, 3, 1, 1, 3, 3, 2, 2, 1] 125;[2, 3, 1, 2, 1, 1, 3, 3, 2] 126;[2, 3, 1, 2, 2, 1, 1, 3, 3] 127;[2, 3, 1, 3, 3, 2, 1, 1, 2] 128;[2, 3, 1, 3, 3, 2, 2, 1, 1] 129;[2, 3, 2, 1, 1, 3, 3, 1, 2] 130;[2, 3, 2, 1, 3, 3, 1, 1, 2] 131;[2, 3, 2, 2, 1, 1, 3, 3, 1] 132;[2, 3, 2, 2, 1, 3, 3, 1, 1] 133;[2, 3, 3, 1, 1, 2, 1, 3, 2] 134;[2, 3, 3, 1, 1, 2, 2, 1, 3] 135;[2, 3, 3, 1, 1, 3, 2, 1, 2] 136;[2, 3, 3, 1, 1, 3, 2, 2, 1] 137;[2, 3, 3, 1, 2, 1, 1, 3, 2] 138;[2, 3, 3, 1, 2, 2, 1, 1, 3] 139;[2, 3, 3, 1, 3, 2, 1, 1, 2] 140;[2, 3, 3, 1, 3, 2, 2, 1, 1] 141;[2, 3, 3, 2, 1, 1, 3, 1, 2] 142;[2, 3, 3, 2, 1, 3, 1, 1, 2] 143;[2, 3, 3, 2, 2, 1, 1, 3, 1] 144;[2, 3, 3, 2, 2, 1, 3, 1, 1] |
145;[3, 1, 1, 2, 1, 3, 2, 2, 3] 146;[3, 1, 1, 2, 1, 3, 3, 2, 2] 147;[3, 1, 1, 2, 2, 1, 3, 2, 3] 148;[3, 1, 1, 2, 2, 1, 3, 3, 2] 149;[3, 1, 1, 2, 2, 3, 2, 1, 3] 150;[3, 1, 1, 2, 2, 3, 3, 2, 1] 151;[3, 1, 1, 2, 3, 2, 2, 1, 3] 152;[3, 1, 1, 2, 3, 3, 2, 2, 1] 153;[3, 1, 1, 3, 2, 1, 2, 2, 3] 154;[3, 1, 1, 3, 2, 2, 1, 2, 3] 155;[3, 1, 1, 3, 3, 2, 1, 2, 2] 156;[3, 1, 1, 3, 3, 2, 2, 1, 2] 157;[3, 1, 2, 1, 1, 3, 2, 2, 3] 158;[3, 1, 2, 1, 1, 3, 3, 2, 2] 159;[3, 1, 2, 2, 1, 1, 3, 2, 3] 160;[3, 1, 2, 2, 1, 1, 3, 3, 2] 161;[3, 1, 2, 2, 3, 2, 1, 1, 3] 162;[3, 1, 2, 2, 3, 3, 2, 1, 1] 163;[3, 1, 2, 3, 2, 2, 1, 1, 3] 164;[3, 1, 2, 3, 3, 2, 2, 1, 1] 165;[3, 1, 3, 2, 1, 1, 2, 2, 3] 166;[3, 1, 3, 2, 2, 1, 1, 2, 3] 167;[3, 1, 3, 3, 2, 1, 1, 2, 2] 168;[3, 1, 3, 3, 2, 2, 1, 1, 2] 169;[3, 2, 1, 1, 2, 2, 3, 1, 3] 170;[3, 2, 1, 1, 2, 2, 3, 3, 1] 171;[3, 2, 1, 1, 3, 1, 2, 2, 3] 172;[3, 2, 1, 1, 3, 3, 1, 2, 2] 173;[3, 2, 1, 2, 2, 3, 1, 1, 3] 174;[3, 2, 1, 2, 2, 3, 3, 1, 1] 175;[3, 2, 1, 3, 1, 1, 2, 2, 3] 176;[3, 2, 1, 3, 3, 1, 1, 2, 2] 177;[3, 2, 2, 1, 1, 2, 3, 1, 3] 178;[3, 2, 2, 1, 1, 2, 3, 3, 1] 179;[3, 2, 2, 1, 1, 3, 1, 2, 3] 180;[3, 2, 2, 1, 1, 3, 3, 1, 2] 181;[3, 2, 2, 1, 2, 3, 1, 1, 3] 182;[3, 2, 2, 1, 2, 3, 3, 1, 1] 183;[3, 2, 2, 1, 3, 1, 1, 2, 3] 184;[3, 2, 2, 1, 3, 3, 1, 1, 2] 185;[3, 2, 2, 3, 1, 1, 2, 1, 3] 186;[3, 2, 2, 3, 1, 2, 1, 1, 3] 187;[3, 2, 2, 3, 3, 1, 1, 2, 1] 188;[3, 2, 2, 3, 3, 1, 2, 1, 1] 189;[3, 2, 3, 1, 1, 2, 2, 1, 3] 190;[3, 2, 3, 1, 2, 2, 1, 1, 3] 191;[3, 2, 3, 3, 1, 1, 2, 2, 1] 192;[3, 2, 3, 3, 1, 2, 2, 1, 1] 193;[3, 3, 1, 1, 2, 1, 3, 2, 2] 194;[3, 3, 1, 1, 2, 2, 1, 3, 2] 195;[3, 3, 1, 1, 2, 2, 3, 2, 1] 196;[3, 3, 1, 1, 2, 3, 2, 2, 1] 197;[3, 3, 1, 1, 3, 2, 1, 2, 2] 198;[3, 3, 1, 1, 3, 2, 2, 1, 2] 199;[3, 3, 1, 2, 1, 1, 3, 2, 2] 200;[3, 3, 1, 2, 2, 1, 1, 3, 2] 201;[3, 3, 1, 2, 2, 3, 2, 1, 1] 202;[3, 3, 1, 2, 3, 2, 2, 1, 1] 203;[3, 3, 1, 3, 2, 1, 1, 2, 2] 204;[3, 3, 1, 3, 2, 2, 1, 1, 2] 205;[3, 3, 2, 1, 1, 2, 2, 3, 1] 206;[3, 3, 2, 1, 1, 3, 1, 2, 2] 207;[3, 3, 2, 1, 2, 2, 3, 1, 1] 208;[3, 3, 2, 1, 3, 1, 1, 2, 2] 209;[3, 3, 2, 2, 1, 1, 2, 3, 1] 210;[3, 3, 2, 2, 1, 1, 3, 1, 2] 211;[3, 3, 2, 2, 1, 2, 3, 1, 1] 212;[3, 3, 2, 2, 1, 3, 1, 1, 2] 213;[3, 3, 2, 2, 3, 1, 1, 2, 1] 214;[3, 3, 2, 2, 3, 1, 2, 1, 1] 215;[3, 3, 2, 3, 1, 1, 2, 2, 1] 216;[3, 3, 2, 3, 1, 2, 2, 1, 1] |
と解釈すればよいと思います。
moonlight さんからのコメントです。(令和5年7月24日付け)
暑い中での投稿で、計算間違いや思い違いがあったかもしれません。どう考えれば、あ
の計算式が得られるのかが知りたいのです。
(適当な例を挙げたのが間違いだったかもしれません。)
DD++ さんからのコメントです。(令和5年7月26日付け)
「数学感動秘話」の「目指せ!最長不倒」の話ですかね?
GAI さんからのコメントです。(令和5年9月25日付け)
Be Bruijn 数列の変形バージョンです。
16個のビットの列 0000100110101111 があれば、これを繰り返し並べると、
00001001101011110000100110101111・・・・・
となり、これを前から連続して4個ずつ横にずらしながら区切っていくと、
0000 、0001 、0010 、0100 、1001 、0011 、0110 、1101 、1010 、0101 、1011 、
0111 、1111 、1110 、1100 、1000
と全て異なる16(2^4)種類のものが構成されていく。以下同様に元に戻るものが作られて
いく。
0000 、0001 、・・・・・
そこで、今度は、連続する4個ではなく、元にやはり 0,1 のものからなるある16個のビット
列があったとき(この16連の配列は以降同じものが繰り返し並べられていくものとする。)、
見える場所がその配列の 1,2,4,8 番目のみが見える穴あき板に覆われているものとする。
その板を一コマずつずらしていった時、見える4個の数字列がやはり全て異なる16個の
種類を繰り返し出現させるような元の16ビット配列は何かを求めて欲しい。
上の配列では、
0001 、0011 、0000 、0101 、1010 、0011(ここで重複が起こる) 、0101 、・・・・
が見えてくる数となる。
以下、工事中!