見て言って数列

Pocket

「Look-and-say sequence」というのがあります。日本語だと「見て言って数列」だそうです。

1, 11, 21, 1211, 111221, 312211, …

という数列です。規則性が分かるでしょうか。

まず 1 があります。「1」です。
次にこれを 1個の1 と表現します。「11」になります。
同様に 2個の1 と表します。「21」です。
これを 1個の2 1個の1 とします。「1211」になります。
今度は 1個の1 1個の2 2個の1 と表します。「111221」になります。
3個の1 2個の2 1個の1 と表します。「312211」になります。

Look-and-say sequence - Wikipedia」に詳しく書かれています。
いろいろな性質があるようですが、簡単なところだと、1,2,3の三種類の数字しか登場しない点が挙げられます。また右端は1になるようです。

JavaScriptで試してみました。

var x, i;
x = "1";
console.log(x);
for(i = 0; i < 20; i++) {
    x = miteitte(x);
    console.log(x);
}

function miteitte(x) {
    //Look-and-say sequence
    var pieces, fig, re, m, num;
    pieces = [];
    while(x !== "") {
        fig = x.substr(0, 1);
        re = new RegExp(fig + "+");
        m = x.match(re);
        num = m[0].length.toString(10);
        pieces.push(num + fig);
        x = x.substr(num);
    }
    return pieces.join("");
}

JSFiddleで試せます。

[ 2017年1月24日 | カテゴリー: 豆知識 | タグ: , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報