2025年度 大学入学共通テスト 追試験 情報Ⅰ 解答・解説

2025年度 大学入学共通テスト 追試験「情報Ⅰ」の解答と解説です。全設問の正解と考え方を一問ずつ解説し、公式の解答PDFもあわせて掲載しています。大学受験の森が独自に作成した、無料で読める解説です。

目次
スポンサーリンク

解答

解説

2025年度大学入学共通テスト追試験の情報Ⅰは、100点満点・試験時間60分、第1問から第4問までの4つの大問がすべて必答です。解答記号は大問ごとにアから振り直され、第1問が10か所(ア〜コ)、第2問が15か所(ア〜ソ)、第3問が13か所(ア〜ス)、第4問が9か所(ア〜ケ)で、合計47か所あります。大問ごとの配点は第1問20点・第2問30点・第3問25点・第4問25点です。この記事では47か所すべての正解と、それが決まる筋道を解答記号の順に示します。

第1問は、著作権法に基づく判断、ラスタ形式とベクタ形式の違い、地図タイルのデータ量、施設予約表のデータ構造、注文端末が送る数値の割当という5つのテーマの小問集合です。第2問はAが会員登録の会話文を題材にしたパスワードのパターン数と情報セキュリティ、Bが迷路の壁の有無を2進表記で表す二つの方法の比較と、財宝へ向かう方向をマスごとに記録する表現の設計です。第3問はクラス40人のごみ拾いの記録を配列に格納し、ごみの種類ごとに総重量を集計するプログラム、第4問は47都道府県の人口・面積・病院数のオープンデータを相関係数・散布図行列・中央値によるグループ分け・回帰直線と道具を変えて分析する問題です。

この回でつまずきやすいのは、値そのものよりも「何を単位にしているか」の取り違えです。第1問問2はタイルの1辺の長さが半分になるとデータ量は4分の1になる関係、第1問問4はトッピングの合計が十の位と一の位の2桁に収まらなければならないこと、第3問は添字が出席番号なのかごみの種類なのかループ変数なのかの区別、第4問は病院数を人口で割ったのか面積で割ったのかで相関係数の符号が逆になることが、そのまま分かれ目になります。第2問Bは6×6マスの迷路の壁を自分で読み取る必要があるので、ビットの並びが「左→上→右→下」であることを最初に書き出しておくと、問1から問2まで同じ道具で通せます。

解答の形式についても2点確認しておきます。選択肢の番号は①ではなく⓪から始まります。さらに選択肢が10個をこえる第2問A問1と第3問問3のコ〜スでは、⑨の次がⓐ・ⓑ・ⓒ・ⓓと続く形式なので、マークする位置を1つずらさないよう注意してください。また第2問B問1のク・シと問2のソは解答群から選ぶのではなく、当てはまる数字をそのままマークする設問です。

第1問(必答) 小問集合(著作権・データ量・データ構造)

著作権法の判断、画像の表現形式、地図タイルのデータ量、施設予約表のデータ構造、注文端末が送る数値の割当という独立した5テーマの小問集合です。配点は20点で、解答記号はア〜コの10か所です。

ア:正解 3(配点2)

<考え方>
著作権は「誰が創作したのか」「保護期間が切れていないか」「私的使用のための複製にあたるか」の3点に戻せば決まります。⓪は写真の著作者が撮影した自分自身なので、友達に渡しても著作者の権利を侵害しません。①はバッハが1750年に没しており著作権の保護期間が満了しているので、自分の演奏動画を投稿しても作曲者の権利は侵害しません。②は他人の著作物の無断転載で複製権や公衆送信権の侵害にあたるため「侵害しない」は誤りです。③は自分で購入した問題集を自分が勉強するために複製する行為で、私的使用のための複製として認められるので、これが正解です。

⓪は肖像権やパブリシティ権の問題が生じる場合がありますが、この設問が問うているのは「著作者の権利」です。権利の種類を混同しないようにしましょう。

イ:正解 2(配点2)

<考え方>
ラスタ形式は画素の集まりで表す方式、ベクタ形式は点・線・面を数式で表す方式、という定義に戻します。⓪の単色のピクトグラムは図形の情報だけで表せるので、ベクタ形式のほうがデータ量は小さくなります。①は拡大してもジャギーが生じないのはベクタ形式のほうで、ラスタ形式は画素そのものが拡大されて階段状になります。③はあらかじめ表示サイズごとにデータを用意するのはビットマップフォントの説明で、ベクタ形式のフォントは一つの輪郭データを拡大縮小して使います。②のように写真は画素ごとに色が細かく変化するのでラスタ形式が適しており、これが正解です。

設問に「画像は圧縮していないものとする」とあるので、データ量は画素数と1画素あたりの色の情報量だけで考えてよい、という前提になっています。

ウ:正解 1(配点3)

<考え方>
レベルkのタイルは領域全体を縦横それぞれ2のk乗個に分けたものなので、レベルが1つ上がるとタイル1辺の実際の長さは半分になります。レベル17で1辺が300mですから、レベル16では600m、レベル15では1200m、すなわち1.2kmです。1辺1.2kmのタイルを横4枚・縦2枚並べれば4.8km×2.4kmになり、画素数も256×4=1024画素、256×2=512画素で画面の大きさと一致します。よってレベルは15で、これは選択肢①です。

レベル17 … 1辺 = 300 m
レベル16 … 1辺 = 300 m × 2 = 600 m
レベル15 … 1辺 = 600 m × 2 = 1200 m = 1.2 km

並べたときの実際の長さ
 横 = 1.2 km × 4枚 = 4.8 km
 縦 = 1.2 km × 2枚 = 2.4 km

並べたときの画素数
 横 = 256 画素 × 4 = 1024 画素
 縦 = 256 画素 × 2 = 512 画素

よって ウ=1(レベル15)

