共通テスト 情報Ⅰ・3-4

計算誤差と表現の限界の一問一答

共通テスト「情報Ⅰ」の「デジタル化とコンピュータ」から、計算誤差と表現の限界に関する4択問題を10問。「答えと解説を見る」を開くと、正解とその理由がその場で読めます。会員登録は不要です。

この分野の演習

全10問/解説付き・基本無料

アプリ形式で解く(全800問) デジタル化とコンピュータの要点解説を読む
問題

上から順に解いてみてください。答えは各問の下で確認できます。

問13-4・基礎

10進数の0.1を2進数で表したものとして、最も適切なものはどれか。

  • ①0.0001(小数点以下4桁で終わる)
  • ②0.00011(小数点以下5桁で終わる)
  • ③0.00011001…(0011が繰り返す)
  • ④0.0101010101…(01が繰り返す)
答えと解説を見る
正解 ③0.00011001…(0011が繰り返す)
解説
正解は「0.00011001…(0011が繰り返す)」。0.1は2進数では、0.0の後に0011の並びがずっと繰り返し、有限の桁では終わりません。

手順
①小数部分に2を掛け、整数部分を上の桁から順に取り出す。0.1×2=0.2→0、0.2×2=0.4→0。
②0.4×2=0.8→0、0.8×2=1.6→1、0.6×2=1.2→1。ここまでで0.00011。
③残りが0.2にもどったので、ここから0011が繰り返す。コンピュータは決まった桁数で打ち切るので、わずかな誤差が出ます。

ひっかけ注意

・「0.0101010101…(01が繰り返す)」…10進数の3分の1(0.333…)を2進数にしたもの。0.25+0.0625+…と足すと3分の1に近づく。
・「0.0001(小数点以下4桁で終わる)」…10進数の0.0625(2の−4乗)。0.1より0.0375小さい。
・「0.00011(小数点以下5桁で終わる)」…0.0625+0.03125=0.09375。0.1を途中で打ち切った値で、0.00625足りない。
問23-4・標準

次の10進数のうち、2進数の有限の桁で正確に表すことができないものはどれか。

  • ①0.5
  • ②0.75
  • ③0.375
  • ④0.2
答えと解説を見る
正解 ④0.2
解説
正解は「0.2」。0.2は2進数では 0.00110011… と繰り返しが終わりません。

なぜ
2進数の小数点以下の桁は、0.5、0.25、0.125…と、2で割った値の組み合わせしか表せません。この組み合わせでちょうど作れる数だけが、有限の桁で表せます。

ひっかけ注意

・「0.5」…2進数で0.1。小数第1位の重み0.5そのもので、1桁で表せる。
・「0.75」…0.5+0.25なので、2進数で0.11。2桁で表せる。
・「0.375」…0.25+0.125なので、2進数で0.011。3桁で表せる。
問33-4・基礎

値がほぼ等しい2つの数の引き算をしたとき、結果の有効数字の桁数が大きく減ってしまう現象を何というか。

  • ①桁落ち
  • ②情報落ち
  • ③丸め誤差
  • ④打切り誤差
答えと解説を見る
正解 ①桁落ち
解説
正解は「桁落ち」。上の方の桁が引き算で打ち消し合い、信頼できる桁が少ししか残らなくなります。(情報Ⅰの範囲を少し超えた発展の内容です)

なぜ
例えば有効数字4桁の 1.235−1.234 は 0.001 になり、意味のある数字が1桁しか残りません。元の値に含まれていた小さな誤差が、相対的に大きく目立つようになります。

ひっかけ注意

・「情報落ち」…大きさが大きく違う数の足し引きで、小さい方が反映されない誤差。例:有効数字3桁で10000+1。
・「丸め誤差」…決められた桁に収めるため、四捨五入や切り捨てをして生じる誤差。例:2÷3を0.667とする。
・「打切り誤差」…無限に続く計算を途中で打ち切って生じる誤差。例:無限に続く足し算を10回で止める。
問43-4・標準

有効数字3桁の10進数で計算を行う(計算結果の4桁目を四捨五入して3桁に収める)。図は、1.23×10⁴(=12300)に 4.56 を、位をそろえて足したものである。足した結果を有効数字3桁で表したものはどれか。

万千百十一0.10.01123000012300456+4.561230456合計「一」は一の位、0.1と0.01は小数の位
自作の図
  • ①1.24×10⁴
  • ②1.23×10⁴
  • ③1.28×10⁴
  • ④5.79×10⁴
