Algo2014 a02
-
Upload
masa-woody -
Category
Documents
-
view
74 -
download
1
Transcript of Algo2014 a02
![Page 1: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/1.jpg)
[第2回] コンピュータの基本処理
アルゴリズム論 a (2014)
![Page 2: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/2.jpg)
10進数 1+1=2
2進数 1+1=10
1ビットコンピュータ
1+1=0
64ビットコンピュータ
11・・11+1=0
64桁
![Page 3: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/3.jpg)
入力
最終出力
逐次的処理(直列的処理)
処理1 処理2
処理 n ・・・・・
(出力1) (出力2)
(出力n-1)
中間出力
処理の順番が重要
中間出力
中間出力
![Page 4: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/4.jpg)
入力 出力
並列的処理
処理1
処理2
処理 n
・・・・・
処理結果の合成
![Page 5: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/5.jpg)
問題分析
アルゴリズムの確立
プログラム開発
実行、結果、検証、解決
![Page 6: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/6.jpg)
コンピュータの処理部分
CPU メモリ
ハードディスク
読出し・書出し
一時記憶 計算・処理
書出し
読出し
元データ、処理結果の記録・保存
制御
![Page 7: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/7.jpg)
コンピュータの処理部分
CPU メモリ
読み出し
計算・処理
メモリ
書き出し
一時記憶
入力 出力 処理
![Page 8: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/8.jpg)
入力 出力 処理
問題 解答 アルゴリズム
コンピュータの処理
問題解決的
![Page 9: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/9.jpg)
複数ビットの単位 数値/文字/文字列
連続した番地
※メモリの記憶場所を、便宜上箱のように表す
123 “A” “あいうえお”
![Page 10: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/10.jpg)
代入 メモリの中にデータを記憶させる
比較 2つのメモリの中の値の大小を比較
交換 2つのメモリの中の内容を交換
スワップ(swap) 作業用領域を使用
![Page 11: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/11.jpg)
代 入
CPU
文字 ”A”
演算・処理
Load(読込み)
メモリ内容の書き換えはCPUを通じて行う
文字 ”A” ・・・・・
Store(上書き)
メモリ1 メモリ2
![Page 12: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/12.jpg)
メモリ間のデータの交換(SWAP)
データA
メモリの内容を交換
データB
データB データA
スワップ
![Page 13: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/13.jpg)
作業用メモリを用意
A B
B
第3の空メモリを用意
A A
B
A B
B A
B
3つのメモリの間の
循環代入で実現
退避
上書き 上書き
解放
![Page 14: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/14.jpg)
c ← a (メモリ c に a の内容をコピー)
a ← b (メモリ a に b の内容をコピー)
b ← c (メモリ b に c の内容をコピー)
※プログラムでは a = b のように記述
c = a
a = b
b = c
![Page 15: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/15.jpg)
A B
A+B B
A+B B-(A+B)
A+B-A -A
B +A
加算
減算
減算
正負反転
![Page 16: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/16.jpg)
ゲーム解決はアルゴリズムの典型
「ゲームに勝つ手順を見つける」
勝利に導く手順がアルゴリズム
解の発見、最短ステップでの解決 1人ゲーム
2人ゲーム
多人数ゲーム
![Page 18: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/18.jpg)
15パズル→8パズル
解決の手順を考える
8クイーン問題
8個のクイーンの可能な配置
![Page 19: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/19.jpg)
自分の知っているゲーム(ルールを正しく知っているもの)でプレイする方針の手順を説明
必勝手順がないものは、勝てる可能性がある手順
例) 「ルービックキューブの整列手順の方針」
「オセロで勝つための手順の方針」
![Page 20: Algo2014 a02](https://reader034.fdocuments.net/reader034/viewer/2022042506/55c160cebb61eb8a508b4656/html5/thumbnails/20.jpg)
自動販売機でに千円札を入れた場合の
お釣りの硬貨の種類と枚数を判定するアルゴリズム
を考える。