なぜ「青汁」も「青信号」も緑色なのか?|古代日本語の色彩プロトコルから網膜センサー・RGB(16進数)・n進法アルゴリズムまでの構造解剖

私は健康のために毎日「青汁」を飲んでいる。しかし、コップの中の液体はどう見ても「緑色」だ。道路の信号機も同じである。「青信号」とは言うものの、実際に点灯しているのは緑色の光であり、私たちは緑を見て「GO」と判断している。

なぜ日本人は、目の前の明白な「緑」を「青」と呼び続けるのか。この日常の小さな違和感(バグ)を掘り下げていくと、古代日本語の言語構造から、人間の網膜の物理仕様、さらにはコンピュータの「RGB(16進数)」と高校数学・情報Iの「n進法」、そしてロボットの光学センサー制御へと至る、驚くほど美しい科学と技術のアルゴリズムが浮かび上がってくる。

01. 古代日本語の色彩プロトコル:「色味」ではなく「明暗と濃淡」

昔の日本語には、色の名前が「赤・黒・白・青」の4つしか存在しなかった。現代の日本語でも、後ろに「〜い」をつけて形容詞化できる基本色が「赤い・黒い・白い・青い」(および後から加わった黄色い・茶色い)に限られ、「緑い」「紫い」と言えないのはその名残である。

そもそも古代の日本人は、世界を「色相(色味)」ではなく「光の明暗と濃淡」という2つの対立軸で分類していた。

PROTOCOL 01 // 赤(アカ)と黒(クロ)=「明暗」の軸
「アカ」の語源は「明(あ)かるい」であり、太陽や火のような眩しい状態をすべて指した。対する「クロ」は「暗(く)らい」が語源で、闇や影の状態を指す。「真っ赤な嘘(=すっかり明らかで隠しようのない嘘)」や「腹黒い」という表現は、色味ではなくこの「明暗」の名残である。
PROTOCOL 02 // 白(シロ)と青(アオ)=「濃淡・漠然」の軸
「シロ」は輪郭がはっきりしている状態(「顕著=いちじるしい」と同語源)を指し、「アオ」はその逆で、輪郭がぼんやりして淡い状態――空や海だけでなく、草木の緑、灰色、さらには薄暗い黒毛の馬(青馬)まで――を広く包み込む言葉だった。

「緑(みどり)」という言葉は、もともと植物の「新芽」そのものを指す名詞だった。平安時代以降になってようやく色の名前として独立したが、すでに定着していた「青菜」「青りんご」「青葉」といった言葉はそのまま残った。1943年に考案された「青汁」も、緑黄色野菜である「青菜の汁」という意味から名付けられている。

また、信号機については1930年に日本に初めて設置された際、英語の「Green Light」を法令上は正しく「緑色信号」と翻訳していた。しかし、世間一般や新聞が慣れ親しんだ「青信号」という呼称を使い続けたため、1947年に国の法令側が折れて正式に「青信号」へと書き換えられたという珍しい経緯がある。

02. 物理学と認知言語学:なぜ「青」と「緑」は未分化だったのか

この現象は、単なる日本語の曖昧さではない。物理学(光の波長)・生理学(目のセンサー構造)・認知言語学の3つの科学領域から明確に説明できる。

物理的に見ると、可視光線は波長が約 380\text{ nm}(ナノメートル)から 780\text{ nm} まで連続して変化する電磁波のグラデーションであり、自然界に「ここからが緑、ここからが青」という物理的な境界線は存在しない。この連続した光を受け取る人間の網膜には、3種類の光センサー(錐体細胞)が備わっている。

