作成日 2013/11/9
最終更新日 2013/11/17

数値計算するときのポイント

 情報処理技術者試験では、数値計算させる問題が結構出題されます。その際のポイントをまとめました。


1.1キロバイトは何バイト?
2.単位の変換について
3.最後に計算を行う
4.極力、小数ではなく分数で計算する


1.1キロバイトは何バイト?

 1キロバイトは1024バイトに決まっているだろう。とお叱りを受けそうです。
 まあ、確かにそうなんですよ。
 でも、これは試験だから、正解にたどり着ければ良いんです。
 なので、1キロバイトを1000バイトとしても良い場合もあります。
 ※同様にメガ、ギガも同じです。

■理由1:
 情報処理技術者試験は、数値計算能力を問うような試験ではないと考えています。理解しているかどうかを問う試験という感じです。
 なので、1キロバイトを1000バイトとした方が計算が楽だと思った場合は、そうして良いでしょう(※1、2)。

■理由2:
 情報処理技術者試験の午前試験は記述式ではなく、選択問題です。
 選択肢にある数値に開きがある場合、計算結果の精度が多少悪くても、選ぶことが可能です。
 例えば、選択肢が、
  ア:1 イ:10 ウ:25 エ:200
 となっていた場合、計算結果を求める際は、2桁で計算して良いでしょう。
 2桁で計算するということは、1024は1000で計算するという意味です。
 ※注:3桁目を四捨五入する。12345⇒12000、98765⇒99000です。

-----
※1:実際の実務(会議中などで、電卓がなく、概算したい場合)でも、こう考えることは多いです。
もちろん、最終的には1024で計算するのですが。

※2:「理解しているかどうかを問う試験」だから、計算は楽にできるようにするために、別の値を使うというのは他の試験でもあります。
高校の物理の問題で、π2を9.8として計算して良いという指定が、ある場合がありました(ちなみに、π2は9.869・・・です)。
π2を9.8とさせるのは、重力加速度が9.80[m/s2]だからです。
このページのトップへ

2.単位の変換について

 単位の変換と言うのは、例えば、
  [バイト/秒]を[キロバイト/分]
 にすることです。

 まあ、皆さん、出来ると思うのですが、以下のように単位から定数を切り出す(あるいは取り込む)方法で確実に(機械的に)出来ると思います(ミスを減らせるメリットがある)。
 通常は、こんなやり方はしなくても大丈夫だと思いますが、疲れているとき、混乱したとき、既に解いた問題をチェックする際に活用できると思います。

◆[分]を[秒]に変換
  5[分] ⇒ 5 [60秒]
     ⇒ 5 * 60[秒]
     ⇒ 300[秒]

◆[秒]を[分]に変換
  300[秒] ⇒ 300 / 60 * 60 [秒]
     ⇒ 300 / 60[60秒]
     ⇒ 5[分]

◆[バイト/分]を[バイト/秒]に変換
  300[バイト/分] ⇒ 300 [バイト/60秒]
     ⇒ 300 / 60[バイト/秒]
     ⇒ 5[バイト/秒]

◆[バイト/秒]を[バイト/分]に変換
  5[バイト/秒] ⇒ 5 * 60 / 60 [バイト/秒]
     ⇒ 5 * 60[バイト/60秒]
     ⇒ 300[バイト/分]
このページのトップへ

3.最後に計算を行う

 注意:ダメな場合あり。少なくとも再帰関数で最終的にどうなるかを求める問題(例:基本情報H23特別 問6)では、この方法は使えません。

 可能な限り、ぎりぎりまでは文字式(xなどの変数を使った式のこと)で計算し、最後に数値を代入して求めた方が良い場合があります。
 理由ですが、約分(分数で計算する)できる場合があるからです。
 ただし、計算しないままなので、デメリットとして、途中の式が長くなることがあげられます(時間がかかるし、ミスしやすくなる)。
 状況に応じて、行いましょう(※1)。

-----
※1:実際のプログラミングでは、最後の状態までは文字式で計算し(計算するのは設計工程です)、計算をプログラムに行わせる感じが多いです。
こうしないと、不要な計算をしてしまう危険があるためです。
不要な計算は誤差の元ですよ。
(特に、工学系、金融系のプログラムの場合は注意がいる)

再帰関数になる場合は、都度計算になるわけですが、その前に本当に再帰関数にしないとダメなのかを検討します。
再帰関数は、数学的には(設計時は)、漸化式になっています。
これを解くことが出来ないかを検討し、出来ない場合に再帰関数を使用することとなります。
このページのトップへ

4.極力、小数ではなく分数で計算する

 分数を約分し、約分できなくなったところで、小数の計算をした方が、ミスも少なく、速く計算できます。
 分数で計算する際は、帯分数ではなく、仮分数を使いましょう。

 え?
 数学(これは算数だけど)が苦手すぎて、分数の計算が出来ないって?
 う〜ん。
 どうしようか・・・。
 今一度、復習してみたらどうでしょうか?
 昔はダメだったけど、今やったらできたら、ラッキーだし。
 ダメだった場合、これは試験なので捨てるのもアリだけど。試験の難易度が上がると思う。
 暗記しないといけない量って、基本情報技術者試験でもかなりの量だから。
Prev Up Next  Top
このページのトップへ


このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。