今回のテーマは、「方程式と不等式」である。
【基本情報技術者試験】平成23年度特別試験・午前

答えを確認する
正解は エ です。
この問題は、インタプリタとコンパイラの処理時間を不等式で解く問題である。
コンピューターでプログラムを実行する方式には、プログラムの内容を1行ずつ実行するインタプリタ方式と、プログラムの内容をまとめて解釈して、まとめて実行するコンパイラ方式がある。
この問題では、インタプリタ方式では、プログラムの解釈・実行に100行当たり0.2秒かかる。コンパイラ方式では、プログラムを解釈する(この処理を コンパイルと呼ぶ)ために100行当たり0.1秒かかり、プログラムの行数に関係なくオーバヘッドが常に0.15秒かかり、プログラムを実行するのに 100行当たり0.003秒かかる。
プログラムの実行自体は、インタプリタ方式よりコンパイラ方式の方が速いが、コンパイラ方式には、コンパイルとオーバヘッドの時間がかかる。したがって、一概に、コンパイラ方式の方が速いとは言い切れない。プログラムの行数が何行以上なら、コンパイラ方式の方が速くなるのかを求めるのが、この問題の目的である。
インタプリタ方式とコンパイラ方式の処理時間
インタプリタ方式・・・解釈・実行時間
コンパイラ方式・・・コンパイル時間 + オーバヘッド + 実行時間
方程式や不等式を使う問題では、何が未知数であるかを見出し、その未知数を使って、問題文に示された数値の関係を式にする。
ここでは、プログラムの行数が未知数である。行数 (gyosu) の頭文字を取ってgという名前にしよう。
インタプリタ方式の処理時間は、 100行当たり0.2秒の解釈・実行時間だけであり、g行のプログラムでは、$\frac{g}{100} × 0.2$秒になる。
コンパイラ方式の処理時間は、コンパイル時間が100行当たり 0.1 秒なので、$\frac{g}{100}× 0.1$であり、実行時間が100行当たり0.003秒なので、$\frac{g}{100} × 0.003$であり、さらにオーバヘッドの0.15秒があるので、全部で、$\frac{g}{100} × 0.1 + \frac{g}{100} × 0.003 + 0.15$秒になる。
コンパイラ方式の方が速くなるとは、コンパイラ方式の処理時間< インタプリタ方式の処理時間ということなので、$\frac{g}{100} × 0.1 + \frac{g}{100} × 0.003 + 0.15 < \frac{g}{100} × 0.2$という不等式を立てられる。
不等式を解く手順
【手順1】最初の状態の不等式
$\frac{g}{100} × 0.1 + \frac{g}{100} × 0.003 + 0.15 < \frac{g}{100} × 0.2$
【手順2】 両辺に100を掛けて分母の100をなくす
$g × 0.1 + g × 0.003 + 15 < g × 0.2$
【手順3】gがある項を左辺に、数値だけの項を右辺に移項する
$g × 0.1 + g × 0.003 – g × 0.2 < -15$
【手順4】gの係数をまとめる
$-0.097g < -15$
【手順5】両辺をgの係数の0.097で割る
$g > 154.6$…..
問題の選択肢には、これと同じ値はないが、問題文に「およそ」とあるので、選択肢工の155が正解となる。
方程式でも不等式でも、 左辺から右辺、または、右辺から左辺に項を移動することを移項と呼ぶ。移項すると、項の符号が変わることに注意しよう。
プラスの項はマイナスになり、マイナスの項はプラスになる。
先ほどの手順3では、左辺にあった +15 を右辺に移項したときに-15になり、 右辺にあったg x 0.2を左辺に移項したときに-g × 0.2になっている。
さらに、不等式の場合は、両辺をマイナスの値で割ると、不等号の向きが変わることに注意しよう。 これは、 >がく に変わり、<が>に変わるということである。
先ほどの手順5では、不等式の両辺を-0.097で割ったことで、<が>に変わっている。
(参考)情報処理教科書 出るとこだけ!基本情報技術者[科目A][科目B]矢沢久雄 (著)翔泳社


コメント