どのレベルでもタイルは256画素×256画素なので、必要な枚数がそのまま画面の画素数を決めます。レベルを1つ下げると1辺が2倍・面積が4倍になる関係を押さえておくと、次のエがすぐに出ます。

エ:正解 2(配点3)

<考え方>
タイル1枚のデータ量はレベルによらず256画素×256画素で同じなので、データ量の比はそのまま必要な枚数の比になります。同じ4.8km×2.4kmの範囲をレベル17(1辺300m)のタイルで覆うと、横は4800m÷300m=16枚、縦は2400m÷300m=8枚で合計128枚です。レベル15なら4×2=8枚なので、比は8枚÷128枚=1/16となり、選択肢②です。

レベル17のタイル … 1辺 = 300 m
 横 = 4800 m ÷ 300 m = 16 枚
 縦 = 2400 m ÷ 300 m = 8 枚
 枚数 = 16 枚 × 8 枚 = 128 枚

レベル15のタイル … 枚数 = 4 枚 × 2 枚 = 8 枚

1枚あたりのデータ量は 256 画素 × 256 画素 で共通
データ量の比 = 8 枚 ÷ 128 枚 = 1/16

よって エ=2(1/16)

1辺の長さが4倍になれば面積は16倍で、必要な枚数は1/16になります。1辺だけを比べて1/4(選択肢はありませんが同じ考え違いで1/8などを選びやすい)としないよう、縦と横の両方を数えることが大切です。

オ,カ:正解 0, 3(配点2)

<考え方>
表1は一番左の列に日付、一番上の行に施設名を並べたマトリクス型の表なので、行は日付だけで決まり、施設は列で区別されます。したがってオは<日付>が「7月3日」(⓪)の行を探すのが正しく、①のように施設まで行の条件に加える必要はありません。②③は行の見出しにない部活動団体や施設を行の条件にしており、④の「<武道場>が柔道部」は予約が済んだ後の状態なので、これから書き込む前の条件になりません。カは、その行のうち武道場の列と交差するマス、すなわち「その行の<武道場>のマス」(③)が空白かどうかを確かめます。

表1では「予約が入っていない」ことが空白マスで表されます。空白マスを持たない表2との違いが、そのまま次のキ・クの考え方につながります。

キ,ク:正解 1, 4(配点3)

<考え方>
表2は1行が1件の予約を表し、<日付><施設><部活動団体>の三つのマスがすべて埋まっていて空白のマスがない形式です。7月3日の武道場の予約だけを取り消すには、<日付>が「7月3日」かつ<施設>が「武道場」(①)という二つの条件で行を特定しなければなりません。⓪のように日付だけで探すと、同じ日の他の施設の予約まで対象になってしまいます。そして表2では空白のマスを作れないので、マスの中身を消すのではなく「その行そのもの」(④)を削除します。

表1では対象のマスを空白に戻し、表2では対象の行を削除する——同じ「取り消し」でも表の形式によって操作が変わります。この対比がこの問3の要点です。

ケ:正解 2(配点2)

<考え方>
送られる数値はスープ・麺の太さ・トッピングの合計なので、トッピングの選び方が違えば合計も必ず違う、つまりトッピングの数値の部分和がすべて異なる組でなければ注文を識別できません。⓪は玉子+メンマ=1+4=5とコーン+のり=2+3=5が衝突します。①はのり単独の3と玉子+コーンの3が衝突します。③は玉子+のり=1+98=99がメンマ単独の99と衝突し、さらに98+99=197では百の位に繰り上がって麺の太さの指定まで壊してしまいます。②の1, 2, 4, 8は2の累乗なので部分和が0から15まですべて1通りに決まり、これが正解です。

⓪ 1, 2, 3, 4 → 1 + 4 = 5、2 + 3 = 5 … 重複する
① 1, 2, 3, 6 → 3(のり)、1 + 2 = 3 … 重複する
② 1, 2, 4, 8 → 部分和は 0 〜 15 の16通りがすべて異なる
③ 1, 2, 98, 99 → 1 + 98 = 99(メンマ単独と重複)、98 + 99 = 197(百の位へ繰り上がる)

よって ケ=2

「一種類の具材は一つしかトッピングできない」ので、同じ数値を2回足す場合を考えなくてよいのが助けになります。1, 2, 4, 8は2進数の各桁に対応し、トッピングの有無をそのままビットで表している形です。

コ:正解 1(配点3)

<考え方>
十の位と一の位だけを見て判別するので、トッピングの合計は0から99までの100通りに収まらなければなりません。n種類の具材があれば選び方は2のn乗通りあり、それぞれに異なる合計を割り当てる必要があるので、2のn乗が100以下であることが条件です。2の6乗は64で条件を満たし、2の7乗は128で足りないので、最大は6種類です。実際に1, 2, 4, 8, 16, 32とすれば合計の最大は63で2桁に収まります。よって選択肢①です。

2桁で表せる合計 = 0 〜 99 の 100 通り
n 種類のトッピングの選び方 = 2ⁿ 通り(何も選ばない場合を含む)

2ⁿ ≦ 100 を満たす最大の n を探す
 2⁶ = 64 ≦ 100 … 可
 2⁷ = 128 > 100 … 不可

実例(1, 2, 4, 8, 16, 32 とおく)
 合計の最大 = 1 + 2 + 4 + 8 + 16 + 32 = 63 ≦ 99

よって コ=1(6種類)

⑤49や⑥99は「2桁で表せる数の個数」から種類数を出してしまった誤りです。区別しなければならないのは具材の種類ではなく、具材の組合せである点に注意しましょう。

第2問(必答) A パスワードのパターン数と情報セキュリティ

ファンクラブサイトへの会員登録という場面の会話文を読み、パスワードのパターン数を重複順列で求めたうえで、認証方式の分類・多要素認証の利点・会員証の複製対策・個人情報保護の方針の読み取りを問います。第2問はA・B合わせて配点30点です。

ア:正解 8(配点2)

