Math World Lab

2進数マジック(年齢当てカードの秘密)

「この中にあなたの数字はある?」5つの質問で心を読み当てる数理手品

+162⁴+82³+42²+22¹+12⁰2進数による一意分解定理
この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
1〜31までの数字の中から相手に1つ思い浮かべてもらい、5枚のカードを見せるだけで瞬時に言い当てるマジック
2
タネは『コンピュータが動く原理である2進数(バイナリ)』そのもの
3
各カードの左上(最小の数)である 1, 2, 4, 8, 16 を足すだけで、相手の数字が自動的に復元される

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

子どもから大人まで、一見すると超能力に見えるマジックが『たった5桁の2進数の足し算』だと分かった瞬間のアハ体験。コンピュータがなぜ0と1だけで全てを表現できるのかを身体感覚で理解できる。

身につく武器・思考力

位取り記数法と基数変換の直感理解、ビットマスク・論理演算のセンス、手品としての披露力

実社会・ITでの活躍現場

  • •コンピュータのCPU(算術論理演算装置 ALU)の二進数加算器
  • •通信のエラー訂正符号(ハミング符号:どのビットが反転したかを特定する仕組み)
  • •バーコードやQRコードのバイナリエンコーディング
  • •20の扉ゲームや二分探索(バイナリサーチ)による効率的データ検索

Layer 1 — 直感・シミュレーター

1〜31の中で好きな数字(あなたの年齢や誕生日など)を1つ心の中で決めてください。画面に現れる5枚のカードについて『このカードの中に自分の数字があるか?』をYes/Noでタップしていくだけで、AIがあなたの心の中の数字を100%言い当てます!

1

質問 1 / 5 : このカードの中にあなたの数字はありますか?

1〜31の数字を心の中で決めてね
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
直感チェック!ミニクイズ

相手が思い浮かべた数字が『19』だった場合、カード1(1), カード2(2), カード3(4), カード4(8), カード5(16) のうち、どのカードに19が含まれているでしょうか?

Layer 2 — 定義・受験・証明

定義

**2進数(Binary)による一意分解**: 任意の正の整数 NN は、2のべき乗 20=1, 21=2, 22=4, 23=8, 24=16,…2^0=1,\ 2^1=2,\ 2^2=4,\ 2^3=8,\ 2^4=16, \dots の和として重複なく唯一通りに表すことができる。

N=b0⋅1+b1⋅2+b2⋅4+b3⋅8+b4⋅16(bk∈{0,1})N = b_0 \cdot 1 + b_1 \cdot 2 + b_2 \cdot 4 + b_3 \cdot 8 + b_4 \cdot 16 \quad (b_k \in \{0, 1\})

カード kk(k=0,1,2,3,4k=0,1,2,3,4)には、**『2進数で表したときに下から kk 桁目のビットが 1 である数字』** だけを集めて印刷してある。

公式・数理モデル

カード k に含まれる数 x  ⟺  (x & 2k)≠0相手が選んだ数 N=∑k=04Answer[k]×2k(Answer[k]=1 if Yes, 0 if No)\text{カード } k \text{ に含まれる数 } x \iff (x \ \& \ 2^k) \ne 0 \text{相手が選んだ数 } N = \sum_{k=0}^{4} \text{Answer}[k] \times 2^k \quad (\text{Answer}[k] = 1\ \text{if Yes},\ 0\ \text{if No})

証明・導出

**手品のタネあかし(なぜ左上の数を足すだけで当たるのか?)**

各カードの最も小さい数(左上の数)に注目すると: - カード 1: 最小の数は 11(=20= 2^0) - カード 2: 最小の数は 22(=21= 2^1) - カード 3: 最小の数は 44(=22= 2^2) - カード 4: 最小の数は 88(=23= 2^3) - カード 5: 最小の数は 1616(=24= 2^4)

例えば相手が「2525」を選んでいた場合: 2525 を2進数に直すと 16+8+1=2516 + 8 + 1 = 25、すなわち `11001`(2進数)である。 - カード 1 (1の位): **ある (Yes)** → +1 - カード 2 (2の位): **ない (No)** → +0 - カード 3 (4の位): **ない (No)** → +0 - カード 4 (8の位): **ある (Yes)** → +8 - カード 5 (16の位): **ある (Yes)** → +16