答えと解説を見る
正解 ②1.23×10⁴
解説
正解は「1.23×10⁴」。足した4.56が結果に反映されません。これを情報落ちといいます。(情報Ⅰの範囲を少し超えた発展の内容です)

手順
①図のとおり、1.23×10⁴=12300 に4.56を足すと 12304.56。
②有効数字3桁にするため、4桁目の0を四捨五入すると 12300。
③よって 1.23×10⁴ で、足す前と変わらない。

ひっかけ注意

・「1.24×10⁴」…4.56の分だけ3桁目が1増えると考えた値。12304.56の4桁目は0なので、四捨五入では切り上がらず12300のまま。
・「1.28×10⁴」…4.56を456と、桁(10の何乗か)を合わせずに足した値(12300+456)。
・「5.79×10⁴」…指数をそろえずに、仮数の1.23と4.56をそのまま足した値。
問53-4・標準

有効数字4桁で表された2つの数について、図の筆算のように 1.235 − 1.234 を計算した。結果の有効数字の桁数と、この現象の名前の組合せとして正しいものはどれか。

1.235−1.234.
自作の図
  • ①4桁・桁落ち
  • ②1桁・情報落ち
  • ③1桁・桁落ち
  • ④3桁・情報落ち
答えと解説を見る
正解 ③1桁・桁落ち
解説
正解は「1桁・桁落ち」。結果の0.001の中で、意味のある数字は最後の1だけです。(情報Ⅰの範囲を少し超えた発展の内容です)

手順
①図の筆算を計算すると、1.235−1.234=0.001。
②0.001の前の0は位取りのための0なので、有効数字は1桁。
③4桁あった有効数字がほぼ等しい数の引き算で1桁に減ったので、桁落ち。

ひっかけ注意

・「4桁・桁落ち」…有効数字が4桁のまま保たれると考えた誤り。4桁が1桁に減ることが桁落ち。
・「1桁・情報落ち」…桁数は合うが現象名が違う。情報落ちは大きさが大きく違う2数の足し引きで起こる。
・「3桁・情報落ち」…小数点以下の桁数(3桁)と有効数字を取り違え、現象名も誤っている。
問63-4・標準

8ビットの符号なし整数(表せる範囲は0〜255)で 200 + 100 を計算した。図は、計算結果の300を2進数で表し、各桁の重みを書いたものである。9ビット目(色を付けた桁)にあふれた桁を捨て、下位8ビットだけを残したとき、結果の値はいくつか。

2561286432168421100101100上の段:各桁の重み 下の段:300の2進数
自作の図
  • ①255
  • ②300
  • ③45
  • ④44
答えと解説を見る
正解 ④44
解説
正解は「44」。結果が表せる範囲を超えるオーバーフロー(桁あふれ)が起きています。

手順
①図のとおり、200+100=300=100101100(2進数)。これは255を超えるので、8ビットに収まらない。
②9ビット目は256の重みを持つ。あふれた桁を捨てると 300−256=44。
③2進数で確かめると、300=100101100 の下位8ビット 00101100=44。

ひっかけ注意

・「255」…最大値で止まると考えた値。この問題の前提では、9ビット目(重み256)を捨てる。
・「300」…数学上の正しい答え。8ビットの符号なし整数は0〜255なので、300は表せない。
・「45」…256ではなく255を引いてしまった値。9ビット目の重みは2の8乗=256。
問73-4・基礎

決められた桁数に収めるため、四捨五入・切り捨て・切り上げを行ったことで生じる誤差を何というか。

  • ①丸め誤差
  • ②桁落ち
  • ③オーバーフロー
  • ④打切り誤差
答えと解説を見る
正解 ①丸め誤差
解説
正解は「丸め誤差」。コンピュータは決まった桁数しか持てないので、はみ出た部分を処理するときに生じます。(情報Ⅰの範囲を少し超えた発展の内容です)

なぜ
例えば 2÷3=0.6666… を小数第3位までにすると 0.667 になり、本当の値との間に差が出ます。この差が丸め誤差です。

ひっかけ注意

・「桁落ち」…ほぼ等しい数どうしの引き算で、有効数字が大きく減る現象。例:1.235−1.234=0.001。
・「オーバーフロー」…計算結果が表せる範囲を超えること。例:8ビット符号なしで200+100。
・「打切り誤差」…無限に続く計算を途中で打ち切って生じる誤差。例:無限に続く足し算を10回で止める場合。桁に収めるための四捨五入とは原因が違う。
問83-4・標準

