2022年10月5日水曜日

AIでプログラムしてみた。

最近はAIがプログラムしてくれるようになったらしいです。

おじさんのような人がコードを書かなくてもAIが自動でコードを書いてくれるらしいです。

おじさんがコード書いたことにしてお金もらえないかなぁ。


前からやってみたかったのですが、プログラムするAIを学習させるのがとても大変で誰かやってくれないかなぁとおもっていたら、やってくれた人がいました。




https://aiprogrammer.hashlab.jp/


--------------------

nまでの素数を求めるプログラム

--------------------

#include <iostream>

#include <math.h>


using namespace std;


int main()

{

int i, j;

int n;

int prime;


cout << "nを入力してください:";

cin >> n;


for (i = 2; i <= n; i++) {

prime = 1;

for (j = 2; j <= sqrt(i); j++) {

if (i%j == 0) {

prime = 0;

break;

}

}

if (prime == 1) {

cout << i << " ";

}

}


cout << endl;


return 0;

}

--------------------

おーあってる。
ちゃんとコンパイルして動くし。


--------------------

高速にnまでの素数を求めるプログラム

--------------------

#include <iostream>

#include <vector>


using namespace std;


vector<int> primeNumbers(int n) {

vector<int> res;


for (int i = 2; i <= n; i++) {

bool isPrime = true;

for (int j = 2; j * j <= i; j++) {

if (i % j == 0) {

isPrime = false;

break;

}

}

if (isPrime) res.push_back(i);

}


return res;

}


int main() {

int n;

cin >> n;

vector<int> res = primeNumbers(n);

for (int i = 0; i < res.size(); i++) {

cout << res[i] << endl;

}


return 0;

}

--------------------


おーこれもあっている。
しかも高速に求めてるし。
ニュートン法とかいけるのかな?


--------------------

ニュートン法で平方根を求めるプログラム

--------------------

#include <iostream>

#include <cmath>

using namespace std;


double NewtonMethod(double x)

{

double result = x;

double prevResult;

double epsilon = 1.0e-6;

int i = 0;

do

{

prevResult = result;

result = result - (result - x / result) / 2;

i++;

} while (fabs(result - prevResult) > epsilon && i < 100);

return result;

}


int main()

{

double input;

cin >> input;

cout << NewtonMethod(input) << endl;

return 0;

}

--------------------


すげー、情報系の大学2年生くらいのレベルはありそうですね。
マクローリン展開とかもできるのでしょうか?


--------------------

マクローリン展開でsinを求めるプログラム

--------------------

#include <iostream>

#include <cmath>


using namespace std;


int main()

{

double x;

cin >> x;


double result = 0;

for (int i = 0; i < 10; i++)

{

result += pow(-1, i) * pow(x, 2 * i + 1) / (2 * i + 1);

}


cout << result << endl;


return 0;

}

--------------------

マクローリン展開もできてる。
あらーすごい。
これは大学のレポート作成にもってこいだわ。
海外の大学だとアルバイトにお金払えば大学の宿題とかレポートやってくれるんですが、お金払わなくていいじゃん!



だけど、まだオープンソースとか作れるプロのプログラマーレベルではないみたい。
数値計算はとっても得意だけれどエスケープ処理とか文字列とかの細かい処理が苦手?


0 件のコメント:

コメントを投稿