手品師は「Yes」と言われたカードの左上の数(1+8+161 + 8 + 16)を頭の中で足し算するだけで、瞬時に「あなたの数字は 2525 ですね!」と言い当てることができる。

押さえておきたいポイント

  • カードが5枚あれば 25−1=312^5 - 1 = 31 まで、6枚あれば 26−1=632^6 - 1 = 63 まで判定可能
  • カードの数字の並び順をランダムにシャッフルしておけば、相手に2進数の規則性を悟られにくく手品として強力になる
  • 情報理論の始祖シャノンが提唱した『1ビット = 二者択一の質問1回分』という情報量の定義をそのまま体現している
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

ビットフラグ(Bitmasking)と効率的な状態管理

ゲーム開発や低レイヤーシステムプログラミングにおいて、1つの整数(32bit int)の各ビットに「毒状態」「麻痺状態」「飛行状態」などのフラグを割り当て、ビット論理積(AND)や論理和(OR)により超高速で判定・更新する手法。

1// 2進数マジックカード生成 & ビットマスク判定
2export interface MagicCard {
3 bitValue: number; // 1, 2, 4, 8, 16
4 numbers: number[];
5}
6
7/** 1〜maxNumber を判定するための n 枚のカードを生成 */
8export function generateBinaryMagicCards(bits = 5): MagicCard[] {
9 const cards: MagicCard[] = [];
10 const maxNumber = (1 << bits) - 1; // 31
11
12 for (let bit = 0; bit < bits; bit++) {
13 const bitValue = 1 << bit; // 2^bit
14 const numbers: number[] = [];
15
16 for (let n = 1; n <= maxNumber; n++) {
17 // bit桁目が1の数字だけを含める
18 if ((n & bitValue) !== 0) {
19 numbers.push(n);
20 }
21 }
22
23 cards.push({ bitValue, numbers });
24 }
25
26 return cards;
27}
28
29/** 回答配列 (Yes=true, No=false) から元の数字を復元 */
30export function guessNumber(answers: boolean[]): number {
31 return answers.reduce((sum, isYes, idx) => {
32 return isYes ? sum + (1 << idx) : sum;
33 }, 0);
34}
この単元につながる学習ロードマップ

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

関連度高小学校・算数

位取り記数法(2進数・10進数)

0と1だけの世界で、数はどう表される?

2ⁿ - 1 手
関連度高数の不思議・パズル

ハノイの塔と再帰・指数爆発

3本の柱と円盤パズル。再帰的思考と2ⁿ-1手の爆発的宇宙を解き明かす

"PASS"c=mᵉ%n
関連度高工学応用

ブロックチェーンとハッシュ関数の数学

一方向関数と合同算術で「改ざん不可能な鎖」と「計算コストの証明」を作る仕組み

同じレベルで次に挑戦したいトピック

6174202699938532495
同レベル推薦数の不思議・パズル

カプレカ数と6174のブラックホール

並び替えて引き算を繰り返すと、どんな数も必ず「6174」に吸い込まれる数の神秘

Max 92321
同レベル推薦数の不思議・パズル

コラッツ予想と3n+1の未解決世界

偶数は半分、奇数は3倍+1。世界中の大数学者を悩ませ続ける魔の数列

12345678930.1%
同レベル推薦数の不思議・パズル

ベンフォードの法則と不正会計検知

自然界の数字の先頭はなぜか「1」が30%を占める。脱税・データ捏造を見破る数理

工学・実社会での応用先でつながるトピック

工学・実践連携工学応用

勾配降下法

谷底を探すAIの基本アルゴリズム

工学・実践連携工学応用

ニューラルネットワークの数学(順伝播と活性化関数)

入力に重みを掛けて足し合わせ、非線形関数で発火させるAIの基本素子

工学・実践連携工学応用

レコメンドの仕組み(コサイン類似度とベクトル検索)

ユーザーの好みと商品の近さを「ベクトルのなす角」で判定するアルゴリズム

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。