虱潰し法による問題の解法例 (復習) 一次方程式の整数解 (「a x + b = c の解」を求める ) 条件 : x の範囲(有限)が指定されている事 解法 : 指定された範囲に x を動かして、条件が成立する物を出す 最大公約数 ( m,n の最大公約数を求める ) 条件 : m, n の双方を割り切れる / 範囲 m,n の大きくない方から 1 まで 覆面算 (「ピヨ+ピヨ=ヒヨコ」) を解く 条件 (P) ピとヒは、数値の先頭なので、零にならない ピ、ヨ、ヒ、コは互いに異る一桁の数値 10 進法なので『「ピ*10+ヨ」+「ピ*10+ヨ」=「ヒ*100+ヨ*10+コ」』が成立 範囲 F = { x = <ピ、ヨ、ヒ、コ> | ピ、ヨ、ヒ、コは一桁 } : ベクトルの集合 ピ、ヨ、ヒ、コにそれぞれ 0 〜 9 の数値を当て嵌めて、条件をチェック プログラムの作成方針 条件を「論理式」にし、更に「if 文」に変換する ピ、ヨ、ヒ、コを一つずつ固定し、他を変更してゆく