<考え方>
重複順列なので、まず1文字あたりに使える種類を数え、それを文字数だけ掛けます。数字10種類、アルファベットの大文字26種類、小文字26種類で、大文字と小文字は別の文字として区別されるので、1文字あたり10+26+26=62通りです。パスワードは必ず10文字で各文字が独立に選べるので62の10乗となり、選択肢⑧の(10+26+26)¹⁰が答えです。

1文字あたりに使える文字の種類
 数字 10 種類 + 大文字 26 種類 + 小文字 26 種類 = 62 通り

10文字すべてを独立に選ぶので
 パターン数 = 62 × 62 × … × 62(10 個)= 62¹⁰ = (10 + 26 + 26)¹⁰

よって ア=8

種類を足すところを掛けてしまうと10×26×26などになりますが、これは「数字1文字・大文字1文字・小文字1文字を並べる」という別の問題の答えです。足すのか掛けるのかを、場面で切り分けましょう。

イ:正解 7(配点2)

<考え方>
使える文字の種類は同じで文字数だけが10文字と8文字で違うので、比をとれば指数の差だけが残ります。62の10乗を62の8乗で割ると62の2乗になり、選択肢⑦の(10+26+26)²です。

10文字のパターン数 = 62¹⁰
 8文字のパターン数 = 62⁸

倍率 = 62¹⁰ ÷ 62⁸ = 62¹⁰⁻⁸ = 62² = (10 + 26 + 26)²

よって イ=7

62²=3844なので、文字数を2つ増やすだけでパターン数は約3800倍になります。会話文の「文字数が増えるとパターン数も増えて、より安全になるよ」を数で裏づけた設問です。

ウ:正解 2(配点2)

<考え方>
個人情報を入力する場面では、通信経路の安全・使う端末の安全・画面の安全の3つを守る、という観点で判定します。⓪の公衆無線LANは通信の盗聴や偽アクセスポイントのおそれがあり、①の共有パソコンは入力内容やIDが端末に残るおそれがあります。③は紙に印刷して目立つ場所に掲示するもので、パスワードを他人に見せているのと同じです。②のように周囲からののぞき見に注意しながら入力するのは適切な行動で、これが正解です。

公衆無線LANの利用そのものがつねに禁止というわけではありませんが、「確実にインターネットに接続できるように」という理由で自宅や個人の回線より優先する判断は、情報セキュリティの観点から適当ではありません。

エ:正解 0(配点2)

<考え方>
設問文にある3つの定義にそのまま当てはめます。パスワードは本人だけが知っている文字列なので知識認証です。認証コードは本人のスマートフォンという所有物に届き、その端末を持っていることで本人を確かめるので所有物認証です。指紋や顔などの生体情報はここでは使われていません。この組合せは選択肢⓪です。

認証コードそれ自体は「知っている情報」に見えますが、それを受け取れるのは登録した端末の持ち主だけなので所有物認証に分類します。この区別が次の問3bの多要素認証の利点につながります。

オ:正解 3(配点2)

<考え方>
種類の異なる認証方法を組み合わせる目的は、1つの要素が破られても残りの要素が守りとして残ることにあります。⓪の脆弱なパスワードの禁止はパスワードポリシーの機能、①の伏せ字表示は入力画面の仕様で、どちらも認証を2種類にしたこととは関係がありません。②はパスワードは復元できない形で保管するのが原則であり、認証コードから計算できるものではありません。③のようにパスワードが漏洩しても、手元の端末に届く認証コードがなければログインできないのでリスクを減らせます。これが正解です。

これが二要素認証(多要素認証)の考え方です。エで確かめたように「知識」と「所有物」という別の種類を組み合わせている点が効いています。

カ:正解 2(配点2)

<考え方>
「複製して利用されることを抑制できるか」を、複製そのものが難しいか、複製しても使えないかの2点で判定します。⓪のICチップは内部の情報を読み出して複製することが難しく、①の透かしやホログラムは通常の印刷では再現しにくいものです。③はログインしているときだけ会員証機能が有効なので、画面を複製してもユーザIDとパスワードがなければ使えません。②の二次元コードを載せたPDFファイルは、ファイルをそのままコピーして送るだけで誰でも同じものを表示できるので、抑制の効果が期待できません。これが正解です。

「抑制の効果が期待できない」ものを選ぶ設問なので、4つのうち3つが有効な対策、1つが無効という構成になっています。設問文の否定を読み飛ばさないようにしましょう。

キ:正解 1(配点3)

<考え方>
方針の2点、すなわち「利用目的の範囲内か」と「第三者提供にあたるか(ただし業務委託は例外)」の両方を、Ⅰ〜Ⅲについて1件ずつ確かめます。Ⅰは生年月日から年齢層を分析する行為で「会員の属性を分析し、それに応じたサービスの改善を行うため」に含まれ、関連会社への委託もただし書きの例外にあたるので〇です。Ⅱは住所を使ってイベントのチラシを郵送する行為で「イベントの運営、および、サービスに関する告知」「物品や書類などの発送」に含まれ、これも委託なので〇です。Ⅲは会員同士が互いのメールアドレスを閲覧できるようにするもので、どの利用目的にも入らず、しかも他の会員という第三者への提供にあたるので×です。(〇, 〇, ×)は選択肢①です。

Ⅰ 生年月日 → 年齢層の分析
 利用目的「会員の属性を分析し、それに応じたサービスの改善」に該当
 関連会社への委託はただし書きの例外に該当 … 〇

Ⅱ 住所 → イベントのチラシを郵送
 利用目的「イベントの運営、および、サービスに関する告知」「物品や書類などの発送」に該当
 関連会社への委託はただし書きの例外に該当 … 〇

Ⅲ メールアドレス → 会員同士が互いに閲覧できるシステムの提供
 どの利用目的にも該当せず、他の会員という第三者への提供にあたる … ×

(Ⅰ, Ⅱ, Ⅲ)=(〇, 〇, ×)

