応用情報技術者 2017年 春期 午前2 問11
問題文
15Mバイトのプログラムを圧縮した状態でフラッシュメモリに格納している。プログラムの圧縮率が40%、フラッシュメモリから主記憶への転送速度が20Mバイト/秒であり、1Mバイトに圧縮されたデータの展開に主記憶上で 0.03秒が掛かるとき、このプログラムが主記憶に展開されるまでの時間は何秒か。ここで、フラッシュメモリから主記憶への転送と圧縮データの展開は同時には行われないものとする。
選択肢
ア:0.48(正解)
イ:0.75
ウ:0.93
エ:1.20
プログラム展開時間の計算問題【午前2 解説】
要点まとめ
- 結論:プログラム展開時間は転送時間と展開時間の合計で0.48秒となる。
- 根拠:圧縮後のデータサイズは15Mバイト×0.4=6Mバイト、転送時間は6M÷20MB/s=0.3秒、展開時間は6M×0.03秒=0.18秒。
- 差がつくポイント:転送と展開が同時に行われないことを見落とさず、圧縮率を正しく適用して計算すること。
正解の理由
正解はアの0.48秒です。
まず、圧縮率40%なので元の15Mバイトのプログラムは6Mバイトに圧縮されています。
フラッシュメモリから主記憶への転送速度は20Mバイト/秒なので、転送時間は6Mバイト÷20Mバイト/秒=0.3秒です。
次に、1Mバイトの圧縮データ展開に0.03秒かかるため、6Mバイトの展開時間は6×0.03秒=0.18秒です。
転送と展開は同時に行われないため、合計時間は0.3秒+0.18秒=0.48秒となります。
まず、圧縮率40%なので元の15Mバイトのプログラムは6Mバイトに圧縮されています。
フラッシュメモリから主記憶への転送速度は20Mバイト/秒なので、転送時間は6Mバイト÷20Mバイト/秒=0.3秒です。
次に、1Mバイトの圧縮データ展開に0.03秒かかるため、6Mバイトの展開時間は6×0.03秒=0.18秒です。
転送と展開は同時に行われないため、合計時間は0.3秒+0.18秒=0.48秒となります。
よくある誤解
圧縮率を掛けるべきところを掛け忘れたり、転送と展開時間を同時に行うと誤解して合計時間を短く見積もることがあります。
解法ステップ
- 元のプログラムサイズ15Mバイトに圧縮率40%を掛けて圧縮後のサイズを求める。
- 圧縮後のサイズを転送速度20Mバイト/秒で割り、転送時間を計算する。
- 1Mバイトあたりの展開時間0.03秒に圧縮後のサイズを掛けて展開時間を求める。
- 転送時間と展開時間を足し合わせて合計時間を算出する。
選択肢別の誤答解説
- イ(0.75秒):転送時間や展開時間の計算ミス、または圧縮率を誤って計算した可能性があります。
- ウ(0.93秒):転送と展開を別々に計算せず、展開時間を過大評価している場合があります。
- エ(1.20秒):圧縮率を無視して元のサイズで計算したか、転送速度を誤った可能性があります。
補足コラム
圧縮率は「圧縮後のサイズ÷元のサイズ」で表され、40%は元のサイズの40%に圧縮されたことを意味します。
転送速度と展開時間の関係を正しく理解し、処理の順序を考慮することが重要です。
また、転送と展開が同時にできる場合は処理時間が短縮されますが、本問題では同時処理不可と明示されています。
転送速度と展開時間の関係を正しく理解し、処理の順序を考慮することが重要です。
また、転送と展開が同時にできる場合は処理時間が短縮されますが、本問題では同時処理不可と明示されています。
FAQ
Q: 圧縮率が50%ならどう計算しますか?
A: 元サイズに0.5を掛けて圧縮後サイズを求め、同様に転送時間と展開時間を計算します。
A: 元サイズに0.5を掛けて圧縮後サイズを求め、同様に転送時間と展開時間を計算します。
Q: 転送と展開が同時にできる場合はどうなりますか?
A: それぞれの時間のうち長い方が全体の処理時間となります。
A: それぞれの時間のうち長い方が全体の処理時間となります。
関連キーワード: 圧縮率、転送速度、展開時間、フラッシュメモリ、主記憶

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

