Math World Lab

逆関数と合成関数(暗号と可逆パイプライン)

「加工したデータを元通りに復元できるか?」y = x 対称のグラフとプログラムの関数合成

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
合成関数 (g ∘ f)(x) = g(f(x)) は、関数 f の出力をそのまま次の関数 g の入力に流し込むパイプライン処理を表す
2
逆関数 f⁻¹(x) は、出力 y から元の入力 x を逆算して一意に復元する関数であり、元の関数と「直線 y = x に関して線対称」になる
3
データの暗号化と復号化(可逆圧縮・復号)、3D画面クリックから空間座標を逆算するアンプロジェクション処理はすべて逆関数の応用である

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

Purpose & Motivation

なぜ生まれたのか?

一度加工・変換したデータを、元の情報に一寸の狂いもなく復元する「可逆性」を保証するために体系化された。

身につく武器・思考力

「入力を変換し、逆順で元に戻す」パイプライン思考を確立し、直線 y = x に関する対称性を通して関数の構造を深く把握できるようになる。

実社会・ITでの活躍現場

  • •暗号化(f)と復号化(f⁻¹)による安全なセキュア通信
  • •データ圧縮(Zip)と解凍におけるロスレス可逆変換
  • •3Dゲームで画面上の2Dマウスクリックから3D空間座標を復元する逆射影
  • •画像処理におけるエンコード(圧縮)とデコード(展開)パイプライン

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

元の関数 f(x)f(x) の傾きや切片をスライダーで操作してみよう。入力 xx が関数 ff を通過して変換され、逆関数 f−1f^{-1} を通過することで一寸の狂いもなく元の xx に蘇る「可逆パイプライン」がリアルタイムに動作する。同時にグラフ上で、2つの曲線が鏡(直線 y=xy = x)に対して綺麗に対称になる様子を確認できる。

関数パラメータと入力値:
入力値 x:2.0
傾き a:2.0
切片 b:1.0
1. 元の平文データ
x = 2.0
パイプラインの入力
2. 関数 f(x) で変換(暗号化)
y = 5.0
f(x) = 2x + 1
3. 逆関数 f⁻¹(y) で完全復元
x' = 2.0
✨ 元の x と 100% 一致
鏡像対称のグラフ(直線 y = x に関する対称性):
■ f(x)--- y = x (鏡)■ f⁻¹(x)
(2.0, 5.0)(5.0, 2.0)
直感チェック!ミニクイズ

関数 f(x) = 2x + 3 の逆関数 f⁻¹(x) はどれか?

Layer 2 — 定義・受験・証明

定義

関数の合成と逆関数: - 合成関数: 集合 XX から YY への関数 ff と、YY から ZZ への関数 gg に対し、各 x∈Xx \in X に g(f(x))g(f(x)) を対応させる関数を合成関数と呼び、(g∘f)(x)(g \circ f)(x) と表記する。 - 逆関数: 関数 f:X→Yf: X \to Y が全単射(1対1対応)のとき、各 y∈Yy \in Y に対し f(x)=yf(x) = y となる唯一の x∈Xx \in X を対応させる関数を ff の逆関数と呼び、f−1f^{-1} と表記する。

y=f(x)  ⟺  x=f−1(y)y = f(x) \iff x = f^{-1}(y)

恒等写像の性質: f−1(f(x))=x,f(f−1(y))=yf^{-1}(f(x)) = x, \quad f(f^{-1}(y)) = y

公式・数理モデル

(g∘f)(x)=g(f(x)),f−1(f(x))=x,グラフは y=x に関して対称(g \circ f)(x) = g(f(x)), \quad f^{-1}(f(x)) = x, \quad \text{グラフは } y = x \text{ に関して対称}

証明・導出

