コンピュータの仕組みとアルゴリズム

ハードウェアの構成、2進数、アルゴリズムの考え方。

この単元の目標
  • コンピュータの5大装置を説明できる
  • 2進数・16進数の変換ができる
  • 基本3構造でアルゴリズムを表現できる
📑 目次
  1. コンピュータの構成
  2. 基数変換
  3. アルゴリズムの基本3構造
  4. 小ネタ: 人間の反応速度を測ってみる
  5. 練習(基数変換ドリル)

コンピュータの構成

  • 5大装置は入力・出力・記憶・演算・制御。CPU は主に演算装置と制御装置の役割を担い、記憶装置とデータや命令をやり取りする
  • CPUは「フェッチ → デコード → 実行」を高速に繰り返す
  • メモリ階層: レジスタ ≫ キャッシュ ≫ メモリ ≫ ストレージ(速いほど小さい・高い)

基数変換

(1011)2=8+0+2+1=(11)10,(255)10=(FF)16(1011)_2 = 8 + 0 + 2 + 1 = (11)_{10}, \qquad (255)_{10} = (FF)_{16}

10進 → 2進は 2で割り続けて余りを下から読む。16進は2進4桁と対応するので、2進 ↔ 16進は桁区切りだけで変換できます。

アルゴリズムの基本3構造

構造意味擬似コード例
順次上から順に実行`s ← s + i`
分岐条件で処理を変える`if 条件 then ... else ...`
繰り返し条件が満たされる間ループ`while 条件 do ... `
例題(線形探索 vs 二分探索)

整列済み配列1000件を二分探索するとき、中央要素を調べる回数は最大何回か。中央要素との大小・一致の判定をまとめて1回と数え、線形探索との差も述べよ。

解答・解説

二分探索は ⌊log⁡21000⌋+1=10\lfloor \log_2 1000 \rfloor + 1 = 10 回、線形探索は最大1000回です。増加の仕方はそれぞれ O(log⁡n)O(\log n) と O(n)O(n) で、差を「指数的」と呼ぶのは不正確です。二分探索では中央への直接アクセスができる整列済み配列を前提にします。

確認クイズ(コンピュータとアルゴリズム)

問1. 2進数 (1011)2(1011)_2 を10進数で表すと?

問2. データ数 n に対する二分探索の計算量のオーダーは?

問3. アルゴリズムの基本3構造に含まれないものはどれか。

小ネタ: 人間の反応速度を測ってみる

読み込み中…
あなたの反応時間は何ミリ秒? CPU の1クロック(ナノ秒オーダー)との差を実感してみよう

練習(基数変換ドリル)

第 1 問
次の2進数を10進数に変換せよ。 (11000000)2(11000000)_{2}

紙に解いてから「答えを見る」で採点しよう。問題は無限に生成できます。

無限ドリル: 2進数⇔10進数の変換がランダムに出題されます。情報Iの計算問題の定番
📝 メモこの端末のみに保存
メモ欄はページ読み込み後に使えるようになります。