SENSOR_S // S錐体(Short:短波長センサー)
波長 420\text{ nm} 付近(青紫)の光に最も強く反応する受容体。デジタル規格の「B(Blue)」に対応する。
SENSOR_M // M錐体(Middle:中波長センサー)
波長 530\text{ nm} 付近(緑)の光に最も強く反応する受容体。デジタル規格の「G(Green)」に対応する。
SENSOR_L // L錐体(Long:長波長センサー)
波長 560\text{ nm} 付近(黄緑〜赤)の光に最も強く反応する受容体。M錐体と感度ピークがわずか 30\text{ nm} しか離れておらず、デジタル規格の「R(Red)」に対応する。

波長 490 \sim 500\text{ nm} 付近(シアン/青緑)ではS錐体とM錐体の反応が滑らかにバトンタッチするため、どこに「言葉の区切り(しきい値)」を設けるかは言語の進化段階に委ねられる。

1969年、言語学者のバーリンとケイ(Brent Berlin & Paul Kay)は世界中の言語を調査し、人類の「色彩語」はデタラメに増えるのではなく、すべての言語で「①白・黒 ➔ ②赤 ➔ ③緑または黄 ➔ ④緑と黄 ➔ ⑤青と緑の分離 ➔ ⑥茶 ➔ ⑦紫・ピンク・橙・灰」という普遍的なアルゴリズムに従って進化することを突き止めた。言語学では、第4段階までにみられる「青(Blue)と緑(Green)を区別せず1つの単語で扱う概念」を合成語で「Grue(グルー)」と呼ぶ。古代日本語の「アオ」は、まさにこの進化過程における「Grue」そのものだったのである。

03. RGBという「脳のハッキング」と16進数による色の解剖

ここで視点をデジタル技術へと移そう。私たちが毎日見ているパソコンやスマートフォンの画面が「R(赤)・G(緑)・B(青)」の3色だけでフルカラーを表現できるのはなぜか。自然界の光が3色だからではない。「人間の目のセンサーがL・M・Sの3種類しかないから」である。

たとえば、RGBディスプレイは「黄色の波長(580\text{ nm})の光」を一切出していない。画面上のR(赤)とG(緑)のLEDを同時に光らせて人間のL錐体とM錐体を別々に刺激し、脳に「黄色い光が来ている」と錯覚させている(条件等色=メタメリズム)に過ぎない。

