今回は Big O 記法の「影響の少ない項も切り捨てる」という一般ルール、複数パートから成るアルゴリズムの計算時間で O(A + B) になるか O(A * B) になるかの判断、償却計算量について解説します。
Read More
【アルゴリズム性能評価】Big O(オーダー)記法をやさしく解説
今回はアルゴリズム性能を記述する Big O 記法について解説します。これを理解していなければアルゴリズム開発に苦労しますし、大きなテックカンパニーのエンジニアは知ってて当然レベルなので必ず押さえておきましょう。
Read More
【累乗の逆】むかし数学で習った「対数」を超やさしく解説【log】
プログラムの計算時間を評価するときなどに「対数」という言葉がでてきます。大きい累乗は指数的爆発が起きやすい…と以前説明しましたが、対数は大きい累乗計算を簡略化するときに使われたりします。今回はまず対数の基礎を説明します!
Read More
【Git】最も簡単なリモートブランチのチェックアウト方法【-t】
誰かが push したリモートブランチをローカルブランチとして保存したいことがあります。その場合 git checkout -b ではなく git checkout -t を使う方がシンプルで簡単ですよ。
Read More
【二分探索とは】探索アルゴリズム「バイナリサーチ」をやさしく解説
100 万個のデータから欲しいデータを先頭から探そうとすると、末尾に目的のデータがあったら 100 万回の処理が走ってしまいます。ここで探索アルゴリズムを使うと効率的なデータ取得が可能です。今回は「バイナリサーチ」という考え方を紹介します。
Read More
【一覧表あり】2の累乗の指数的爆発を解説【多重ループ処理に注意】
2 の累乗は「2^0 = 1 からはじまって、数を 2 倍にしていく」だけの単純な計算です。ですが、この 2^n はたびたび大きな問題になって解決できなくなってしまいます。今回は 2 の累乗数が引き起こす「指数的爆発」について説明します。
Read More
【初心者】なぜ僕たちはEmacsの使い方を知らないといけないのか
なぜエンジニアは Vim や Emacs を未だに使うのか?もしかしたら今の時代、そんなの使わなくてもいいんじゃないか?駆け出しエンジニアの頃、そんなことを思っていました。しかし実際、本当にマストなんです。その理由と勉強方法を説明します。
Read More
【再帰的プログラム】再帰・帰納の違いを解説【階乗0!が1の理由】
階乗 0! が 1 になる理由説明は困難ですが、階乗を再帰的に定義するときに「 0! は 1 じゃないといけない」と直感的にわかります。今回は「階乗の再帰的定義」と「再帰と帰納の違い」について解説します。
Read More
【公式】プログラミングでも使う再帰・漸化式の解き方【ハノイの塔】
プログラムでは「再帰処理」といって、同じ処理を何度も呼び出すことがあります。これは答えを導くために必要な「依存している値」も一緒に求める処理です。今回は「再帰」の基本的な考え方を「ハノイの塔」という問題で解説していきます。
Read More
【公式】組み合わせと順列の違い・見分け方【重複度を使う計算方法】
前回、置換・順列を解説しました。こちらは「順序を考える」並べ方でした。この置換・順列は「並べ方はどうでもよくて、パターンだけ知りたいよ〜」…なときは使えません。今回は「順序を考えない」並べ方である「組み合わせ」について解説します!
Read More