アメリカの大学で奮闘中

アメリカの大学でプログラミングを学ぶべくコンピューターサイエンス学部に留学したものの挫折し数学科に転部した著者が、自分の挫折ポイントを踏まえて数学、プログラミング、アルゴリズムついてできる限り分かりやすく解説してみるブログ。*できる限り記事の内容は技術的な間違いをしないように気をつけていますが、もし間違いがあれば教えていただけると助かります。

2022-01-01から1年間の記事一覧

JavaScriptの基本文法をpythonと比較してマスターしよう!③

関数 定義の仕方 pythonの場合 def add(a,b): return a+b JavaScriptの場合 const add = function(a,b){ return a+b; }; 呼び出し方は両方とも同じです。 add(1,2) add(1,2) アロー関数 *新しいJavaScriptではアロー関数といって以下の書き方もできます con…

JavaScriptの基本文法をpythonと比較してマスターしよう!②

繰り返し処理 while文 num = 10 while num >0: print(num) num -= 1 while (num >0){ console.log(); num -= 1; } for文 for i in range(num): print(i) for (let num = 10; num<10; num -=1){ console.log(num); } この場合、num -=1をnum --と書くことも可…

JavaScriptの基本文法をpythonと比較してマスターしよう!①

上がpythonの書き方で、下がJavaScriptの書き方です。 出力 print() console.log(); コメントアウト # // 計算 + - * / %で、pythonとJavaScriprで変更なし 変数 変数の定義の仕方 blog = "アメリカの大学で奮闘中" let blog = ""アメリカの大学で奮闘中"; …

写像(Mapping)とは何か、関数とは何か

アメリカの大学の2年生の秋学期、長かったCalculasのクラスが終わろうとしている時期に、数学の基礎となる証明法や集合理論、数学的記述方法のクラスが始まりました。 その時の自分は英語力を未熟で、数学は先生の板書かスライドの数式と教科書の公式を見比…

Web開発かアプリ開発かまだ決め切れていないエンジニアはJavaScriptを学びなさい

少し攻めたタイトルになってしまったのですが、今回の記事ではプログラミングを学び始めたor就活でエンジニア就職をする予定だけど何を勉強すればいいか分からない人で、特にWEB開発とアプリ開発で迷っている人をターゲットにしています。 結論から言うと、…

マルコフ連鎖②~グラフを考える~

前回の記事の続きです。 astrostory.hatenablog.com この記事ではマルコフ連鎖をグラフとして見ていきます。なお、今回も例は前回の記事の天気の例を利用します。 簡単に再度説明しますと 晴れ、曇り、雨という3つの状態があり、そのいずれかの状態から別の…

マルコフ連鎖①〜グラフ理論と確率〜

マルコフ連鎖というグラフ理論を用いた確率の考え方があり、これはプログラムの実装も可能で便利だと思うのでこの記事で詳しく説明できればと思います。 いつものように数学的な厳密性は少し欠けていても分かりやすい記事を目指します。 マルコフ連鎖とは マ…

クイックソート(Quicksort)を解説してみた by Python

クイックソートとはデータの集合をある決まりに従って並び替えるソートアルゴリズムの一種です。クイックソートはクイックと付いているだけあって早く処理できる方法になります。 今回は array = [5,4,6,9,2,7,8,1,3] → array = [1,2,3,4,5,6,7,8,9] arrayの…

マージソート(Mergesort)をPythonで解説してみた

マージソートとはソート(並び替え)アルゴリズムの一種で、与えられたリストに対して一定のルールのもとで並び替えるアルゴリズムです。 具体的な例で考えていきましょう 具体例 arrに数字の入ったリストを仮定してみます。 arr = [12, 11, 13, 5, 6, 7] こ…

(連結リスト)線形リストと循環リスト

*以前の連結リストの記事の続きです。 astrostory.hatenablog.com 今回は前回の連結リストの続きです。前回は片方向リストと双方向リストの解説を行いました。その時に使った例の連結リストは線形リストでした。 連結リストには線形リストと循環リストがあ…

片方向リストと双方向リストを大学生が解説してみた by python

以前の記事で連結リストの実装を簡単に紹介しました。 astrostory.hatenablog.com 実を言うと前回は連結リストの中でも一番シンプルで簡単な線形リストの片方向連結リストの解説を行いました。 ですが実際は連結リストはいくつかの種類があり、今回の記事で…

Gale-shapleyアルゴリズム

Gale-shapleyアルゴリズムはマッチングに関するアルゴリズムです。 合コンでの男女のマッチング、研修医と病院のマッチングなどのグループAとグループB、そして全ての参加者がそのマッチング対象のグループの参加者に対して順位がある場合、Gale-shapleyアル…

Spanning Tree(全域木)とは何か

今回の記事ではグラフ理論のSpanning Tree(全域木)を扱います。 まずそもそもグラフとは?の人はこちらの記事から入られることをお勧めします。 astrostory.hatenablog.com また今回は分かりやすくするために無向グラフを使います。 全域木 全域木はかなり平…