20
[第2回] コンピュータの基本処理 アルゴリズム論 a (2014)

Algo2014 a02

Embed Size (px)

Citation preview

Page 1: Algo2014 a02

[第2回] コンピュータの基本処理

アルゴリズム論 a (2014)

Page 2: Algo2014 a02

10進数 1+1=2

2進数 1+1=10

1ビットコンピュータ

1+1=0

64ビットコンピュータ

11・・11+1=0

64桁

Page 3: Algo2014 a02

入力

最終出力

逐次的処理(直列的処理)

処理1 処理2

処理 n ・・・・・

(出力1) (出力2)

(出力n-1)

中間出力

処理の順番が重要

中間出力

中間出力

Page 4: Algo2014 a02

入力 出力

並列的処理

処理1

処理2

処理 n

・・・・・

処理結果の合成

Page 5: Algo2014 a02

問題分析

アルゴリズムの確立

プログラム開発

実行、結果、検証、解決

Page 6: Algo2014 a02

コンピュータの処理部分

CPU メモリ

ハードディスク

読出し・書出し

一時記憶 計算・処理

書出し

読出し

元データ、処理結果の記録・保存

制御

Page 7: Algo2014 a02

コンピュータの処理部分

CPU メモリ

読み出し

計算・処理

メモリ

書き出し

一時記憶

入力 出力 処理

Page 8: Algo2014 a02

入力 出力 処理

問題 解答 アルゴリズム

コンピュータの処理

問題解決的

Page 9: Algo2014 a02

複数ビットの単位 数値/文字/文字列

連続した番地

※メモリの記憶場所を、便宜上箱のように表す

123 “A” “あいうえお”

Page 10: Algo2014 a02

代入 メモリの中にデータを記憶させる

比較 2つのメモリの中の値の大小を比較

交換 2つのメモリの中の内容を交換

スワップ(swap) 作業用領域を使用

Page 11: Algo2014 a02

代 入

CPU

文字 ”A”

演算・処理

Load(読込み)

メモリ内容の書き換えはCPUを通じて行う

文字 ”A” ・・・・・

Store(上書き)

メモリ1 メモリ2

Page 12: Algo2014 a02

メモリ間のデータの交換(SWAP)

データA

メモリの内容を交換

データB

データB データA

スワップ

Page 13: Algo2014 a02

作業用メモリを用意

A B

B

第3の空メモリを用意

A A

B

A B

B A

B

3つのメモリの間の

循環代入で実現

退避

上書き 上書き

解放

Page 14: Algo2014 a02

c ← a (メモリ c に a の内容をコピー)

a ← b (メモリ a に b の内容をコピー)

b ← c (メモリ b に c の内容をコピー)

※プログラムでは a = b のように記述

c = a

a = b

b = c

Page 15: Algo2014 a02

A B

A+B B

A+B B-(A+B)

A+B-A -A

B +A

加算

減算

減算

正負反転

Page 16: Algo2014 a02

ゲーム解決はアルゴリズムの典型

「ゲームに勝つ手順を見つける」

勝利に導く手順がアルゴリズム

解の発見、最短ステップでの解決 1人ゲーム

2人ゲーム

多人数ゲーム

Page 17: Algo2014 a02

1人ゲームの例

ピースゲーム、ルービックキューブ、 ジグソーパズル・・・

1ステップずつの操作の手順が問題

Page 18: Algo2014 a02

15パズル→8パズル

解決の手順を考える

8クイーン問題

8個のクイーンの可能な配置

Page 19: Algo2014 a02

自分の知っているゲーム(ルールを正しく知っているもの)でプレイする方針の手順を説明

必勝手順がないものは、勝てる可能性がある手順

例) 「ルービックキューブの整列手順の方針」

「オセロで勝つための手順の方針」

Page 20: Algo2014 a02

自動販売機でに千円札を入れた場合の

お釣りの硬貨の種類と枚数を判定するアルゴリズム

を考える。