よって キ=1

「収集した個人情報を第三者に提供しません」の一文だけを見るとⅠとⅡも×に見えますが、直後の「利用目的の達成のために必要な範囲において業務を委託する場合は、この限りではありません」というただし書きが効きます。ただし書きまで読んでから判定しましょう。

第2問(必答) B 迷路の壁の表し方と財宝へ向かう方向の表現

6×6マスの迷路の壁の有無を、マスごとに4ビットで表すSさんの方法と2ビットで表すTさんの方法で比べ、必要なデータ量を式にします。後半では、どのマスからでも財宝にたどり着けるように「財宝へ向かう方向」をマスごとに記録する表現を設計します。

ク:正解 2(配点2)

<考え方>
Sさんの方法は、左端のビットから右へ「左→上→右→下」の順に壁の有無を並べる約束です。図2でXは1行目の左から5列目、Yはその真下の2行目の左から5列目にあるので、Xの下の壁とYの上の壁は同じ1枚の壁を指しています。Xで問題になっているのは左端から4ビット目、すなわち「下」なので、対応するのはYの「上」=左端から2ビット目です。よって2です。

Sさんの方法のビットの並び(左端から)
 1ビット目 … 左
 2ビット目 … 上
 3ビット目 … 右
 4ビット目 … 下

X(1行目・左から5列目)の下の壁 = Y(2行目・左から5列目)の上の壁
「上」は左端から 2 ビット目

よって ク=2

上下に隣り合うマスでは「下」と「上」、左右に隣り合うマスでは「右」と「左」の情報が重複します。Tさんが「無駄じゃない?」と言っているのはこの重複のことで、次のケ以降の伏線になっています。

ケ:正解 2(配点2)

<考え方>
Tさんの方法は各マスに「左」と「上」の2ビットしか持たせないので、自分のマスには右の壁の情報がありません。自分のマスの右の壁は、右隣のマスから見れば「左」の壁なので、右隣のマスの左端から1ビット目を見ればよいことになります。これは選択肢②です。⓪①は自分のマスの2ビット(左と上)を見るもので右の壁とは無関係、③の2ビット目は右隣のマスの「上」の壁になってしまいます。

Tさんの方法のビットの並び(左端から)
 1ビット目 … 左
 2ビット目 … 上

自分のマスの右の壁 = 右隣のマスの左の壁 = 右隣のマスの 1 ビット目

よって ケ=2

この方法では、上に移動できるかは自分のマスの2ビット目、下に移動できるかは下のマスの2ビット目、左に移動できるかは自分のマスの1ビット目で判定します。重複をなくした代わりに隣のマスを参照する手間が増えたことが、会話文の「確かに難しくなったね」の意味です。

コ:正解 4(配点2)

<考え方>
必要なビット数は(マスの個数)×(1マスあたりのビット数)で求めます。Sさんの方法は元のN×Nマスに対してそのまま1マス4ビットなので、N²×4=4N²ビットとなり選択肢④です。

マスの個数 = N × N = N² 個
1マスあたりのビット数 = 4 ビット

必要なビット数 = N² × 4 = 4N² ビット

よって コ=4

仮想のマスを足す必要がないことがSさんの方法の利点です。⑥32N²や⑦32N²+64Nは、4ビットを4バイト(=32ビット)と数えてしまった選択肢です。

サ:正解 2(配点2)

<考え方>
Tさんの方法は1マス2ビットですが、右端のマスの右の壁と下端のマスの下の壁を表すために、右に1列・下に1行の仮想のマス目を足す必要があります。足すのは右に縦N個、下に横N個なので、マスの個数はN²+N+N=N²+2N個です。これに1マス2ビットを掛けて2N²+4Nビットとなり、選択肢②です。

元のマス = N² 個
右に足す仮想のマス = N 個
下に足す仮想のマス = N 個

マスの個数 = N² + N + N = N² + 2N 個
1マスあたりのビット数 = 2 ビット

必要なビット数 = 2 × (N² + 2N) = 2N² + 4N ビット

よって サ=2

図3では、元の6列の右に1列、6行の下に1行が加わり、1行あたり7マス分の値が並んでいます。仮想のマスを忘れて2N²と答えてしまうと、右端と下端の壁が表せなくなります。

シ:正解 2(配点2)

<考え方>
コとサで求めた二つの式を比べる不等式を立てるだけです。Tさんの方法のほうが必要なデータ量が少なくなる条件は4N²>2N²+4Nで、整理すると2N(N−2)>0になります。Nは正なのでN−2>0、すなわちN>2です。

Sさんの方法 … 4N² ビット
Tさんの方法 … 2N² + 4N ビット

Tさんの方が少ない条件
 4N² > 2N² + 4N
 2N² − 4N > 0
 2N(N − 2) > 0
 N > 0 より N − 2 > 0
 N > 2

よって シ=2

N=2のときは4N²=16、2N²+4N=16で両方とも同じです。N=3ではSさんが36ビット、Tさんが30ビットとなり、マスが増えるほど重複をなくしたTさんの方法が有利になります。

ス,セ:正解 1, 3(配点3)

<考え方>
矢印は、すでに矢印が書かれたマスから「そのマスへ移動できる隣のマス」へ順に広げていきます。0011は左端から左・上・右・下の順なので、左=0、上=0、右=1、下=1で、通れるのは左と上の2方向だけです。このマスに「←」を書いたということは左隣が財宝側で、そこにはすでに矢印か〇があります。したがって次に矢印を書くのは残った「上」側のマス(選択肢①)で、そこには「このマスへ戻る向き」である「↓」(選択肢③)を書き込みます。

0011 の読み方(左端から 左・上・右・下)
 左 = 0 … 壁なし(通れる)
 上 = 0 … 壁なし(通れる)
 右 = 1 … 壁あり
 下 = 1 … 壁あり

このマスに「←」が書かれている
 → 左隣は財宝側で、すでに矢印(または〇)がある
 → まだ矢印のない移動可能な隣は「上」のマスだけ

