2の答

区間不等式を順番に調べるとしたら,一つの x に対して平均 50回は調べなければならないであろう。

そうではなく,100.0*x の整数部 ix を取り出して a(ix) に入れるようにすればよい。

  ix= INT(100.0*x)   ※ INT(x)は,xの小数部を切り捨て整数化する関数
  a(ix) = a(ix) + 1

区間の幅が均一でない場合にはこうはいかない。それでも下から順番に不等式を調べるよりはずっと効率的な方法がいろいろ考案されている。最もわかりやすいのは,方程式の解(ゼロ点)を求めるのと同じく「2分法」で候補域を半分,半分と攻めていくことである。区間の数が多ければ多いほど,こうした工夫による計算時間の節約効果が大きくなる。