ChatGPTを使えば数式のコーディングが不要になる

ChatGPTを使えば数式のコーディングが不要になる ChatGPT

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

タイトルとURLをコピーしました