上のマスに書き込む矢印
 = 上のマスから見て、このマスへ向かう向き
 = ↓

よって ス=1、セ=3

矢印は「財宝へ向かう方向」なので、新しく書き込むマスから見ると「いま矢印を書いたマスのほう」を指します。広げる向きと書き込む矢印の向きが逆になるので取り違えやすいところです。

ソ:正解 6(配点2)

<考え方>
財宝の場所を「あ」から別のマスに移しても、矢印が書き換わるのは新旧の財宝を結ぶ経路上のマスだけです。その経路から外れたマスは、「あ」へ行くにも新しい財宝へ行くにも、まず同じ隣のマスへ進むことになるからです。したがって書き換えるマスの個数は、その経路に並ぶマスの個数(両端を含む)そのものになります。会話文で「い」の場合が5個とされているのは「い」から「あ」までが5マスの経路だからで、同じ数え方を「う」に使えば個数が出ます。

(数え方)新しい財宝のマスから元の財宝「あ」までの経路上のマスを、両端を含めて1つずつ数える

「い」の場合(会話文の例で数え方を確認する)
 1 … い
 2 … い の1つ上のマス
 3 … さらに1つ上のマス
 4 … その左のマス
 5 … さらに左のマス(=あ)
 マスの個数 = 5 個 … 会話文の「5個」と一致する

「う」の場合
 1 … う
 2 … う の右のマス
 3 … その1つ上のマス
 4 … さらに1つ上のマス
 5 … その左のマス
 6 … その1つ上のマス(=あ)
 マスの個数 = 6 個

よって ソ=6

「財宝のマスも含めて」という条件が付いているのは、元の財宝「あ」の〇を矢印に、新しい財宝「う」の矢印を〇に書き換える分も個数に入るからです。経路の両端を数え忘れると4個になってしまいます。

第3問(必答) ごみ拾いの集計プログラム(配列・繰り返し・条件分岐)

クラス40人のごみ拾いの記録を三つの配列に格納し、入れ物の重量を引いてごみの種類ごとに総重量を集計するプログラムを組み立てます。後半ではごみの種類を7つに増やし、名称の文字列から種類番号を引く処理と、種類ごとの合計を配列でまとめる処理へ拡張します。配点は25点です。

ア:正解 5(配点2)

<考え方>
三つの配列はどれも添字が生徒の出席番号で、(02)行目で入力した出席番号が変数nに入っています。(05)行目が「ごみの種類は? 可燃ごみ:1 不燃ごみ:2」と表示しているので、(06)行目で入力した値はごみの種類を格納する配列Shuruiの、いま指定した生徒の場所に入れます。添字はループ変数ではなく出席番号nなのでShurui[n]、選択肢⑤です。

配列と添字の対応(添字はすべて出席番号)
 Iremono[n] … 生徒 n の入れ物(バケツ 1/ごみ袋 2)
 Shurui[n] … 生徒 n のごみの種類(可燃ごみ 1/不燃ごみ 2)
 Keiryou[n] … 生徒 n の計量結果(g)

変数 n の追跡(出席番号 3 の生徒を入力した場合)
 (02) n = 3
 (04) Iremono[3] = 入力値
 (06) Shurui[3] = 入力値 … ここが ア
 (08) Keiryou[3] = 入力値 … ここが イ

よって ア=5(Shurui[n])

Shurui[1]やShurui[2]は「出席番号1番・2番の生徒の欄」という意味になってしまい、指定した生徒の結果が入りません。まず添字が何を表しているかを確かめるのが、このあとの設問すべての土台になります。

イ:正解 8(配点2)

<考え方>
(07)行目が「計量結果(g)は?」と表示しているので、(08)行目で入力した値は重量を格納する配列Keiryouに入れます。添字はアと同じ理由で出席番号nなので、Keiryou[n]、選択肢⑧です。

(07) 表示する("計量結果(g)は?")
(08) Keiryou[n] =【整数を入力】

 n = 3 のとき Keiryou[3] に格納される

よって イ=8

(03)(05)(07)行目の表示文と(04)(06)(08)行目の代入先が一対一で対応しています。表示文を読めば代入先の配列が決まる作りになっているので、順に対応させて確認しましょう。

ウ:正解 4(配点1)

<考え方>
繰り返しは出席番号1番から40番までの全員を走査します。40という数は式の中に直接書かずに(01)行目で変数ninzuに代入されているので、繰り返しの終値はninzu、選択肢④です。

(01) ninzu = 40
(03) i を 1 から ninzu まで 1 ずつ増やしながら繰り返す

 i = 1, 2, 3, …, 40(40 回繰り返す)

よって ウ=4

この科目の配列の添字は1から始まる約束なので、1からninzuまでで全員をちょうど1回ずつ調べられます。0から始まる言語と混同して0〜39としないよう注意しましょう。

エ:正解 0(配点2)

<考え方>
引くのはバケツの重量350gだけで、ごみ袋は0gなので引きません。配列Iremonoではバケツが1、ごみ袋が2と決められているので、350gを引く枝の条件はIremono[i] == 1、選択肢⓪です。

バケツ = 1(重量 350 g)、ごみ袋 = 2(重量 0 g)

(04) もし Iremono[i] == 1 ならば:
(05)  gomi = Keiryou[i] − 350
(06) そうでなければ:
(07)  gomi = Keiryou[i]

図3の値で変数 gomi を追う(添字 i は出席番号)
 i=1: Iremono[1]=2, Keiryou[1]=112 → gomi = 112
 i=2: Iremono[2]=1, Keiryou[2]=1224 → gomi = 1224 − 350 = 874
 i=3: Iremono[3]=1, Keiryou[3]=717 → gomi = 717 − 350 = 367
 i=4: Iremono[4]=1, Keiryou[4]=1206 → gomi = 1206 − 350 = 856
 i=5: Iremono[5]=2, Keiryou[5]=303 → gomi = 303

