astrostory.hatenablog.com こちらの記事の続きになります。 ソフト面でできること GitHubの機能を使ってできること 開発前に常にコードは最新にしておく 自分の修正をmainに入れない イメージして欲しいのですが、 自分がレポジトリからプログラムを落とし…
ソフトウェア開発で欠かせないGitHubの使い方をざっくり超簡単に解説してみます。 今回カバーするのは、「GutHubでの新しいレポジトリ(PCのフォルダーのようなもの)の新規作成」、「GitHubのコードのダウンロードの仕方」、「GitHubに変更を追加する方っ方」…
この記事は以下の記事の続きになり、実際にPythonのKerasというライブラリーを用いてニューラルネットワーク(深層学習より層が少ない)を実装していきたいと思います。 astrostory.hatenablog.com Kerasとは Kerasは、ディープラーニングモデルを作成するため…
スタック(Stack)とキュー(Queue)は自分の知るがぎり簡単な部類のデータ構造ですが、どっちがどっちか間違いやすく意外と厄介です。この記事でっはその違いを簡単に紹介できればと思います。 スタック(Stack)とキュー(Queue)の違い 違いを一言で言うと、スタ…
機械学習、初学者の方へ 最初から複雑なモデルを作れるだけのプログラミングと数式の理解はハードルが高く難易度ががります。ですが簡単に何かおーっとなるようなAIモデルを作りたい。 そんな人にGoogleのTeachable Machineはおすすめです。 Teachable Machi…
アメリカの大学を卒業して1年弱経ち、新卒でIT企業に入社しエンジニアとしてシステムの開発に約10ヶ月ほど従事しました。 そこで気づいたプロのエンジニアの書くコードと自分の大学時代に書いていたコードの書き方で明確な違いが何点か見つかったのでここで…
関数 定義の仕方 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…
繰り返し処理 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 --と書くことも可…
上がpythonの書き方で、下がJavaScriptの書き方です。 出力 print() console.log(); コメントアウト # // 計算 + - * / %で、pythonとJavaScriprで変更なし 変数 変数の定義の仕方 blog = "アメリカの大学で奮闘中" let blog = ""アメリカの大学で奮闘中"; …
アメリカの大学の2年生の秋学期、長かったCalculasのクラスが終わろうとしている時期に、数学の基礎となる証明法や集合理論、数学的記述方法のクラスが始まりました。 その時の自分は英語力を未熟で、数学は先生の板書かスライドの数式と教科書の公式を見比…
少し攻めたタイトルになってしまったのですが、今回の記事ではプログラミングを学び始めたor就活でエンジニア就職をする予定だけど何を勉強すればいいか分からない人で、特にWEB開発とアプリ開発で迷っている人をターゲットにしています。 結論から言うと、…
前回の記事の続きです。 astrostory.hatenablog.com この記事ではマルコフ連鎖をグラフとして見ていきます。なお、今回も例は前回の記事の天気の例を利用します。 簡単に再度説明しますと 晴れ、曇り、雨という3つの状態があり、そのいずれかの状態から別の…
マルコフ連鎖というグラフ理論を用いた確率の考え方があり、これはプログラムの実装も可能で便利だと思うのでこの記事で詳しく説明できればと思います。 いつものように数学的な厳密性は少し欠けていても分かりやすい記事を目指します。 マルコフ連鎖とは マ…
クイックソートとはデータの集合をある決まりに従って並び替えるソートアルゴリズムの一種です。クイックソートはクイックと付いているだけあって早く処理できる方法になります。 今回は array = [5,4,6,9,2,7,8,1,3] → array = [1,2,3,4,5,6,7,8,9] arrayの…
マージソートとはソート(並び替え)アルゴリズムの一種で、与えられたリストに対して一定のルールのもとで並び替えるアルゴリズムです。 具体的な例で考えていきましょう 具体例 arrに数字の入ったリストを仮定してみます。 arr = [12, 11, 13, 5, 6, 7] こ…
*以前の連結リストの記事の続きです。 astrostory.hatenablog.com 今回は前回の連結リストの続きです。前回は片方向リストと双方向リストの解説を行いました。その時に使った例の連結リストは線形リストでした。 連結リストには線形リストと循環リストがあ…
以前の記事で連結リストの実装を簡単に紹介しました。 astrostory.hatenablog.com 実を言うと前回は連結リストの中でも一番シンプルで簡単な線形リストの片方向連結リストの解説を行いました。 ですが実際は連結リストはいくつかの種類があり、今回の記事で…
Gale-shapleyアルゴリズムはマッチングに関するアルゴリズムです。 合コンでの男女のマッチング、研修医と病院のマッチングなどのグループAとグループB、そして全ての参加者がそのマッチング対象のグループの参加者に対して順位がある場合、Gale-shapleyアル…
今回の記事ではグラフ理論のSpanning Tree(全域木)を扱います。 まずそもそもグラフとは?の人はこちらの記事から入られることをお勧めします。 astrostory.hatenablog.com また今回は分かりやすくするために無向グラフを使います。 全域木 全域木はかなり平…
僕はアメリカの大学でコンピューターサイエンス学部に入り、その後他の学部に転部しました。 転部した理由はシンプルに挫折したことと、学べる内容が自分の思っていたものと違ったからです。 その経験を元に僕がアメリカの大学に入る前に知りたかったことを…
中学の時に習ったであろう、2つの角が同じなら相似を証明していきます。 事前準備 そもそも相似とは そもそも相似(similarity)の定義は... 大学で使っているテキストブックによると... Two triangles are similar if their corresponding angles are equ…
大学で習う確率では関数で表して、微積も使います。 高校での確率の知識を持って大学の授業を受けた時にカルチャーショックのようなものを感じたので、そのような人が少なくなることと、確率をもっと詳しく学んでみたい人の入り口になることを願ってこの記事…
コンピューターサイエンスでも扱われるグラフ理論がどんなものなのかと、それの基礎的な知識を解説することが目的です。 少し特殊な数学なのでなれるまで少し時間がかかるかもです。 グラフと聞くとy=f(x)のグラフなどを思い浮かべるかもしれませんが、ここ…
今回は数2の内容です。 高次方程式を解く時に必要なマインドセットは”とりあえず解を一つ見つける"です。 解 α一つでも見つかると因数定理より x-α が因数であることが分かります。そこで元の関数 f(x) をその因数で割ることで、少し簡単な式を得れます。こ…
雑談回です。 僕の知っている中で最もロジックを使い、ロジカルシンキングを必要とする学問は数学、哲学、プログラミングだと思っています。 ですが、自分の知る限りこの3つはロジカルシンキングでも異なるマインドセットが学問の中にあるように感じます。 …
Hash Tableはデータをハッシュ関数で変換したキーの示すテーブル(表)に埋め込むデーター構造です。 5個のハッシュテーブルの場合 ________ |________| ← キー0のデータ |________| ← キー1のデータ |________| ←…
僕の記事では一貫してpythonでアルゴリズムを紹介しています。それは僕が得意だからなのもありますが、何より読みやすさ書きやすさが理由です。 いろんなサイトでpythonは読みやすい言語だと紹介されていますが、なぜなのかをJavaと比べて紹介したいと思いま…
まずは例題から alist = [1,11,5,9,13,4,3,7] このリストから13のインデックスを探すコードを考えてみてください。 今回は具体的なコードは書きませんが、おそらくforループで要素全体をインデックス0から調べる方法を考えたと思います。 この方法を使った…
以前プログラミングの上達法として自分の実際に行っている勉強法を紹介しました。 astrostory.hatenablog.com 今回はこの記事の続きです。 ですが、今回は勉強法ではなくマインドセットという少し怪しそうなものを紹介します。 自分はこのマインドセットを取…
選択ソートとはデータの集合をある決まりに従って並び替えるソートアルゴリズムの一種です。 今回は array = [5,4,6,9,2,7,8,1,3] → array = [1,2,3,4,5,6,7,8,9] arrayの中身をリストを数字の小さい順に並び替える選択ソートを考えます。 ちなみにもしリス…