発表者:細木、宇埜
- 情報処理基礎
- 画像処理
- ソフトウェア開発
- ネットワーク
- セキュリティ
- 知的財産
- 基数
- 補数
- 論理シフト
- データ構造
- アルゴリズム
数値を表現する際に、各桁の重み付けの基礎として用いる数
2を基数として数値を表現したもの。
電子回路は10進数を直接扱うようにはできていない
→ 全ての数値を__2進数__に置き換え、「0」と「1」の2種類の数字をスイッチのON/OFFに対応させて処理をしている
2進数のままでは桁数が多くなるなどして取り扱いにくいので、3桁ごとにまとめて__8進数__、4桁ごとにまとめて__16進数__に変換して表現する場合もある
電子回路では引き算を実現することが難しい
→ 負数の足し算で表現する
一般的に__「2の補数」__で表現される
基数の補数 : 基数のべき乗からある数を引いたもの
減基数の補数(基数-1の補数) : 基数のべき乗-1
- 10進数の場合
- 基数の補数 → 10の補数
- 減基数の補数(基数-1の補数) → 9の補数
- 2進数の場合
- 基数の補数 → 2の補数
- 減基数の補数(基数-1の補数) → 1の補数
2進数の全ビットを左右にずらすこと。
- 左に
n
ビットシフト →\(2^n\)
倍になる - 右に
n
ビットシフト →\(2^(-n)\)
倍になる
従って、ビットをずらすだけで掛け算や割り算がおこなえる
プログラムの中でどのようにデータを保持するか。どのデータ構造を選択するかで、プログラムの効率が変わることがある。
配列:メモリ上の連続した数値を表現したもの
リスト:各要素が次のデータの位置を指定する
�木構造:データに親子関係を持たせる
スタック__と__キュー:一時的にデータを蓄えるデータ構造
アルゴリズム:問題を解くための明確な手順
よいアルゴリズムとは
- 誰が見てもわかりやすい
- どんな場合でも正しく処理する(ユーザーがどんな使い方をしても)
- プログラムの効率がよい
- 同じような処理は、違うプログラムを作っているときでも再利用できる
フローチャート:アルゴリズムの流れを図示したもの
順次・分岐・反復
これらを組み合わせてアルゴリズムを構成する
有名なアルゴリズム
- 並び替え
- バブルソート
- シェルソート
- ヒープソート
- 階乗・探索など
- 再帰
- 最大公約数
- ユークリッド互除法
- 素数探索
- エラトステネスの篩
- 最短経路探索
- ダイクストラ法
- 確率理論の応用
- モンテカルロ法
マルチコアCPU
- 画像のデジタル化
- �ガンマ補正
- フィルタ処理
- 色補正
- 中間調処理
- 標本化
- 一定の周期で値を取得する(サンプリング)
- 量子化
- 取得した値を所定の階調で表現する
画像の表現方法 1
画像の表現方法 2
RGB→CMYK の変換は単純な方程式では実現できず、LUT (LookUp Table) を使って補間演算しなければならない。
→ LUTを作成するために、RGBとCMYKの対応関係をニューロネットワークで機械学習