コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2014年5月11日 >>> 2014年5月11日
link もっと後

2014年5月11日

2048の最高得点(その1)

2048の最高得点について考えてみます。

仮定: 新しい数字が常に理想的に出現した場合、4x4のフィールドは、横1列の16マスと同等とみなせる、とします。

この仮定が正しいかどうかがイマイチ分かりませんが…考えるのは後回しにします。この仮定が正しいとして、

  • 必ず左端に新しい数字が出現
  • 常に右に移動

という動きを考えます。

2だけ出てくる場合

新しい数字としては2か4が出ますが、まずは単純にするため2が出続けた場合を考えます。2が出続けた場合の手詰まりの形は、
2, 4, 8, 16, ..., 65536
つまり、
2, 4, ..., 2^(N-1), 2^N
です。

手詰まりになるまで4がいくつ必要か(=4が何回生成されるか、と同意)を考えますと、


マス数: 手詰まり形: 各マスの数字を作るのに必要な4の数
2マス: 2, 4        → 0, 1
3マス: 2, 4, 8     → 0, 1, 2
4マス: 2, 4, 8, 16 → 0, 1, 2, 4
となります。

Nマスにおいて、手詰まりまでに生成された4の数S(N, 4) は、初項1、公比2、項数N-1の等比数列の和と等しいですから、
S(N, 4) = 2^(N-1) - 1
よって得られる点数は、
4 * S(N, 4)
です。

次に8が何回生成されるか?を考えますと、


マス数: 手詰まり形: 各マスの数字を作るのに必要な8の数
4マス: 2, 4, 8, 16 → 0, 0, 1, 2
となります。

生成される新しい数字が倍になり(つまり4が出てくると考える)、マスは1つ減った、と考えるとわかりやすいですかね?
S(N, 8) = S(N - 1, 4)
なので得られる点数は、
8 * S(N - 1, 4)
です。

さらに一般化するとNマスで手詰まりしたとき、それぞれのマスに存在する数は、
2, 4, 8, 16, ..., 2^N
となります。

一般項をAnとおくと、
An = 2^n (ただしn = 1, 2, ..., N)
です。

各数値が何回生成されるかを4を基準に考えると、
S(N + 1, 4), S(N, 4), S(N - 1, 4), ..., S(2, 4)
と表せます。

一般項をSnとおくと、
Sn = S(N + 2 - n, 4) = 2 ^ (N + 2 - n - 1) - 1 = 2 ^ (N - n + 1) - 1
(ただしn = 1, 2, ..., N)
と表せます。

各数値を生成する際に得られる点数は、AnとSnの積を合計した値になります。
0 * S(N + 1, 4), 4 * S(N, 4), 8 * S(N - 1, 8), ..., 2^N * S(2, 4)
しかし2048のルールでは2の生成時に点数は入りませんので、初項A1 * S1を除く必要があります。

記号を使って少しかっこよく書けば、
N
Σ(Ak * Sk) - A1 * S1
k=1
となり、このとき、
Ak * Sk = 2^k * (2^(N - k + 1) - 1) = 2^(N + 1) - 2^k
A1 * S1 = 2^(N + 1) - 2
です、かね。たぶん。

先ほどの最高得点の式、試しにN = 16で計算してみると1835012点、つまり183万点です。経験上2048を1つ作った時点で2万点程度ですので、どれだけ理不尽な数かがわかると思います…。

4だけ出てくる場合

前節では183万点と計算しましたが、新規に生成される数値が4だけだった場合は、手詰まりの形は2だけの時の65536のさらに倍の数字131072まで生成可能です。

つまりNマスで手詰まりしたとき、それぞれのマスに存在する数は、
4, 8, 16, 32, ..., 2^(N + 1)
となります。

一般項をAnとおくと、
An = 2^(n + 1) (ただしn = 1, 2, ..., N)
です。