逆関数が直線 y=xy = x に関して対称である幾何学的証明: 点 (a,b)(a, b) が関数 y=f(x)y = f(x) のグラフ上にあるとする。すなわち b=f(a)b = f(a) である。 逆関数の定義より、b=f(a)  ⟺  a=f−1(b)b = f(a) \iff a = f^{-1}(b) が成り立つ。 これは、点 (b,a)(b, a) が逆関数 y=f−1(x)y = f^{-1}(x) のグラフ上にあることを意味する。 座標平面において、点 (a,b)(a, b) と XX 座標と YY 座標を入れ替えた点 (b,a)(b, a) の関係を調べる。 2点の中点は (a+b2,a+b2)\left(\frac{a+b}{2}, \frac{a+b}{2}\right) であり、これは直線 y=xy = x 上にある。 また2点を結ぶ直線の傾きは a−bb−a=−1\frac{a - b}{b - a} = -1 であり、直線 y=xy = x(傾き 1)と直交する。 したがって、点 (a,b)(a, b) と (b,a)(b, a) は直線 y=xy = x に関して鏡像(線対称)の位置にあり、関数 ff とその逆関数 f−1f^{-1} のグラフ全体も必ず直線 y=xy = x に関して完全に対称となる。

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

  • 関数が逆関数を持つための必須条件は「単調増加」または「単調減少」(1対1対応の単射であること)
  • 指数関数 y=axy = a^x と対数関数 y=log⁡axy = \log_a x は、互いに逆関数の関係(y=xy = x で対称)にある
  • 合成関数の微分公式(チェインルール): ddxg(f(x))=g′(f(x))⋅f′(x)\frac{d}{dx} g(f(x)) = g'(f(x)) \cdot f'(x) は深層学習の誤差逆伝播法の基礎
  • 逆関数の微分公式: (f−1)′(y)=1f′(x)(f^{-1})'(y) = \frac{1}{f'(x)}(傾きが逆数になる)
参照基準・学習指導要領との対応

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

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

関数型プログラミングにおける関数合成(Compose / Pipe)と可逆データ変換

入力データを複数の純粋関数で順次パイプライン変換する `pipe` 関数と、暗号化・復号化やデータ圧縮・解凍のように完全に可逆性を保証する双方向マッピングの実装。

1// 関数合成ユーティリティ (左から右へパイプ実行)
2const pipe = <T>(...fns: Array<(arg: T) => T>) => (value: T): T =>
3 fns.reduce((acc, fn) => fn(acc), value);
4
5// 可逆暗号化関数とその逆関数 (アフィン暗号の原理)
6class ReversibleTransform {
7 constructor(private a: number, private b: number) {
8 if (a === 0) throw new Error("係数 a は 0 以外である必要があります");
9 }
10
11 // 暗号化関数: f(x) = a*x + b
12 encrypt(x: number): number {
13 return this.a * x + this.b;
14 }
15
16 // 逆関数 (復号化): f^-1(y) = (y - b) / a
17 decrypt(y: number): number {
18 return (y - this.b) / this.a;
19 }
20}
21
22// 例: a = 3, b = 7 の可逆パイプライン
23const transform = new ReversibleTransform(3, 7);
24const originalSecret = 42;
25
26// 暗号化
27const encrypted = transform.encrypt(originalSecret); // 3*42 + 7 = 133
28// 復号化(逆関数適用)
29const restored = transform.decrypt(encrypted); // (133 - 7) / 3 = 42
30
31console.log(`平文: ${originalSecret}`);
32console.log(`暗号文 (f(x)): ${encrypted}`);
33console.log(`復元値 (f^-1(y)): ${restored} (完全一致: ${originalSecret === restored})`);

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

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

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

関連度高高校数学

逆関数と合成関数

y = x を鏡として入出力を入れ替える写像と、暗号化・復号のペア構造

関連度高高校数学

微分の基本(接線と変化率)

平均変化率の極限として現れる「その瞬間の傾き」

関連度高高校数学

指数関数と対数関数

「爆発的な急成長」と「莫大な桁数を扱いやすい尺度に圧縮する」表裏一体の数学

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

同レベル推薦高校数学

ベクトルの内積

2本の矢印の「向きの近さ」を1つの数値にする

同レベル推薦高校数学

三角関数(単位円とサイン・コサイン)

回転する点のx座標・y座標が三角関数の正体

同レベル推薦高校数学

積分の基本(面積と区分求積法)

微小な短冊を無限に足し合わせることで現れる「曲線下の面積」

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

工学・実践連携小学校・算数

最小公倍数・最大公約数

数直線に並ぶ倍数と、ユークリッドの互除法で公約数を探る

xy122436
工学・実践連携中学数学

関数の概念と対応表

「1つの入力にはただ1つの出力」というルールを対応表で確かめる

🎂🎂MATCH!わずか23人で 50.7%
工学・実践連携中学数学

誕生日問題(直感に反する確率のパラドックス)

「わずか23人で50%以上が同じ誕生日?」人間の直感がバグる組み合わせ爆発の謎

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

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

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