では、このRGBの制御信号である「16進数カラーコード(#RRGGBB)」を使って、冒頭の「青信号」と「青汁」を数値で解剖してみよう。

HEX_01 // 日本の青信号(#00B48C 付近:ブルーグリーン)
10進数に直すと (R:0, G:180, B:140) 前後。赤緑色覚多様性を持つ人でもS錐体(青センサー)で確実に識別できるよう、日本のLED信号機は 500\text{ nm} 前後の短波長側へシフトして設計されている。G(緑:B4=180)だけでなく、末尾のB(青:8C=140)に極めて大きな数値が入っているのが特徴で、光学的にも「かなり青に足を踏み入れた緑」である。
HEX_02 // 青汁(#3A6B1F 付近:ディープイエローグリーン)
10進数に直すと (R:58, G:107, B:31) 前後。大麦若葉やケールの葉緑素(クロロフィル)は、光合成のために太陽光の「青色光」と「赤色光」を吸収し、使わなかった「緑色光(500 \sim 550\text{ nm})」を反射する。結果としてB(青:1F=31)の成分は植物に吸収されてほとんど残らず、カロテノイド(黄色素)によるR(赤:3A=58)とG(緑:6B=107)が合わさった「深い黄緑」となる。

同じ「青」を冠していても、16進数で丸裸にすると、青信号は「本当にB(青)の数値が高い青緑」であり、青汁は「植物がB(青)を食べてしまった後の緑」という正反対の物理特性を持っていることが分かる。

04. 16進数と「n進法」の計算アルゴリズム、そしてセンサー制御への実装

なぜカラーコードは、馴染みのある10進数(0〜255)ではなく、アルファベットが混ざる「16進数(00〜FF)」を使うのか。それは、コンピュータの最小単位である「1バイト(8ビット=2進数8桁)」と16進数の相性が数学的に完璧だからである。

16進数とは、「0〜9」の数字に「A(10)〜F(15)」の6文字を足して、16個で1つ上の桁に繰り上がる数え方だ。高校数学(情報I・数学A)で学ぶ「n進法」の変換ルールは、以下の3つの原則に集約される。

RULE 01 // 「n進数 ➔ 10進数」への変換(位の重みを掛けて足す)
右端の桁から順番に n^0 (=1), n^1, n^2, n^3 \dots という「重み」を掛けて合計する。青信号の緑成分 B4(16進数)なら、左の桁の B(11)は「16の位」、右の桁の 4 は「1の位」となる。
(11 \times 16^1) + (4 \times 16^0) = 176 + 4 = 180
RULE 02 // 「10進数 ➔ n進数」への変換(nで割り続けて余りを下から拾う)
10進数の「180」を16進数に戻すなら、商が0になるまで16で割り算を繰り返す。
① 180 \div 16 = 11 \cdots \text{余り } 4(1の位)
② 11 \div 16 = 0 \cdots \text{余り } 11\text{ (B)}(16の位)
出た余りを下から並べれば B4 に戻る。
RULE 03 // 「2進数 ⇄ 16進数」の4ビット直結ショートカット
2^4 = 16 であるため、「2進数の4桁(4ビット)」は「16進数の1桁」に寸分の狂いなく1対1で対応する。180を8ビットの2進数で表すと 10110100 だが、これを真ん中で4桁ずつ 1011(=11=B)と 0100(=4=4)に区切るだけで、10進数を経由せず一瞬で16進数の B4 へと変換できる。だからこそ、1バイト(0〜255)のデータは必ず16進数の2桁(00〜FF)に美しく収まるのだ。

当ラボで扱うPythonプログラミングや、ロボットアーム(DOBOT)・教育用ロボット(LEGO SPIKE Prime)のカラーセンサー制御においても、機械は「青」や「緑」という曖昧な言葉ではなく、この16進数(RGBベクトル)の数値としきい値(Threshold)によって対象物を識別している。

# Pythonによる16進数カラーコードの10進数・2進数展開と青色成分(B)の比率算出
def inspect_rgb(name, hex_code):
    r = int(hex_code[1:3], 16)
    g = int(hex_code[3:5], 16)
    b = int(hex_code[5:7], 16)
    b_ratio = round(b / (r + g + b) * 100, 1)
    print(f"[{name}] HEX:{hex_code} -> RGB({r}, {g}, {b}) | Gの2進数:{bin(g)} | 青(B)比率:{b_ratio}%")

inspect_rgb("日本の青信号", "#00B48C")  # -> RGB(0, 180, 140) | Gの2進数:0b10110100 | 青(B)比率:43.8%
inspect_rgb("青汁(ケール)", "#3A6B1F")  # -> RGB(58, 107, 31) | Gの2進数:0b1101011  | 青(B)比率:15.8%

朝に飲む一杯の青汁や、通勤路で見上げる青信号。そんな日常の風景の中にも、古代からの言語の歴史、網膜のセンサー構造、そしてデジタル社会を支える数学のアルゴリズムが密接に編み込まれている。教科書の「国語・古文」「生物」「物理」「数学・情報」は、決してバラバラの暗記科目ではなく、この世界を解像度高く読み解くための1つのシステムなのである。

CROSS-DISCIPLINARY TECH // ENGINEERING & ROBOTICS LAB

日常の「なぜ?」を、数理と情報工学のプロトコルで解き明かす。

山本学習塾 次世代エンジニアリング・ラボでは、国語・数学・理科・英語・情報を切り離された暗記科目としてではなく、物理世界とデジタル空間を構造的に理解し制御するための「統合された武器」として指導しています。当ラボの実験機材・学習環境と6科目統合カリキュラムの詳細をご覧ください。