戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2010年 秋期 85


問題文

図を画素で表す手法を考える。図1の場合、個の画素を左上から1行ずつ右方向へ1画素ずつ読み取り、黒ならB、白ならWと書くと“BWBBBBBWB”(9文字)となる。次に、BやWが文字連続する場合を“Bn”、“Wn”と表す(以上の整数)と、図1は“BWB5WB”(6文字)と表現でき、このときの圧縮率をであると定義する。図2のの図形について同じ手法で表現すると、圧縮率は何%か。
ITパスポート 2010年 秋期  問85の問題画像

選択肢

48.0
52.0(正解)
76.0
88.0

🔒 解説は解答すると表示されます

図2の圧縮率を求める問題【ITパスポート 解説】

正解の理由

この問題は、画面を1画素ずつ左上から右へ、上から下へと順に読み取り、同じ色が連続する場合に「色+連続数」で表す手法(ランレングス圧縮:RLE, Run-Length Encoding)を適用して圧縮率を計算する問題です。図2を読み取ったときに得られる連続する色のまとまり(ラン)を正しく数え、その符号長(文字数)を元画像の画素数で割ればよいので、計算の結果が52.0%となります。
(注)本問では灰色の塗りを「B(黒に相当)」、白を「W」と表しています。画素(がそ:画像を構成する小さな点)を1つずつ扱います。

解法ステップ

  1. 図2は5×5で合計25画素です。まず行ごとに左右から並べると得られる色の列を確認します。
    • 1行目:B B B B B
    • 2行目:B W W W W
    • 3行目:B B B B W
    • 4行目:B W W W W
    • 5行目:B W W W W
  2. 上から順に連結して1列の長い列にします(行の境で色が同じなら連続とみなします)。すると画素列は: BBBBB BWWWW BBBBW BWWWW BWWWW (合計25文字)
  3. この連続列を前から見てラン(同じ文字が連続するまとまり)に分けます。ランの長さは次の通りです。
    • B が6個連続 → B6
    • W が4個連続 → W4
    • B が4個連続 → B4
    • W が1個 → W
    • B が1個 → B
    • W が4個 → W4
    • B が1個 → B
    • W が4個 → W4
  4. ランレングス表記ルール:2個以上なら「色+数(例:B4)」、1個なら単に「色(例:W)」と表すので、上の表記は B6 W4 B4 W B W4 B W4 となり、これを文字数で数えると、各「B6」「W4」「B4」「W」「B」「W4」「B」「W4」の長さはそれぞれ 2,2,2,1,1,2,1,2 → 合計13文字です。
  5. 圧縮率は「圧縮後の文字数 ÷ 元の文字数 × 100%」なので
したがって正解はイ(52.0%)です。

選択肢別の誤答解説

  • ア: 48.0
    • 48.0% はもし圧縮後が12文字なら出る値です(12/25=48%)。しかし図のランを正しく数えると圧縮後は13文字になるため誤りです。行のつながりでBが6連になる点を見落とすと12と誤計算しやすいです。
  • イ: 52.0(正解)
    • 正しくランをつなげて数えると圧縮後13文字、元は25画素で52.0%になります。
  • ウ: 76.0
    • 76.0% は(19/25)や(~0.76)に相当しますが、本問の符号長や元画素数とは合いません。圧縮後を過大に見積もった結果の数字です。
  • エ: 88.0
    • 88.0% は(22/25)に相当します。ほとんど圧縮されていないと仮定した場合の値で、ランを適切にまとめるとこの値にはなりません。

よくある誤解

  1. 行ごとに別々に処理する
    • 誤り:各行ごとにリセットして考え、行末と次行先頭の同色を別のランと考えてしまう。
    • 正解:読み取りは連続する1列として扱うため、行末と次行先頭が同色ならランはつながります(本問では1行目の終わりBと2行目の先頭Bがつながり、B6になります)。
  2. 「1個の連続」も「B1」や「W1」と書いてしまう
    • 誤り:「B1」と書くと2文字になり、問題のルール(は2以上の整数で、1は単に文字)に反します。1個は単に「B」や「W」と書きます。
  3. 画素の対応を間違える(灰色をWと見るなど)
    • 誤り:灰色を白(W)と誤認すると全体の並びが変わり圧縮率も違ってしまいます。図の色の対応(ここでは灰色→B、白→W)を最初に明確にしてください。

補足コラム:ランレングス圧縮(RLE)について

ランレングス圧縮(RLE:Run-Length Encoding)は、同じデータが連続する部分を「データ+回数」で表す単純な圧縮法です。白黒(あるいは2色)の画像や、同一値が長く続くデータに強く効率的です。一方、色が頻繁に切り替わる画像(ノイズが多い写真など)では逆にデータが増えることがあります。
覚え方のヒント:Run(連続)+Length(長さ)=連続する長さを記録する方式、です。

FAQ

Q1. 行の終わりと次の行の先頭が同じ色なら結合して良いですか?
A1. はい。問題文の読み取り順は「左上から1行ずつ右方向へ1画素ずつ読み取り、上から下へ」とあるため、上下行の境も連続として扱います。
Q2. 1個だけの連続も「B1」と書いてよいですか?
A2. いいえ。問題のルールでは は2以上の整数です。1個の場合は単に「B」や「W」と書きます。
Q3. 圧縮率が100%になるのはどんな時ですか?
A3. 圧縮後の文字数が元の画素数と同じ場合です。たとえば交互に色が続き、すべてが単独のラン(B W B W ...)になると圧縮効果はなく100%になります。


関連キーワード: 画素、ランレングス圧縮、RLE(Run-Length Encoding:連長圧縮)、圧縮率、二値画像
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について