次のプログラムを、数値を2進数の浮動小数点数で扱う一般的な処理系で実行したところ、「等しくない」と表示された。その主な理由として最も適切なものはどれか。
(01) x = 0
(02) i を 1 から 10 まで 1 ずつ増やしながら繰り返す:
(03) ⎿ x = x + 0.1
(04) もし x == 1 ならば:
(05) | 表示する("等しい")
(06) そうでなければ:
(07) ⎿ 表示する("等しくない")

  • ①足し算の回数が多く、オーバーフローが起きるから
  • ②0.1が2進数で正確に表せず、誤差が積もるから
  • ③ほぼ等しい数の引き算で、桁落ちが起きているから
  • ④小数と整数は、等しいかどうかを比べられないから
答えと解説を見る
正解 ②0.1が2進数で正確に表せず、誤差が積もるから
解説
正解は「0.1が2進数で正確に表せず、誤差が積もるから」。10回足した結果が、1にごくわずかに届かない値になります。

なぜ
0.1は2進数では繰り返しが終わらないので、決められた桁で丸めた近い値として記録されます。その小さな誤差が足し算のたびに積み重なり、x はちょうど1になりません。そのため x == 1 は成り立ちません。

ひっかけ注意

・「足し算の回数が多く、オーバーフローが起きるから」…x は1程度にしかならない。範囲を超えるのは、はるかに大きな値のとき。
・「ほぼ等しい数の引き算で、桁落ちが起きているから」…このプログラムの計算は足し算だけで、引き算は1回もない。桁落ち(発展の語)は、1.235−1.234のようなほぼ等しい数の引き算で有効数字が減る現象。
・「小数と整数は、等しいかどうかを比べられないから」…比べることはできる。値が1からわずかにずれているため等しくならない。
問93-4・基礎

浮動小数点数で、数値の有効数字の並びを受け持ち、精度(何桁まで正確か)を決める部分を何というか。

  • ①指数部
  • ②符号部
  • ③仮数部
  • ④基数
答えと解説を見る
正解 ③仮数部
解説
正解は「仮数部」。仮数部のビット数が多いほど、細かい桁まで表せます。

なぜ
浮動小数点数は、1.23×10⁴ のように、数字の並び(仮数)と、何桁ずらすか(指数)に分けて表します。数字の並びを持つのが仮数部です。

ひっかけ注意

・「指数部」…小数点の位置(数の大きさの桁)を表す部分。指数部のビット数を増やした場合、表せる数の範囲が広がる(精度は仮数部が決める)。
・「符号部」…正か負かを表す部分で、ふつう1ビット。0なら正、1なら負を表す。
・「基数」…何進法かを表す数(2進数なら2)。1つ1つの数ごとには記録しない。
問103-4・標準

浮動小数点数の形式で、仮数部のビット数は変えずに、指数部のビット数だけを増やした。主に変わることとして最も適切なものはどれか。

  • ①表せる数の有効桁数が増える
  • ②負の数も表せるようになる
  • ③0.1を誤差なく表せるようになる
  • ④表せる数の大きさの範囲が広がる
答えと解説を見る
正解 ④表せる数の大きさの範囲が広がる
解説
正解は「表せる数の大きさの範囲が広がる」。指数部は、数の大きさの桁(小数点の位置)を受け持つからです。

なぜ
指数部のビットが増えると、より大きな数や、より0に近い小さな数まで表せます。しかし、数字の並びを持つ仮数部は同じなので、細かさ(精度)は変わりません。

ひっかけ注意

・「表せる数の有効桁数が増える」…有効桁数(精度)を決めるのは仮数部。仮数部のビット数が同じなら、有効桁数は変わらない。
・「負の数も表せるようになる」…正負は符号部(1ビット)が表す。指数部を増やす前から負の数も表せる。
・「0.1を誤差なく表せるようになる」…0.1は2進数で繰り返しが終わらないので、指数部を増やしても正確には表せない。

当サイトは、独立行政法人 大学入試センターとは一切関係のない、非公式の学習サイトです。試験に関する最新情報は、大学入試センターの公式サイトでご確認ください。

共通テスト 情報Ⅰ 基礎完全対策(全800問)に戻る

※本ページでは、アクセス解析(Googleアナリティクス)と、広告の配信・成果の計測(A8.net)のためにCookie等を利用し、閲覧に関する情報をGoogle LLC・株式会社ファンコミュニケーションズへ送信しています。詳しくはプライバシーポリシーをご覧ください。

※本ページの問題・解説は、生成AI(人工知能)を活用して作成しています。

【PR】