アクロポリスの丘

環境に優しい選択肢

ChatGPTとプログラミング言語

ChatGPT
ChatGPTは、プログラミング言語も扱うことも得意としてます。chatGPTは、Python, Java, C++, HTML, CSS, JavaScriptなどの主要なプログラミング言語に対応しており 、コードスニペットアルゴリズムなどを生成することができます。ユーザーは、プログラミング言語の名前と生成したい内容を入力することで、ChatGPTにコードを作成させることができます。例えば、「Pythonフィボナッチ数列を生成する」と入力すれば、ChatGPTは以下のようなコードを返します。

# Pythonでフィボナッチ数列を生成する
def fibonacci(n):
  # nが0以下の場合は空のリストを返す
  if n <= 0:
    return []
  # nが1の場合は[0]を返す
  elif n == 1:
    return [0]
  # nが2の場合は[0, 1]を返す
  elif n == 2:
    return [0, 1]
  # nが3以上の場合は再帰的にフィボナッチ数列を生成する
  else:
    # n-1番目までのフィボナッチ数列を取得する
    prev = fibonacci(n-1)
    # 最後の2つの要素の和を計算する
    last = prev[-1] + prev[-2]
    # 和をリストに追加する
    prev.append(last)
    # リストを返す
    return prev

# テスト
print(fibonacci(10)) # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

同様に、「JavaHello Worldを表示する」と入力すれば、ChatGPTは以下のようなコードを返します。

// JavaでHello Worldを表示する
public class HelloWorld {
  public static void main(String[] args) {
    // 標準出力にHello Worldと出力する
    System.out.println("Hello World");
  }
}

C++クイックソートを実装する」と入力すれば、ChatGPTは以下のようなコードを返します。

// C++でクイックソートを実装する
#include <iostream>
using namespace std;

// 配列の要素を交換する関数
void swap(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}

// 配列を分割する関数
int partition(int arr[], int low, int high) {
  // 基準値(ピボット)を右端に設定する
  int pivot = arr[high];
  // 左端のインデックスをiに設定する
  int i = low;
  // 左端から右端までループする
  for (int j = low; j < high; j++) {
    // 配列の要素がピボットより小さい場合
    if (arr[j] < pivot) {
      // 配列の要素を左側に移動する
      swap(arr[i], arr[j]);
      // 左端のインデックスを増やす
      i++;
    }
  }
  // ピボットと左端のインデックスの要素を交換する
  swap(arr[i], arr[high]);
  // 左端のインデックスを返す
  return i;
}

// クイックソートを行う関数
void quicksort(int arr[], int low, int high) {
  // 左端が右端より小さい場合(配列が空でない場合)
  if (low < high) {
    // 配列を分割して基準値(ピボット)の位置を取得する
    int pivot = partition(arr, low, high);
    // ピボットより左側の配列に対してクイックソートを再帰的に行う
    quicksort(arr, low, pivot - 1);
    // ピボットより右