「ChatGPTを使ってプログラミングの生産性をUPしたい」
「車輪の再発明のような無駄はしたくない」
このような場合には、この記事の内容が参考になります。
この記事では、ChatGPTを使った数式のコーディングについて解説しています。
本記事の内容
- ChatGPTによる数式の理解
- ChatGPTによる数式のコーディング
それでは、上記に沿って解説していきます。
ChatGPTによる数式の理解
興味深いポストをXで見つけました。
GPT-4Vの素晴らしい使い方です。
確かに、この方の言うように「ゲームチェンジャー」かもしれません。
GPT-4Vより前のChatGPTでも、関数のコーディングは可能だったでしょう。
ただし、テキストでChatGPTが理解できるように説明する必要はありました。
それが数式の画像をアップロードするだけで済んでしまうのです。
「ゲームチェンジャー」ですよね。
このポストを見て、今後は人間が数式をコーディングする必要はないかもしれないと感じました。
それが進めば、数式以外のコーディングも不要になってくるのでしょう。
以上、ChatGPTによる数式の理解を説明しました。
次は、ChatGPTによる数式のコーディングを説明します。
ChatGPTによる数式のコーディング
ここでは、ポストと同じようなことを試してみました。
以下の言語で数式の関数化を試しています。
- Python
- PHP
- JavaScript
アップロードする画像は、以下。
みなさんも知っている解の公式です。

ポストの数式に比べると、簡単過ぎますけどね。
そこは、検証し易いように簡単な数式を選んでいます。
ChatGPTへの入力は、まずは画像をアプロードするところからです。

そして、次のようにプロンプトを入力します。

xを求める関数をPythonで書いてください
これだけでPythonで関数をコーディングしてくれます。
使い方まで記載されています。
Python
import cmath
def quadratic_roots(a, b, c):
# 判別式
discriminant = cmath.sqrt(b**2 - 4*a*c)
# 2つの解
root1 = (-b + discriminant) / (2 * a)
root2 = (-b - discriminant) / (2 * a)
return root1, root2
# 使い方の例:
a = 1
b = -3
c = 2
root1, root2 = quadratic_roots(a, b, c)
print(f"解1: {root1}, 解2: {root2}")
他の言語でも同じように、難なく出力します。
<?php
function quadratic_roots($a, $b, $c) {
// 判別式
$discriminant = $b**2 - 4*$a*$c;
if ($discriminant > 0) {
// 実数解が2つ
$root1 = (-$b + sqrt($discriminant)) / (2 * $a);
$root2 = (-$b - sqrt($discriminant)) / (2 * $a);
return [$root1, $root2];
} elseif ($discriminant == 0) {
// 重解
$root = -$b / (2 * $a);
return [$root];
} else {
// 複素数解
$realPart = -$b / (2 * $a);
$imaginaryPart = sqrt(-$discriminant) / (2 * $a);
return [[$realPart, $imaginaryPart], [$realPart, -$imaginaryPart]];
}
}
// 使い方の例:
list($root1, $root2) = quadratic_roots(1, -3, 2);
echo "解1: $root1, 解2: $root2\n";
?>
JavaScript
function quadraticRoots(a, b, c) {
// 判別式
const discriminant = b**2 - 4*a*c;
if (discriminant > 0) {
// 実数解が2つ
const root1 = (-b + Math.sqrt(discriminant)) / (2 * a);
const root2 = (-b - Math.sqrt(discriminant)) / (2 * a);
return [root1, root2];
} else if (discriminant === 0) {
// 重解
const root = -b / (2 * a);
return [root];
} else {
// 複素数解
const realPart = -b / (2 * a);
const imaginaryPart = Math.sqrt(-discriminant) / (2 * a);
return [
{ real: realPart, imaginary: imaginaryPart },
{ real: realPart, imaginary: -imaginaryPart }
];
}
}
// 使い方の例:
const [root1, root2] = quadraticRoots(1, -3, 2);
console.log(`解1: ${root1}, 解2: ${root2}`);
Pythonであれば、これぐらいの関数ならライブラリで何とかなりそうです。
しかし、PHPやJavaScriptの場合はライブラリ任せにできない部分があります。
そのような場合に、このように関数をコーディングしてくれると助かります。
以上、ChatGPTによる数式のコーディングを説明しました。


