「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による数式のコーディングを説明しました。