アルゴリズム

電気電子工学実験
~Hit&Blow~
担当教官:所 哲郎
1班 石原直幸 小河原耕太
重村亮臣 古田彰吾 森貴寛
アルゴリズム
あらかじめ配列にランダムで用意
↓
配列の先頭にある数字を抽出
↓
解答
↓
HitとBlowが返ってくる
返答と解答を比較
↓
返答と一致する最初の数を抽出
↓
次の解答とする
↓
4Hit 0Blowが返ってきたら終了
判定の高速化
0123,0124,0125,0126,0127,0128,0129,
0132,0134,0135,0136,0137,0138,0139,
0142,0143,0145,0146,0147,0148,0149,
0152,0153,0154,0156,0157,0158,0159,
:
9870,9871,9872,9873,9874,9875,9876,
例えば、最初に 0123 と予想し 2H0B と
いう答えが返ってきた場合、
01・・, 0・2・, 0・・3, ・12・, ・1・3, ・・23,
以外の答えはなくなり、・の部分には0123
の数字は入らないので
0123,0124,0125,0126,0127,0128,0129,
0132,0134,0135,0136,0137,0138,0139,
0142,0143,0145,0146,0147,0148,0149,
0152,0153,0154,0156,0157,0158,0159,
:
9870,9871,9872,9873,9874,9875,9876,
のようになる
0123,0124,0125,0126,0127,0128,0129,
0132,0134,0135,0136,0137,0138,0139,
0142,0143,0145,0146,0147,0148,0149,
0152,0153,0154,0156,0157,0158,0159,
:
9870,9871,9872,9873,9874,9875,9876,
0145を答えとして出力
データ形式について
比較対照の数
i 0 1 2 3
X[i] 3 8 2 6
という形で配列だと
比較回数が多くなる
5 9 6 3
i 0 1 2 3
X[i] 3 8 2 6
i
0 1 2 3 4 5 6 7 8 9
X[i] 0 0 3 1 0 0 4 0 2 0
①
④
③
②
4回の比較で済む
5 9 6 3
数字の絞込み(1回目)
0Hit
0Blow
0Hit
1Blow
0Hit
2Blow
0Hit
3Blow
0Hit
4Blow
360
1440
1260
264
9
1Hit
0Blow
1Hit
1Blow
1Hit
2Blow
1Hit
3Blow
2Hit
0Blow
480
720
216
8
180
2Hit
1Blow
2Hit
2Blow
3Hit
0Blow
4Hit
0Blow
72
平均
360
6
24
1
数字の絞込み(グラフィック表現)
回を重ねる毎に、候補が減っていく様子を
視覚的に表現する
↓
数字で表示
↓
画像で表示!
数字の絞込み(グラフィックで表現)
例)残り候補
1260通り
「白」のドット
⇒残り候補
「黒」のドット
⇒除外した
候補
数字の絞込み(グラフィックで表現)
数字の絞込み(グラフィックで表現)
数字の絞込み(グラフィックで表現)
数字の絞込み(グラフィックで表現)
数字の絞込み(グラフィックで表現)
数字の絞込み(グラフィックで表現)
まとめ
処理速度の高速化を優先したため、実
効回数は多い
実行過程を視覚的に表現することがで
きた
グループで作業を分担し協力してできた