よって エ=0

条件を逆にしてIremono[i] == 2(①)にすると、ごみ袋の生徒から350gを引いてしまい集計が過小になります。1と2のどちらがバケツなのかを本文で必ず確かめましょう。

オ:正解 3(配点2)

<考え方>
(09)行目はkanen、つまり可燃ごみの合計に足す枝なので、条件は「そのごみの種類が可燃ごみである」ことです。配列Shuruiでは可燃ごみが1、不燃ごみが2なのでShurui[i] == 1、選択肢③です。

可燃ごみ = 1、不燃ごみ = 2

(08) もし Shurui[i] == 1 ならば:
(09)  kanen = kanen + gomi … 可燃ごみの合計に足す
(10) そうでなければ:
(11)  funen = funen + gomi … 不燃ごみの合計に足す

よって オ=3

エが入れ物の判定(配列Iremono)、オが種類の判定(配列Shurui)と、見る配列が違います。条件分岐が2つ続くので、どちらの分岐が何を分けているのかを読み分けることが大切です。

カ:正解 5(配点2)

<考え方>
合計を求めるときは、いまの合計にその生徒の分を足して同じ変数に入れ直します(累算)。可燃ごみの合計はkanenなので、kanen = kanen + gomiとなり選択肢⑤です。

変数 kanen・funen の追跡(図3の値、gomi はエで求めた値)
 (02) kanen = 0, funen = 0
 i=1: gomi=112 Shurui[1]=1(可燃)→ kanen = 0 + 112 = 112, funen = 0
 i=2: gomi=874 Shurui[2]=2(不燃)→ kanen = 112, funen = 0 + 874 = 874
 i=3: gomi=367 Shurui[3]=2(不燃)→ kanen = 112, funen = 874 + 367 = 1241
 i=4: gomi=856 Shurui[4]=1(可燃)→ kanen = 112 + 856 = 968, funen = 1241
 i=5: gomi=303 Shurui[5]=1(可燃)→ kanen = 968 + 303 = 1271, funen = 1241

よって カ=5

(02)行目でkanenとfunenを0に初期化しているのは、この累算の出発点をそろえるためです。初期化を忘れると合計が定まりません。

キ:正解 6(配点2)

<考え方>
「そうでなければ」の枝は不燃ごみの場合なので、不燃ごみの合計を表すfunenに累算します。funen = funen + gomiとなり選択肢⑥です。

(11) funen = funen + gomi

 i=2: funen = 0 + 874 = 874
 i=3: funen = 874 + 367 = 1241

よって キ=6

カにfunen、キにkanenと入れ替えてしまうと可燃と不燃の合計が混ざります。(12)(13)行目の表示文と、そこに並ぶ変数名を照らし合わせて確かめましょう。

ク:正解 1(配点1)

<考え方>
図5の(05)行目は、配列Namaeの添字1から7までをすべて調べて入力された名称と一致するものを探すループです。7という数は(02)行目で変数shuruisuに入っているので、終値はshuruisu、選択肢①です。図6の(12)行目の表示ループも種類の数だけ回すので、同じ空欄になっています。

(01) Namae = ["可燃ごみ", "不燃ごみ", "ペットボトル", "かん", "びん", "金属", "落ち葉"]
(02) shuruisu = 7
(05) j を 1 から shuruisu まで 1 ずつ増やしながら繰り返す

 j = 1, 2, 3, 4, 5, 6, 7(配列 Namae の添字をすべて走査)

よって ク=1

要素数を7と直接書かずに変数にしておくと、ごみの種類が増えたときに(02)行目だけを直せば済みます。種類数が変わるこの設問の流れが、その利点をそのまま示しています。

ケ:正解 0(配点3)

<考え方>
変数meishouに入った名称と配列Namaeの要素が一致したとき、そのごみの種類を表す数値は「一致した要素の添字」そのもの、すなわちループ変数jです(選択肢⓪)。代入先はアで確かめたShurui[n]なので、(07)行目はShurui[n] = jとなります。

(04) meishou =【文字列を入力】
(05) j を 1 から shuruisu まで 1 ずつ増やしながら繰り返す:
(06)  もし Namae[j] == meishou ならば:
(07)   Shurui[n] = j

追跡(出席番号 n = 3 の生徒が「ペットボトル」と入力した場合)
 j=1: Namae[1]="可燃ごみ"  ならば不成立
 j=2: Namae[2]="不燃ごみ"  ならば不成立
 j=3: Namae[3]="ペットボトル" ならば成立 → Shurui[3] = 3
 j=4〜7: ならば不成立

よって ケ=0

Namae[j](④)を入れると配列Shuruiに文字列が入ってしまい、問2の集計で数値として比べられなくなります。「ごみの種類を表す数値」=配列Namaeの添字であることが要点です。

コ:正解 4(配点2)

<考え方>
図6では合計を配列Goukeiにまとめ、その添字は配列Namaeの添字、つまりごみの種類を表す数値と対応しています。生徒iのごみの種類を表す数値は配列Shuruiの出席番号iの要素なので、s = Shurui[i]、選択肢④です。

(10) s = Shurui[i]

添字の役割
 i … 生徒(出席番号)
 s … ごみの種類を表す数値

図3と同じ並びで追跡すると
 i=1: Shurui[1]=1 → s = 1(可燃ごみ)
 i=2: Shurui[2]=2 → s = 2(不燃ごみ)
 i=3: Shurui[3]=2 → s = 2(不燃ごみ)
 i=4: Shurui[4]=1 → s = 1(可燃ごみ)

よって コ=4

添字の使い分けがこの問3の中心です。Shurui[s](⑥)のように、種類の番号で配列Shuruiを引いてしまう誤りに注意しましょう。

サ:正解 c(配点2)

