見出し画像

ChatGPT(GPT-3.5)とGPT-4の比較~基本コード生成編~

はじめに

ChatGPTはコード生成も得意であるため、しばしば活用しています。

以前より、ChatGPT(GPT-3.5)とGPT-4でコード生成能力に違いがあるのか気になっていたので試してみました。

今回は、ドキュメントに載っているようなJavaScriptの基本的な処理に関するサンプルコードの生成に関する比較です。
(今後、複雑な比較もしていきたいと思います)

結論としては、どちらも正しいコードを生成しており、出力内容に大きな違いはありませんでした。

以下、詳細です。

パラメーター

  • temperture = 0

  • p = 0.95

  • システムメッセージ

    • You are an AI assistant that helps people find information.

プロンプト

JavaScriptでオブジェクト配列の合計値をreduceメソッドを使って算出するサンプルコードを作成してください。

GPT-3.5の回答

以下に、JavaScriptでオブジェクト配列の合計値をreduceメソッドを使って算出するサンプルコードを示します。

const data = [  
  { value: 10 },  
  { value: 20 },  
  { value: 30 },  
  { value: 40 },  
];  
  
const sum = data.reduce((accumulator, currentValue) => {  
  return accumulator + currentValue.value;  
}, 0);  
  
console.log(sum); // 結果: 100  

このコードでは、dataというオブジェクト配列があります。各オブジェクトはvalueというプロパティを持っており、それぞれの値を合計することを目的としています。

reduceメソッドを使用して、accumulatorとcurrentValueを引数とするコールバック関数を定義します。コールバック関数では、accumulatorに現在の合計値を保持し、currentValue.valueを加算して新しい合計値を返します。

初期値として0を指定しています。これは、合計値の初期値が0であることを示しています。

最後に、console.logを使用して結果を出力します。この場合、結果は100となります。

GPT-4の回答

もちろんです。以下に、JavaScriptのreduceメソッドを使用してオブジェクト配列の合計値を算出するサンプルコードを示します。

この例では、各オブジェクトが'value'というキーを持ち、その値を合計すると仮定します。

let objArray = [  
  {value: 10},  
  {value: 20},  
  {value: 30},  
  {value: 40}  
];  
  
let total = objArray.reduce((sum, obj) => {  
  return sum + obj.value;  
}, 0);  
  
console.log(total);  // 100  

このコードでは、reduceメソッドが配列の各要素に対して実行され、各オブジェクトの'value'プロパティを合計します。初期値として0を設定しています。

もし記事など良かったなと思いましたら、サポートよろしくお願いします。より良いコンテンツを作れるように実験や環境作りに使わさせて頂きます。