
数学やプログラミングの世界には、特定の計算や変換を行う「関数」が数えきれないほど存在します。sin・cos・logといった数学関数から、map・filter・再帰関数といったプログラミング関数まで、その種類は多岐にわたります。
本記事では、数学・プログラミングで使われる関数を115種類、カテゴリ別に整理して一覧にしました。三角関数・双曲線関数・特殊関数・統計関数といった数学の全カテゴリに加え、高階関数・文字列操作・配列操作などプログラミング関数も網羅。関数名の語源・由来も合わせて解説します。数学記号の読み方・意味や数学の定理・法則一覧も合わせてご覧ください。
数学の関数一覧(カテゴリ別・78種類)
数学の関数は大きく「初等関数」と「特殊関数」に分かれます。以下では8つのカテゴリに分類して全78種類を掲載します。
三角関数・逆三角関数(12種類)
三角関数は角度と辺の比を表す関数で、物理・工学・測量・波動解析など幅広い分野で使われます。それぞれの逆関数(arcXX)は、値から角度を求めるときに使います。
← 横にスクロールできます →
| 関数名(記号) | 英語名 | 読み方 | 意味・定義 |
|---|---|---|---|
| sin θ | sine | サイン | 直角三角形の対辺÷斜辺(正弦) |
| cos θ | cosine | コサイン | 直角三角形の隣辺÷斜辺(余弦) |
| tan θ | tangent | タンジェント | 直角三角形の対辺÷隣辺(正接) |
| csc θ | cosecant | コセカント | sin θの逆数(余割) |
| sec θ | secant | セカント | cos θの逆数(正割) |
| cot θ | cotangent | コタンジェント | tan θの逆数(余接) |
| arcsin x | arcsine | アークサイン | sinの逆関数。値から角度を求める(逆正弦) |
| arccos x | arccosine | アークコサイン | cosの逆関数。値から角度を求める(逆余弦) |
| arctan x | arctangent | アークタンジェント | tanの逆関数。値から角度を求める(逆正接) |
| arccsc x | arccosecant | アークコセカント | cscの逆関数(逆余割) |
| arcsec x | arcsecant | アークセカント | secの逆関数(逆正割) |
| arccot x | arccotangent | アークコタンジェント | cotの逆関数(逆余接) |
指数・対数・べき乗関数(7種類)
自然現象の成長・減衰や、情報量・pH・地震マグニチュードなどの指標に欠かせない関数群です。
← 横にスクロールできます →
| 関数名(記号) | 英語名 | 読み方 | 意味・定義 |
|---|---|---|---|
| exp(x) / e^x | exponential function | エクスポネンシャル | ネイピア数e(≈2.718)のx乗(指数関数) |
| ln x | natural logarithm | 自然対数 | e を底とする対数(ln e = 1) |
| log₁₀ x | common logarithm | 常用対数 | 10を底とする対数。pH・デシベルに使用 |
| log₂ x | binary logarithm | 二進対数 | 2を底とする対数。情報量(ビット)の計算に使用 |
| √x | square root | 平方根 | x の正の平方根(sqrt)。√4 = 2 |
| ∛x | cube root | 立方根 | x の立方根(cbrt)。∛8 = 2 |
| x^n | power function | べき乗関数 | x の n 乗。プログラミングでは pow(x,n) や ** で表記 |
双曲線関数・逆双曲線関数(12種類)
指数関数 e^x を用いて定義された関数群です。sinh x = (e^x − e^{-x}) / 2 のように表され、三角関数と酷似した性質を持ちます。特殊相対性理論・懸垂曲線・ニューラルネットワークの活性化関数などに登場します。
← 横にスクロールできます →
| 関数名(記号) | 英語名 | 読み方 | 意味・定義 |
|---|---|---|---|
| sinh x | hyperbolic sine | ハイパボリックサイン | (e^x − e^{-x}) / 2(双曲正弦) |
| cosh x | hyperbolic cosine | ハイパボリックコサイン | (e^x + e^{-x}) / 2(双曲余弦)。懸垂曲線の形状 |
| tanh x | hyperbolic tangent | ハイパボリックタンジェント | sinh x / cosh x(双曲正接)。NNの活性化関数として有名 |
| csch x | hyperbolic cosecant | ハイパボリックコセカント | sinh x の逆数(双曲余割) |
| sech x | hyperbolic secant | ハイパボリックセカント | cosh x の逆数(双曲正割) |
| coth x | hyperbolic cotangent | ハイパボリックコタンジェント | cosh x / sinh x(双曲余接) |
| arcsinh x | inverse hyperbolic sine | 逆双曲正弦 | sinh の逆関数(asinh)。ln(x + √(x²+1)) に等しい |
| arccosh x | inverse hyperbolic cosine | 逆双曲余弦 | cosh の逆関数(acosh)。x ≧ 1 で定義 |
| arctanh x | inverse hyperbolic tangent | 逆双曲正接 | tanh の逆関数(atanh)。 |
| arccsch x | inverse hyperbolic cosecant | 逆双曲余割 | csch の逆関数。x ≠ 0 で定義 |
| arcsech x | inverse hyperbolic secant | 逆双曲正割 | sech の逆関数。0 < x ≦ 1 で定義 |
| arccoth x | inverse hyperbolic cotangent | 逆双曲余接 | coth の逆関数。 |
統計・確率関数(13種類)
データ分析・機械学習・品質管理などで日常的に使われる統計関数です。
← 横にスクロールできます →
| 関数名(記号) | 英語名 | 読み方 | 意味・定義 |
|---|---|---|---|
| mean(x) | mean / average | 平均 | データの総和 ÷ データ数(算術平均) |
| median(x) | median | 中央値 | データを大小順に並べたときの中央の値 |
| mode(x) | mode | 最頻値 | データ中で最も頻度が高い値 |
| var(x) | variance | 分散 | 各データと平均の差(偏差)の2乗の平均 |
| std(x) | standard deviation | 標準偏差 | 分散の平方根。データのばらつきの指標 |
| cov(x, y) | covariance | 共分散 | 2変数の偏差の積の平均。変動の連動を測る |
| corr(x, y) | correlation | 相関係数 | 共分散を両変数の標準偏差で割った値(−1〜+1) |
| Φ(x) | normal distribution | 正規分布関数 | ガウス分布(ベル曲線)の累積分布関数 |
| percentile(x, p) | percentile | パーセンタイル | p %以下のデータの境界値 |
| quartile(x, q) | quartile | 四分位数 | データを25%・50%・75%に分けた境界値 |
| zscore(x) | z-score | 標準化スコア | (値 − 平均) ÷ 標準偏差。平均0・分散1に変換 |
| sum(x) | sum | 合計 | データの総和(シグマ Σ)。最も基本的な集約関数 |
| product(x) | product | 積 | データの全要素の積(Π)。階乗計算などに登場 |
特殊関数(9種類)
初等関数では表せない積分・級数を起源とする関数群です。物理学・量子力学・整数論などの高度な分野で登場します。
← 横にスクロールできます →
| 関数名(記号) | 英語名 | 読み方 | 意味・定義 |
|---|---|---|---|
| Γ(n) | Gamma function | ガンマ関数 | 階乗 n! を非整数・複素数へ拡張した関数。Γ(n+1) = n! |
| Β(x, y) | Beta function | ベータ関数 | Γ関数で表せる積分型関数。組み合わせ論・確率に登場 |
| ζ(s) | Riemann zeta function | リーマンゼータ関数 | Σ(1/n^s) で定義。素数の分布と深く関連する |
| n! | factorial | 階乗関数 | n × (n-1) × … × 1(0! = 1と定義)。組み合わせ論の基礎 |
| C(n, k) | combination | 組み合わせ | n個からk個を選ぶ通り数(nCk = n! / (k!(n-k)!)) |
| P(n, k) | permutation | 順列 | n個からk個を選んで並べる通り数(nPk = n! / (n-k)!) |
| erf(x) | error function | 誤差関数 | e^{-t²} を積分した関数。正規分布の累積確率に対応 |
| erfc(x) | complementary error function | 相補誤差関数 | 1 − erf(x)。確率・熱伝導・信号処理に使用 |
| Si(x) | sine integral | サイン積分 | sin(t)/t を 0 から x まで積分した関数 |
整数論・数値操作関数(10種類)
整数の性質を調べる関数と、数値の丸め・符号操作に使う実用的な関数です。
← 横にスクロールできます →
| 関数名(記号) | 英語名 | 読み方 | 意味・定義 |
|---|---|---|---|
| gcd(m, n) | greatest common divisor | 最大公約数 | 2つの整数の最大の共通約数(ユークリッド互除法で算出) |
| lcm(m, n) | least common multiple | 最小公倍数 | 2つの整数の最小の公倍数(lcm = m×n / gcd(m,n)) |
| isprime(n) | primality test | 素数判定 | n が素数かどうかを判定する関数 |
| factorize(n) | prime factorization | 素因数分解 | n を素数の積で表す(12 = 2² × 3) |
| ⌊x⌋ | floor function | 床関数 | x 以下の最大の整数。切り捨て(⌊3.7⌋ = 3) |
| ⌈x⌉ | ceiling function | 天井関数 | x 以上の最小の整数。切り上げ(⌈3.2⌉ = 4) |
| round(x) | rounding | 四捨五入 | x を最も近い整数に丸める(実装により挙動が異なる場合あり) |
| |x| | absolute value | 絶対値 | x の符号を取り正にした値(|−5| = 5) |
| sgn(x) | sign function | 符号関数 | x > 0 なら +1、x < 0 なら −1、x = 0 なら 0 |
| x mod n | modulo | 剰余関数 | x を n で割った余り(7 mod 3 = 1) |
複素数関数(5種類)
複素数 z = a + bi(i は虚数単位)を扱う関数です。電気工学・信号処理・量子力学に必須の概念です。
← 横にスクロールできます →
| 関数名(記号) | 英語名 | 読み方 | 意味・定義 |
|---|---|---|---|
| |z| | modulus | 複素絶対値 | 原点からの距離(√(a²+b²))。電気のインピーダンスに相当 |
| arg(z) | argument / phase | 偏角 | 複素平面上で実軸となす角度 θ。フーリエ変換で使用 |
| z̄ | complex conjugate | 共役複素数 | a + bi の共役は a − bi(虚部の符号を反転) |
| Re(z) | real part | 実部 | 複素数 a + bi における a の部分 |
| Im(z) | imaginary part | 虚部 | 複素数 a + bi における b の部分 |
ベクトル・行列関数(10種類)
線形代数の基本操作を行う関数群です。機械学習・コンピュータグラフィックス・物理シミュレーションで広く使われます。
← 横にスクロールできます →
| 関数名(記号) | 英語名 | 読み方 | 意味・定義 |
|---|---|---|---|
| a · b | dot product | 内積 | 各成分の積の和(|a||b|cosθ に等しい) |
| a × b | cross product | 外積 | 2つの3次元ベクトルに垂直なベクトルを生成 |
| ‖v‖ | norm | ノルム | ベクトルの長さ(大きさ)。√(v₁²+v₂²+…) |
| det(A) | determinant | 行列式 | 正方行列の特性を表すスカラー値。逆行列存在の条件 |
| A⁻¹ | inverse matrix | 逆行列 | A × A⁻¹ = 単位行列 となる行列 |
| Aᵀ | transpose | 転置 | 行と列を入れ替えた行列(コンボリューション等に使用) |
| λ | eigenvalue | 固有値 | Av = λv を満たすスカラー λ。主成分分析の基礎 |
| rank(A) | rank | ランク(階数) | 行列の線形独立な行(列)の最大数 |
| tr(A) | trace | トレース | 正方行列の対角成分の和 |
| a ⊗ b | outer product | 外積テンソル積 | ベクトルどうしのテンソル積(m×nの行列を生成) |
プログラミングの関数一覧(カテゴリ別・37種類)
プログラミングの「関数」は数学関数とは少し異なり、コードのまとまりを再利用する仕組みです。以下では関数型プログラミングの概念から実用的な組み込み関数まで4カテゴリに分けて紹介します。Excel関数の一覧もあわせて参考にどうぞ。
高階関数(7種類)
高階関数とは「関数を引数として受け取る、または関数を返り値とする関数」です。Python・JavaScript・Haskell・Scalaなどの関数型言語で中核を担う概念です。
← 横にスクロールできます →
| 関数名 | 意味・動作 | 使用例(Python) |
|---|---|---|
| map | リストの各要素に関数を適用して新しいリストを生成 | map(str, [1,2,3]) → ["1","2","3"] |
| filter | 条件を満たす要素のみを取り出す | filter(lambda x: x>0, lst) |
| reduce | リストを関数で畳み込んで1つの値にまとめる | reduce(add, [1,2,3,4]) → 10 |
| compose | 複数の関数を合成して1つの関数を作る | compose(f, g)(x) = f(g(x)) |
| curry | 複数引数の関数を1引数の連鎖に変換 | add(1)(2) のように呼び出せる形に変換 |
| lambda | 名前を持たない無名関数(匿名関数) | lambda x: x * 2 |
| apply | 関数を引数リスト(タプル等)に適用する | func(*args) 相当の操作 |
再帰関数の代表例(6種類)
再帰関数とは「自分自身を呼び出す関数」です。基底条件(終了条件)と再帰ステップで構成され、木構造の探索やソートなど、ループより自然に表現できる問題に適します。
← 横にスクロールできます →
| 関数名 | 意味・動作 | 特徴 |
|---|---|---|
| factorial(階乗) | n! = n × (n-1) × … × 1 を再帰で計算 | 再帰の最も典型的なサンプル。n=0で返す基底条件が肝 |
| fibonacci(フィボナッチ) | fib(n) = fib(n-1) + fib(n-2) | 2つの再帰呼び出しが分岐する木構造の代表例 |
| power(べき乗) | pow(x, n) = x × pow(x, n-1) | 分割統治法で O(log n) に高速化できる |
| binarySearch(二分探索) | 範囲を半分ずつ絞り込んで目標値を探索 | ソート済み配列に使う O(log n) の高効率な探索 |
| treeTraversal(ツリー走査) | 木構造の各ノードを再帰的に訪問 | 前順・中順・後順の3パターン。HTMLパース等に応用 |
| quicksort(クイックソート) | ピボットで配列を分割し再帰的にソート | 平均 O(n log n)。多くの標準ライブラリで採用 |
文字列操作関数(12種類)
← 横にスクロールできます →
| 関数名 | 意味・動作 | 使用例 |
|---|---|---|
| len / length | 文字列の文字数を返す | len("hello") → 5 |
| split | 区切り文字でリストに分割する | "a,b,c".split(",") → ["a","b","c"] |
| join | リストの要素を区切り文字でつなぐ | ",".join(["a","b","c"]) → "a,b,c" |
| upper | すべての文字を大文字に変換 | "hello".upper() → "HELLO" |
| lower | すべての文字を小文字に変換 | "HELLO".lower() → "hello" |
| strip | 先頭・末尾の空白や改行を除去 | " hi ".strip() → "hi" |
| replace | 指定した部分文字列を別の文字列に置換 | "abc".replace("a","x") → "xbc" |
| find / index | 部分文字列の位置(インデックス)を返す | "hello".find("ll") → 2 |
| substr / slice | 指定した範囲の部分文字列を取り出す | "hello"[1:3] → "el" |
| format | 変数を文字列に埋め込んでフォーマット | "{}歳".format(25) → "25歳" |
| startswith | 指定した文字列で始まるか判定 | "hello".startswith("he") → True |
| endswith | 指定した文字列で終わるか判定 | "hello".endswith("lo") → True |
配列・リスト操作関数(12種類)
← 横にスクロールできます →
| 関数名 | 意味・動作 | 使用例 |
|---|---|---|
| append | リストの末尾に要素を追加する | lst.append(4) |
| insert | 指定した位置に要素を挿入する | lst.insert(0, "x") |
| remove | 最初に一致する要素を削除する | lst.remove(3) |
| pop | 指定位置(省略時は末尾)の要素を取り出し削除 | lst.pop() |
| sort | リストを昇順にその場でソートする | lst.sort() |
| reverse | リストの要素の順序を反転する | lst.reverse() |
| count | 指定した値がいくつあるか数える | lst.count(1) → 3 |
| copy | リストのシャローコピーを作成する | lst.copy() |
| zip | 複数のリストを対応する要素でペアにする | zip([1,2],[3,4]) → [(1,3),(2,4)] |
| enumerate | インデックス番号と要素のペアを返す | enumerate(["a","b"]) → (0,"a"),(1,"b") |
| any | 要素の1つでもTrueなら True を返す | any([False, True, False]) → True |
| all | すべての要素がTrueなら True を返す | all([True, True, True]) → True |
豆知識:主な関数の語源・由来
sin(サイン)の語源
「sin」はラテン語の sinus(「湾曲・折り目」の意)から来ています。もともとはインドの天文学者アールヤバタ(Aryabhata、476〜550年頃)が使った「半弦(jīvā)」というサンスクリット語が、9世紀のアラビア語に「jib(جيب)」として転写されました。それがラテン語に訳される際、同じく「湾曲・折り目」を意味する「sinus」が当てられたのが由来です。
log(対数)の語源
「log」は logarithm(ロガリズム)の略で、17世紀にスコットランドの数学者ジョン・ネイピアが命名しました。ギリシャ語の logos(比・割合)と arithmos(数)を組み合わせた造語で、「比率の数」を意味します。これが「対数」という日本語訳にも引き継がれています。
tan(タンジェント)の語源
「tangent」はラテン語の tangens(「接する」の現在分詞)に由来します。単位円において、角度 θ に対して垂直な接線(x=1 の直線)と、原点からの半直線が交わる点までの長さがちょうど tan θ に等しくなることから命名されました。セカント(secant)も同じくラテン語の「切る」を意味する secans が語源です。
ガンマ関数(Γ)の語源
ガンマ関数は18世紀のレオンハルト・オイラーが考案し、後にアドリアン=マリー・ルジャンドルがギリシャ文字 Γ(ガンマ)で表記しました。整数 n に対して「n! = Γ(n+1)」が成り立つため、階乗の自然な拡張として非整数・複素数にも適用できます。
map・filter・reduce の語源
これらはLisp言語(1958年開発)で生まれた概念です。map は数学の「写像(マッピング)」から、filter は「篩(ふるい)にかけて絞り込む」という意味から、reduce はラテン語の reducere(「元に戻す・まとめる」の意)が語源です。関数型プログラミングの三大基本操作として、現代のほぼすべてのプログラミング言語に取り入れられています。
再帰(recursion)の語源
「recursion」はラテン語の recursio(「引き返す・戻る」の意)から来ています。再帰関数が「自分自身に戻ってくる」という動作を、語源がそのまま表しています。コンピュータ科学者のダグラス・ホフスタッターは著書『ゲーデル・エッシャー・バッハ』でこの自己言及性を芸術・音楽・数学と結びつけて深く論じました。
まとめ
数学・プログラミングで使われる関数115選を、三角関数から再帰関数まで全カテゴリにわたって紹介しました。sin・cosは音波解析から、log は情報量・pH の計算まで、ガンマ関数は量子力学から統計まで、それぞれが実世界の問題を解く道具として活躍しています。関数名の語源を知ると、なぜその名前なのかがわかり、より深く理解できます。辞典代わりにブックマークして、学習・業務にお役立てください。