<考え方>
種類ごとの合計も累算なので、いまの合計に足して同じ場所へ入れ直します。足す先がGoukei[s]なので右辺もGoukei[s]、選択肢ⓒです。問2でkanen = kanen + gomiと書いたのと同じ形が、配列の1つの要素に対して行われています。

(04) Goukei = [0, 0, 0, 0, 0, 0, 0] … 7 種類分を 0 で初期化
(11) Goukei[s] = Goukei[s] + gomi

追跡(gomi と Shurui はエ・コと同じ値)
 i=1: s=1, gomi=112 → Goukei[1] = 0 + 112 = 112
 i=2: s=2, gomi=874 → Goukei[2] = 0 + 874 = 874
 i=3: s=2, gomi=367 → Goukei[2] = 874 + 367 = 1241
 i=4: s=1, gomi=856 → Goukei[1] = 112 + 856 = 968

よって サ=c

Goukei[i](ⓐ)にすると出席番号ごとに合計を分けてしまい、Goukei[j](ⓑ)はこの時点でまだ使われていないループ変数になります。添字はsでなければなりません。

シ:正解 8(配点2)

<考え方>
(12)行目のループ変数はjなので、(13)行目で表示する名称は配列Namaeのj番目、Namae[j]、選択肢⑧です。本文の例にある「ペットボトルの総重量は2520g」の「ペットボトル」にあたる部分です。

(12) j を 1 から shuruisu まで 1 ずつ増やしながら繰り返す:
(13)  表示する(Namae[j], "の総重量は", Goukei[j], "g")

 j=1: 可燃ごみ   の総重量は Goukei[1] g
 j=2: 不燃ごみ   の総重量は Goukei[2] g
 j=3: ペットボトル の総重量は Goukei[3] g
(以下 j=7 まで繰り返す)

よって シ=8

ここでの添字は生徒のiではなく種類のjです。(05)行目のループと(12)行目のループは別のもので、(11)行目までが集計、(12)行目からが表示という役割分担になっています。

ス:正解 b(配点2)

<考え方>
同じ(13)行目で名称と対になる総重量を表示するので、配列Goukeiも同じ添字jを使ったGoukei[j]、選択肢ⓑです。名称がNamae[j]なら重量もGoukei[j]で、「配列Goukeiの添字は配列Namaeの添字と対応している」という本文の説明どおりになります。

(13) 表示する(Namae[j], "の総重量は", Goukei[j], "g")

添字 j が配列 Namae と配列 Goukei で共通
 j=3 のとき → 「ペットボトルの総重量は 2520 g」

よって ス=b

Goukei[s](ⓒ)にすると、(12)行目のループでは更新されないsの値がそのまま使われ、どの種類でも同じ合計が表示されてしまいます。

第4問(必答) オープンデータの分析(相関係数・散布図行列・回帰直線)

47都道府県の人口・面積・病院数のオープンデータを使い、相関係数、散布図行列、中央値によるグループ分け、回帰直線と道具を変えながら高齢化と病院数の関係を探ります。配点は25点で、図から読んだ数値を根拠にする設問が中心です。

ア:正解 1(配点2)

<考え方>
相関係数は2つの量の直線的な関係の強さを−1から1の間の値で表す指標で、絶対値が1に近いほど散布図の点が直線状に集まります。⓪は確率を表すものではないので誤り、③は負の値もとるので誤りです。②は「点が右上がりの直線上に並ぶ」と言い切っていますが、正の相関でも点は直線のまわりに散らばるので誤りです。①の「絶対値が1に近い値になると、散布図を描いたとき、点の集まりが直線に近づく」が正しい説明です。

「直線に近づく」(①)と「直線上に並ぶ」(②)の違いが正誤を分けます。点が完全に直線上に並ぶのは相関係数がちょうど1または−1のときだけです。

イ:正解 2(配点3)

<考え方>
表2で病院数との相関係数を読むと、15歳未満人口が0.97、15〜64歳人口が0.98、65歳以上人口が0.95で、どの年齢層とも強い正の相関があります。つまり年齢層によらず、人口が多い都道府県では病院数も多い傾向がある(選択肢②)と読み取れます。⓪の「割合がすべて等しい」は相関係数からは言えず、③の極端に多い都道府県の有無も相関係数では分かりません。①は年ごとのデータがないので判断できません。

表2 病院数との相関係数
 15歳未満人口 … 0.97
 15〜64歳人口 … 0.98
 65歳以上人口 … 0.95

いずれも 0.9 を超える強い正の相関
 → 年齢層によらず、人口が多い都道府県では病院数も多い傾向

よって イ=2

3つの年齢層どうしも0.98〜0.99と強く相関しているので、どの年齢層で見ても結論が変わりません。だからこそ「65歳以上人口と病院数の特徴的な関係」が見えず、問2で割合や面積あたりの指標に作り直すことになります。

ウ:正解 0(配点3)

<考え方>
指標の意味は「何で割ったか」で決まります。病院/人口は人口1万人あたりの病院数なので、住民が診療を受けられる機会の多さを表します。一方の病院/面積は面積1km²あたりの病院数なので、病院が地理的にどれだけ密に置かれているかを表し、都道府県間で病院の分布の疎密を比べる指標になります(選択肢⓪)。①③は都道府県内の市区町村を特定する話で、都道府県単位のデータからは市区町村の状況は分かりません。②は世帯数のデータがないので作れません。

分母が人口なら「1人あたり」、分母が面積なら「1km²あたり」です。分母を取り違えると、このあとのエ・オの符号の解釈がすべてずれてしまいます。

エ:正解 2(配点3)

<考え方>
図1の相関係数を符号で読み分けます。「65歳以上割合」と「病院/人口」は+0.37で正、「65歳以上割合」と「病院/面積」は−0.59で負です。したがって65歳以上割合が大きい都道府県では、人口あたりの病院数は多く(A=多く)、面積あたりの病院数は少なくなる(B=少なく)傾向があります。この組合せは選択肢②です。