前節で求めた点数の総和の式に当てはめてN = 16を計算すると3670024点となります。うーん367万点ねー…普通にやっていたらまず無理ですね。

しかし2048では2だけでも4だけでもなく、両方とも新規生成されます。これは4だけが新規生成される場合と比較して、空いているマスさえあれば4を生成することができるため、最高得点はさらに上がある、ということです。

また今度にでも考えます…。

編集者:すずき(2014/05/11 03:24)

コメント一覧

  • りょうさん(2014/06/07 05:42)
    はじめまして.
    私も同じ仮定で考えていたのですが,最高点は3932100点になるとの結果が得られたので,ご報告致します.
  • すずきさん(2014/06/07 20:21)
    >りょうさん
    ご報告ありがとうございます。
    393万点は 2 と 4 が適切に出てくる場合の点数でしょうか?
    2 か 4 だけ出てくる場合を仮定されていれば、私と違う式を導かれたか、私が計算間違いしてますね…。
  • りょうさん(2014/06/08 01:19)
    393万点は,うまいこと 2 と 4 が出てくる場合の点数として求めたものです.
    どちらかのみで仮定して場合はここに書かれているものと同じ結果になりました.
  • すずきさん(2014/06/08 03:48)
    >りょうさん
    なるほど、ありがとうございます。良くポカミスするので、同じ結果が得られて安心しました。
    残るは盤面を 1次元にして良い、という仮定が正しいか?ですが…、残念ながら私はノーアイデアです…。
  • りょうさん(2014/06/08 15:11)
    私もちょくちょくやらかすので同じ結果になった人がいてよかったです.
    私は,
    (2 が出続けるときは) 2^n のタイルを作るには 2 つの 2^(n-1) のタイルが必要で,この 2 つのタイルを合わせるときに 2^n 点加算.
    この 2 つの 2^(n-1) のタイルを 4 つの 2^(n-2) のタイルから作るときに 2^n 点加算.

    これを繰り返して,1 つの 2^n のタイルを作るとき (n-1)・2^n 点加算される,というのをもとに,
    (最高得点)=Σ[n:1…16](上の式)
    から求めてみたんですよね.
    (最終的な式は同じになると思いますが,アプローチのしかたがここのサイトとは少し違った気がしたので一応書いておきます)

    4 のみのときや両方のときも,1 つのタイルによる点数の合計をもとに考えました.

    それで,件の,1 次元に落としていいか,ですが,
    私もノーアイデアですね...
    手詰まり形を考えれば,2 次元のときに 1 次元のときの点数を超えないのは示そうですが...
    下回らないことはどう示せばいいものか...
open/close この記事にコメントする



link もっと前
2014年5月11日 >>> 2014年5月11日
link もっと後

管理用メニュー

link 記事を新規作成

<2014>
<<<05>>>
----123
45678910
11121314151617
18192021222324
25262728293031

最近のコメント5件

  • link 24年4月22日
    hdkさん (04/24 08:36)
    「うちのHHFZ4310は15年突破しまし...」
  • link 24年4月22日
    すずきさん (04/24 00:37)
    「ちゃんと数えてないですけど蛍光管が10年...」
  • link 24年4月22日
    hdkさん (04/23 20:52)
    「おお... うちのHHFZ4310より後...」
  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」

最近の記事3件

  • link 24年2月7日
    すずき (04/24 02:52)
    「[複数の音声ファイルのラウドネスを統一したい] PCやデジタル音楽プレーヤーで音楽を聞いていると、曲によって音量の大小が激しく...」
  • link 24年4月22日
    すずき (04/23 20:13)
    「[仕事部屋の照明が壊れた] いきなり仕事部屋のシーリングライトが消えました。蛍光管の寿命にしては去年(2022年10月19日の...」
  • link 24年4月17日
    すずき (04/18 22:44)
    「[VSCodeとMarkdownとPlantUMLのローカルサーバー] 目次: LinuxVSCodeのPlantUML Ex...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/24 08:36