図1の相関係数
 「65歳以上割合」と「病院/人口」 … +0.37(正)
 「65歳以上割合」と「病院/面積」 … −0.59(負)

正の相関 → 65歳以上割合が大きいほど 人口あたりの病院数は 多い … A = 多く
負の相関 → 65歳以上割合が大きいほど 面積あたりの病院数は 少ない … B = 少なく

(A, B)=(多く, 少なく)

よって エ=2

同じ「病院数」でも分母が人口か面積かで相関の符号が逆になります。これが問3で、総人口と面積の両方に関わる「人口密度」を持ち出す動機になっています。

オ:正解 3(配点3)

<考え方>
図2に加わった「人口密度」との相関係数を2つ読みます。「人口密度」と「65歳以上割合」は−0.65で負なので、人口密度が低い、すなわち過疎化が進むほど65歳以上割合は大きくなります。「人口密度」と「病院/面積」は+0.99でほぼ完全な正の相関なので、人口密度が低いほど面積あたりの病院数は少なくなります。よってC=過疎化、D=少なくで、選択肢③です。

図2の相関係数
 「人口密度」と「65歳以上割合」 … −0.65(負)
  → 人口密度が低い(過疎化が進む)ほど 65歳以上割合が大きい
 「人口密度」と「病院/面積」 … +0.99(正)
  → 人口密度が低い(過疎化が進む)ほど 面積あたりの病院数が少ない

(C, D)=(過疎化, 少なく)

よって オ=3

負の相関を「〜が進むと」という言い方に直すときは、向きを一度反転させる必要があります。人口密度が低いことが過疎化である、と言葉に置き直してから符号を当てると間違えません。

カ:正解 2(配点2)

<考え方>
図2の左上にある「人口密度」のヒストグラムは、いちばん左の階級の度数が飛び抜けて高く、右へ長く裾を引く形をしています。つまり左側の階級に度数が集中しており(選択肢②)、⓪の左右対称でも①の二つの山でも③の右側集中でもありません。この形だと人口密度がきわめて高い少数の都道府県が平均値を引き上げてしまい、平均値を境にすると一方のグループが極端に大きくなるので、分け方の基準には向きません。

分布が左右非対称なときは、平均値より中央値のほうが「真ん中」を表すのに適しています。だから本文では中央値(約0.078万人/km²)を基準にしてグループ分けをしています。

キ:正解 3(配点3)

<考え方>
図3を数値で読みます。Oグループの「病院/面積」は最小が約0.6、最大が約10.2まで広く散らばり、10.2・6.8・4.9といった大きく離れた点を含みます。一方Xグループは約0.1から約0.9の狭い範囲に収まっています。したがって「病院/面積」の分散はOグループの方が大きく、選択肢③が正しいです。⓪は「65歳以上割合」がXで約0.29〜0.38の右寄り、Oで約0.23〜0.34なので平均はXの方が大きく誤り、①は範囲がXで約0.09、Oで約0.11なのでOの方が大きく誤り、②も「病院/面積」の平均はOの方が大きいので誤りです。

図3から読んだ値
 病院/面積
  Oグループ … 約0.6 〜 約10.2(10.2, 6.8, 4.9 など大きく離れた点を含む)
  Xグループ … 約0.1 〜 約0.9
 65歳以上割合
  Oグループ … 約0.23 〜 約0.34(範囲 約0.11)
  Xグループ … 約0.29 〜 約0.38(範囲 約0.09)

散らばりの比較 → 病院/面積 の分散は Oグループ > Xグループ

よって キ=3

分散は散らばりの大きさなので、平均のずれではなく両端の広がりを見ます。Oグループには約10.2という大きく離れた点があり、これが分散を大きくしています。

ク:正解 1(配点3)

<考え方>
図3でXグループの点を縦軸の値で確かめると、いちばん高いものでも「病院/面積」は約0.9で、1をこえるXは1つもありません。したがってXグループでは「65歳以上割合」の大小によらず、面積1km²あたりの病院数が1施設未満である(選択肢①)が成り立ちます。⓪はその逆なので誤りです。Oグループには約0.6〜0.9という1未満の点と、最大約10.2という1をこえる点の両方があるので、②③はどちらも成り立ちません。

図3の縦軸(病院/面積)で各グループの範囲を確認する
 Xグループ … 最大でも 約0.9 → すべて 1 施設未満
 Oグループ … 約0.6 〜 約10.2 → 1 施設未満の点と 1 施設以上の点が混在

「大小によらず」=例外が 1 つもないこと
 Xグループ … 例外なし → ① が成立
 Oグループ … 例外あり → ②③ は不成立

よって ク=1

「〜によらず」「すべて」という言い切りの選択肢は、反例を1つ見つければ落とせます。Oグループには縦軸の低いところにも点があるので、②③はその場で消えます。

ケ:正解 2(配点3)

<考え方>
回帰直線の方程式に人口密度の値を代入するだけの設問です。(病院/面積の予測値)=9.70×(人口密度)−0.08に人口密度=0.3を入れると、9.70×0.3−0.08=2.91−0.08=2.83(施設/km²)になります。よって選択肢②です。

(病院/面積 の予測値)= 9.70 × (人口密度)− 0.08

人口密度 = 0.3(万人/km²)を代入する
 9.70 × 0.3 = 2.91
 2.91 − 0.08 = 2.83

よって ケ=2(1 km² あたり 約2.83 施設)

⓪0.283と①0.299は桁を1つ落とした値、③2.99は−0.08を引くところを足してしまった値(2.91+0.08=2.99)です。傾き9.70は「人口密度が0.1万人/km²増えると面積あたりの病院数が約0.97施設増える」という意味になります。

※ 本記事の解答・解説は当サイトが独立に作成したものです。公式の正解および配点は大学入試センターの発表をご確認ください。

スポンサーリンク
投稿を友達にもシェアしよう!
  • URLをコピーしました!
スポンサーリンク
目次