京都産業大学一般選抜入試(前期日程)2026年度の「情報」から、全25問の解答解説を掲載します。いずれも設問の構造・方針・解答・独立した検算まで示しています。問題文そのものは掲載していませんので、大学公表の問題と併せてご利用ください。
このページの内容
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅰ 設問1
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅰ 設問2
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅰ 設問3
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅰ 設問4
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(A)1
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(A)2
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(A)3
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(A)4
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(B)1
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅲ 設問(A)
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅲ 設問(B)
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅲ 設問(C)
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(A)
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)1
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)2
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)3
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)4
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)5
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)6
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)7
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(A)前半
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(A)後半
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(B)前半
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(C)前半
- 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(C)後半
問1 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅰ 設問1
まず自分で解いてみる
前半で「氏名・生年月日・性別だけでは不足している」と述べ、後半で「運転免許証の番号やマイナンバーのようなもの」を使えば確実になる、と対比させる形になっている。
空欄は2つで、同じ語が2箇所に入るものと、公的番号の総称を答えるものに分かれる。解答群には「規定」「設定」「制限」「利用」といった一般的な動作の語と、「グループID」「一般識別子」といったそれらしい造語が混ぜられている。法令上の正式な用語を知っているかが直接問われる。
ヒント:この設問で使う道具
個人情報保護法は、個人に関する情報を2段階で捉えている。
個人情報は「特定の個人を識別できる情報」である。氏名はその代表だが、氏名だけでは同姓同名が存在しうる。生年月日や性別を足しても、母集団が大きくなれば重複は残る。つまり属性の寄せ集めでは、識別できる保証がない。
そこで法は個人識別符号という枠を別に立てた。これは、その符号だけで特定の個人を一意に指し示せるものを指す。マイナンバー、運転免許証番号、旅券番号、基礎年金番号などの公的な番号がこれにあたり、指紋データや顔認識データのような身体的特徴を変換した符号も含まれる。個人識別符号を含む情報は、それ単体で個人情報として扱われる。
「識別」と「特定」も区別しておく。識別は他の個人と区別できること、特定は誰であるかを言い当てられることを指す。
解答・解説を開く
🧭 方針
前者は文脈から決まる。「個人を◯◯する」「確実に個人を◯◯できる」という2箇所に共通して入り、しかも氏名だけでは不足するという文脈に合う語を選ぶ。特定がこれにあたる。規定・設定・制限は個人に対して行う動作ではない。
後者は具体例から逆に引く。運転免許証番号とマイナンバーに共通するのは、公的機関が個人ごとに一意に割り当てた番号であることだ。これを指す法令用語は個人識別符号である。
「グループID」は集団を指すもので個人を一意に指さない。「一般識別子」「呼出符号」は法令に存在しない語である。解答群に法令用語でない語が並ぶときは、正式名称を1語で言えるかが分かれ目になる。
✍️ 解答
- 2箇所に共通する空欄 → 特定
- 公的番号の総称 → 個人識別符号
情報の性質を整理すると次のようになる。
| 情報 | 単体で個人を特定できるか |
|---|---|
| 氏名のみ | できない(同姓同名がありうる) |
| 氏名+生年月日+性別 | 原理的には重複が残る |
| マイナンバー・免許証番号 | できる(個人識別符号) |
✅ 検算
用語を思い出す経路とは別に、制度の設計意図から逆算して確かめる。
もし氏名と生年月日の組で個人が確実に特定できるなら、法はわざわざ別の枠を設ける必要がない。実際には日本国内で同姓同名かつ同一生年月日の人物は存在しうる。行政が給付や徴税を誤りなく行うには、重複しないことが制度的に保証された番号が要る。マイナンバー制度が導入された理由そのものが、属性の組み合わせでは特定しきれないという前提にある。
したがって「氏名等では不足し、公的番号で確実になる」という本文の対比は制度の実態と一致し、後者を指す専用の用語が法令に存在するはずだ、と裏側から確認できる。
逆に「グループID」を入れて読むと、集団の識別子で個人を確実に特定できることになり、文意が破綻する。この読み替えでも誤答を排除できる。
💡 ここで効く一般則
「その情報単体で個人にたどり着けるか」で分類する。 属性の寄せ集めか、一意性が制度的に保証された符号か、という二分で判断すれば、具体例が変わっても対応できる。
情報Ⅱでは、この区別が匿名加工情報の設計に効いてくる。データを分析に使うには個人識別符号を削除するだけでは足りず、残った属性の組み合わせから再識別されうる。どこまで削れば戻せないのかという問いが、本設問の「属性の組み合わせでは特定しきれない」の裏返しになっている。
問2 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅰ 設問2
まず自分で解いてみる
空欄は2つ。前半が宛先アドレスが記載されている場所、後半がそれに従って転送する装置を問う。
解答群にはドメイン・MACアドレス・IPアドレス・インタフェース・ヘッダ・DNSサーバ・メールサーバ・イーサネット・ルータ・プロトコルが並ぶ。「場所」を問う空欄にアドレスの種類を、「装置」を問う空欄にサーバの種類を入れさせるのが狙いになっている。
ヒント:この設問で使う道具
ネットワークを流れるデータは、そのまま送られるのではなくパケットという小さな単位に切り分けられる。1つのパケットは大きく2つに分かれる。
- ヘッダ=宛先アドレス・送信元アドレス・順序番号など、運ぶために必要な制御情報
- ペイロード(データ部)=運びたい中身そのもの
宅配便でいえばヘッダが送り状、ペイロードが箱の中身にあたる。中継する機器は箱を開けず、送り状だけを見て次の行き先を決める。
その中継を担うのがルータである。ルータは経路表を持ち、ヘッダの宛先IPアドレスと照らして「次はどの機器へ渡すか」を決めて転送する。この動作が網の目状のインターネット全体で繰り返され、パケットは宛先へ届く。
解答・解説を開く
🧭 方針
空欄の直前直後の語で品詞と種類を絞る。
前半は「パケットの◯◯の中に宛先アドレスの情報が記載されている」であり、アドレスを内側に含む入れ物を答える。IPアドレスやMACアドレスは記載される情報そのものであって、それを含む場所ではない。よってヘッダ。
後半は「◯◯は、この宛先アドレスに従ってパケットを転送する装置である」であり、装置名を答える。DNSサーバは名前とIPアドレスの対応を答える役で、転送はしない。メールサーバはメールを扱う役。イーサネットは有線LANの規格であって装置ではない。プロトコルは約束事である。転送を担う装置はルータ。
✍️ 解答
- パケット内で宛先アドレスが置かれる場所 → ヘッダ
- 宛先アドレスに従って転送する装置 → ルータ
役割を並べると混同しにくくなる。
| 語 | 正体 |
|---|---|
| ヘッダ | パケットの制御情報が入る部分 |
| IPアドレス | ヘッダに書かれる宛先の値 |
| ルータ | ヘッダを見て転送する装置 |
| DNSサーバ | ドメイン名からIPアドレスを答える装置 |
| プロトコル | 通信の手順を定めた約束事 |
✅ 検算
語の意味を思い出す経路とは別に、その語を取り除いたら通信が何によって壊れるかで確かめる。
ヘッダが無いパケットを考える。中身だけが流れてくるので、受け取った機器は誰宛かを判断できない。転送先を決められず、通信は最初の中継点で止まる。よって宛先を書く場所はパケット内に必須であり、それを指す語が前半の答えでなければならない。
ルータが無いネットワークを考える。同じLAN内の機器同士は届くが、別のネットワークへ渡す判断をする者がいない。インターネットのように多数のネットワークをつなぐ構成が成立しない。よって転送を担う装置が後半の答えになる。
DNSサーバを入れて読み替えるとどうなるかも見る。DNSサーバが止まると、ドメイン名では接続できなくなるがIPアドレスを直接指定すれば通信できる。つまりDNSサーバは転送そのものは担っていない。この一点で誤答を排除できる。
💡 ここで効く一般則
「情報そのもの」「情報が置かれる場所」「情報を使って動く装置」の3層に分けて語を整理する。 IPアドレスは情報、ヘッダは場所、ルータは装置。解答群が混ぜてくるのはこの層の違いなので、空欄の直後が「〜の中に」なら場所、「〜する装置である」なら装置と機械的に切れる。
情報Ⅱではこの構造が階層化として体系化される。ヘッダは1つではなく、層ごとに付け足されて包まれていく。ルータが見るのはネットワーク層のヘッダだけで、その内側は開かない。本設問の「送り状だけを見て転送する」という理解が、その入口になっている。
問3 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅰ 設問3
まず自分で解いてみる
空欄は2つ。前半が手口の名称、後半が誘導に使われる経路である。
解答群にはDoS・SNS・クラウド・フィッシング・バッファオーバーフロー・Wi-Fi・イーサネット・IPパケット・MACアドレス・メモリ破壊が並ぶ。攻撃の名称が複数混ざっており、攻撃対象が「人」か「システム」かで切り分けられるかが問われている。
ヒント:この設問で使う道具
フィッシングは、実在する銀行や通販サイトに似せた偽サイトへ誘導し、利用者自身にIDやパスワード、クレジットカード番号を入力させて盗む手口である。
技術的な侵入ではなく人を騙すことが本体である点が重要になる。システムの脆弱性を突くわけではないので、サーバ側の対策だけでは防げない。攻撃の成否は、利用者が偽物を本物と信じるかどうかにかかっている。
誘導の経路は、かつてはメールが中心だったが、現在はSNSのダイレクトメッセージや投稿、さらにSMSを使った手口(スミッシング)が広がっている。共通するのは、受け取った側がリンクを押したくなる文面を添えることである。「アカウントが停止されました」「配送に失敗しました」といった、慌てさせて確認の手を止める文面が典型になる。
解答・解説を開く
🧭 方針
前半は本文の記述がそのまま定義になっている。「偽サイトへ誘導して、利用者に入力させる」という手口はフィッシングである。
DoSはサービスを停止させる攻撃で、情報を盗むものではない。バッファオーバーフローとメモリ破壊はプログラムの欠陥を突く技術的攻撃であり、利用者に入力させる手口ではない。人を騙す手口はこの解答群の中でフィッシングだけである。
後半は「メールや◯◯によって行われることが多い」という並列である。メールと並ぶ連絡手段が入る。Wi-Fiとイーサネットは通信の規格、IPパケットとMACアドレスは通信の要素であって、人にメッセージを届ける手段ではない。クラウドはサービスの提供形態である。残るのはSNS。
✍️ 解答
- 手口の名称 → フィッシング
- 誘導に使われる経路 → SNS
攻撃を対象で分けると位置がはっきりする。
| 攻撃 | 対象 | 目的 |
|---|---|---|
| フィッシング | 人 | 認証情報を入力させて盗む |
| DoS | システム | 停止させる |
| バッファオーバーフロー | プログラム | 不正なコードを実行させる |
✅ 検算
名称を思い出す経路とは別に、対策の側から逆に確かめる。
フィッシングへの対策として挙げられるのは、リンクを踏む前にURLを確認する、ブックマークから正規サイトへ入る、多要素認証を有効にする、といった利用者の行動と認証方式に関するものである。サーバの修正プログラムを当てる話は出てこない。これは攻撃対象がシステムではなく人であることの裏返しであり、前半の答えと整合する。
逆にバッファオーバーフローを当てはめて読むと、対策は修正プログラムの適用になり、「偽サイトに入力させる」という本文の記述と噛み合わない。ここで誤答が排除できる。
後半についても、メールと並列に置いて意味が通るかで確かめる。「メールやWi-Fiによって誘導が行われる」は日本語として成立しない。Wi-Fiは接続方式であり、誘導文を届ける主体になれない。並列の相手として成立するのは、人がメッセージをやり取りする場に限られる。
💡 ここで効く一般則
攻撃手法の設問は「対象は人か、システムか」でまず二分する。 人を対象とするもの(フィッシング、なりすまし、ソーシャルエンジニアリング)と、システムを対象とするもの(DoS、脆弱性攻撃)は、対策も担当者も別である。この二分ができれば解答群の半分は即座に消える。
並列の空欄は、並んでいる相手と同じ種類の語しか入らない。 「メールや◯◯」なら◯◯は連絡手段である。文法的な位置から候補を絞る癖をつけると、知識が曖昧でも正答に届く。
情報Ⅱでは、この話が認証の設計へ進む。パスワードは人が入力するがゆえに騙し取られる。所持情報や生体情報を組み合わせる多要素認証は、盗まれた情報だけでは通れないようにする設計であり、フィッシングという攻撃の存在そのものが動機になっている。
問4 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅰ 設問4
まず自分で解いてみる
10ビットのアドレスなら バイト、すなわち1Kバイトになる、という具体例が本文で丁寧に示される。そのうえで16ビットの場合と32ビットの場合を答えさせる。
例示が与えられているので、知識がなくても指数法則だけで解ける設計になっている。解答群には512・1K・4K・64K・1M・4M・16M・1G・4G・64G が並び、接頭語を1段取り違えた値が確実に混ざっている。
ヒント:この設問で使う道具
メインメモリは1バイトごとに番地(アドレス)が振られた一列の箱として扱われる。CPUが箱を指し示すにはアドレスを2進数で送る必要があり、そのアドレスに使えるビット数が、指し示せる箱の個数の上限を決める。
ビットのアドレスで表せる値は 通りである。1バイトごとに番地が振られているので、指せる箱の個数がそのままバイト数になる。
ここで必要になるのが2の累乗と接頭語の対応である。この文脈では を1K、 を1M、 を1G として扱う。覚えるべきは10ビットごとに接頭語が1段上がるという関係だけである。
| ビット数 | 2の累乗 | 表記 |
|---|---|---|
| 10 | 1K | |
| 20 | 1M | |
| 30 | 1G |
解答・解説を開く
🧭 方針
指数を10の倍数と残りに分解する。接頭語は10ビット単位で切り替わるので、この分け方が最も速い。
16ビットなら と分ける。
32ビットなら と分ける。30で1Gに達するので、
と分けても となり同じ値だが、解答群の表記に合わせるには30で切るほうが早い。接頭語の段が上がりきるところまで先に取るのが手順として安定する。
✍️ 解答
- 16ビットのアドレス → 64Kバイト
- 32ビットのアドレス → 4Gバイト
刻みを並べると位置関係が見える。
| アドレスのビット数 | 最大記憶容量 |
|---|---|
| 10 | 1K |
| 16 | 64K |
| 20 | 1M |
| 30 | 1G |
| 32 | 4G |
32ビットの上限が4Gであることは、32ビットOSが4GBを超えるメモリを直接扱えなかったという実際の制約として現れた。設問の値は歴史的事実と一致している。
✅ 検算
指数法則を再適用しても同じ誤りを繰り返すので、本文の例から倍々で積み上げるという別経路を取る。
本文は10ビットで1Kバイトと与えている。アドレスが1ビット増えるごとに容量は2倍になる。
10ビット 1K → 11ビット 2K → 12ビット 4K → 13ビット 8K → 14ビット 16K → 15ビット 32K → 16ビット 64K
6回倍にして64Kに達し、指数計算の結果と一致した。
32ビットも同様に、20ビットで1M、以降12回倍にすると 2M, 4M, 8M, 16M, 32M, 64M, 128M, 256M, 512M, 1G, 2G, 4G となる。こちらも一致する。
接頭語を1段誤った場合も見ておく。16ビットを64Mと答えると、上の倍々表では26ビット相当になり、本文の10ビット=1Kという起点と噛み合わない。倍々で辿れば段の取り違えは必ず露見する。
💡 ここで効く一般則
2の累乗は10ビット刻みで接頭語が上がる、とだけ覚える。 =1K、=1M、=1G。この3つを起点に、余った指数を掛けるだけで任意のビット数に対応できる。
検算は倍々で積み上げる。指数法則の適用ミスと接頭語の取り違えは別種の誤りなので、違う経路で辿れば片方が残っていても検出できる。
情報Ⅱではこの制約がアドレス空間の設計として再登場する。物理メモリが4GBに満たなくてもアドレス空間だけを広く取り、仮想記憶で対応づける仕組みが必要になる理由が、本設問の「アドレスのビット数が上限を決める」という関係そのものにある。
問5 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(A)1
まず自分で解いてみる
昇順に並んだ目盛りの配列と、測りたい長さを引数に取る関数が与えられる。関数は二重ループで全ペアを調べ、差が引数と一致する組を見つけるたびに、その2つの目盛りを出力する。
問われるのは、特定の引数を与えたときの出力そのものである。選択肢は出力の行の集合として示され、行数が1行のもの、3行だが中身の違うもの、順序の違うものが並ぶ。出力の中身だけでなく、出力される順序まで合っているかが判定に含まれる。
ヒント:この設問で使う道具
目盛りが等間隔でないものさしで長さを測るとき、測れるのは2つの目盛りの差である。目盛りの値を配列に入れておけば、測れる長さの全体は「配列から2つ選んだときの差」の集合になる。
これを網羅的に調べる定石が二重ループである。外側で一方の添字 を動かし、内側でもう一方の添字 を から動かす。内側を から始めるのが要点で、こうすると
- 同じ組を2回調べない( と の重複が消える)
- 差が必ず正になる(配列が昇順なら )
の2つが同時に達成される。 個から2個を選ぶ組み合わせを、条件分岐なしで漏れなく重複なく回せる書き方である。
解答・解説を開く
🧭 方針
ループの回る順に、上から機械的に表を作る。 頭の中で組み合わせを探すと、順序を取り違えるか1組見落とす。
外側の添字を固定し、内側を動かして差を全部書き出す。一致したものに印を付け、印の付いた順に並べればそれが出力になる。
このとき外側が先、内側が後という順序を崩さない。選択肢には同じ3行を別の順序で並べたものが混ぜてあり、順序を意識せずに集合として突き合わせると区別できなくなる。
✍️ 解答
目盛りは 0, 2, 3, 5, 7 の5つ(添字0〜4)。引数は2。全ペアの差を、ループの回る順に並べる。
| 外側 | 内側 | 差 | 一致 |
|---|---|---|---|
| 0(値0) | 1(値2) | 2 | ○ |
| 0 | 2(値3) | 3 | |
| 0 | 3(値5) | 5 | |
| 0 | 4(値7) | 7 | |
| 1(値2) | 2 | 1 | |
| 1 | 3 | 3 | |
| 1 | 4 | 5 | |
| 2(値3) | 3 | 2 | ○ |
| 2 | 4 | 4 | |
| 3(値5) | 4 | 2 | ○ |
一致は3箇所。出力される順に並べると 0と2の組 → 3と5の組 → 5と7の組 となる。
したがって、この3行がこの順で並んでいる選択肢が正答である。
✅ 検算
同じ表を作り直しても同じ見落としを繰り返すので、別の数え方で確かめる。
目盛りを数直線上の点と見て、間隔が2になる点の対を図から直接拾う。0と2、3と5、5と7の3組が見つかる。1と3の間隔は1、2と5は3であり該当しない。表を使わずに数えても3組で一致した。
さらに出力の行数だけを独立に見積もる。全ペアの数は5個から2個を選ぶ組み合わせで10通り。上の表も10行あり、調べ漏れがないことが確認できる。10通りの差の内訳は 1が1個、2が3個、3が2個、4が1個、5が2個、7が1個で合計10。差が2のものは3個であり、出力行数3と一致する。
順序の確認も行う。最初に一致するのは外側が先頭にあるときで、その相手は2番目の目盛りである。よって1行目は0と2の組で確定する。ここが違う選択肢は即座に排除できる。
💡 ここで効く一般則
二重ループのトレースは、必ず表に落とす。 外側・内側・計算結果・判定の4列を作り、上から埋める。頭の中で追うと、内側の開始位置を ではなく0と勘違いする誤りが起きやすい。
選択肢が「同じ内容・別の順序」を含むときは、順序が採点対象である。 1行目だけを確定させれば大半の選択肢が消えるので、全部をトレースする前に先頭を決めるのが速い。
全ペアの個数 を先に出しておくと、調べ漏れの検算になる。 5個なら10通り。表の行数がこれと合わなければ、その時点でトレースが間違っている。
情報Ⅱではこの二重ループが計算量の話につながる。 個の全ペアを調べる処理は に比例して重くなる。目盛りが100個あれば約5000通りとなり、事前に差を表にしておく(前計算する)ほうが速くなる。素朴な全探索と前計算の使い分けが、そこで問われるようになる。
問6 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(A)2
まず自分で解いてみる
プログラム中の変数の役割を、4つの説明文から選ばせる。値を答えるのではなく、その変数が何のために存在するかを言語化させる形である。
選択肢には「測定したい長さを表す」「比較する素数の値を表す」「素数の個数を表す」といった、他の変数の役割が混ぜられている。プログラムに登場する変数を取り違えていないかが問われる。
ヒント:この設問で使う道具
ループの中で何かを探すとき、「見つかったかどうか」を後から知る手段が要る。ループを抜けた時点では、内側で使っていた添字はもう役に立たない。そこでループの外側で宣言し、見つかった瞬間に印を付ける変数を用意する。これをフラグと呼ぶ。
フラグの使い方は決まった型になっている。
1. ループに入る前に0で初期化する(まだ見つかっていない)
2. 見つかったら1を入れる(何度見つかっても1のまま)
3. ループを抜けたあと、0のままかどうかで分岐する
要点は、フラグが個数を数えているのではないことである。何回見つかっても1にしかならないので、「1回以上見つかったか」という真偽の情報しか持たない。カウンタとの違いはここにある。
解答・解説を開く
🧭 方針
その変数がどこで書き換えられ、どこで読まれるかを追う。 役割は、書き込みと読み出しの位置から決まる。
この変数は、ループに入る前に0で初期化され、一致が見つかった箇所で1に書き換えられる。読まれるのはループを抜けたあとの1箇所だけで、そこで0かどうかを判定して「測定できません」を出すかどうかを決めている。
したがって役割は、引数の長さが測定可能だったかどうかを、ループの外へ伝えることである。
他の選択肢を排除する。測定したい長さは引数そのものが持っており、この変数ではない。素数の値は配列に入っている。個数を数えるならループのたびに加算されるはずだが、この変数は1が入るだけで加算されない。
✍️ 解答
役割 → 引数の値が測定できる長さか否かを判定するための値を表す変数
プログラム中の変数を役割で整理すると次のようになる。
| 変数の位置づけ | 役割 |
|---|---|
| 引数 | 測定したい長さ |
| 配列 | 目盛りの値の並び |
| 二重ループの添字2つ | 調べている組を指す |
| 本問の変数 | 一致が1回以上あったかを保持する |
✅ 検算
役割の説明を読み比べるのではなく、この変数を取り除いたときに何が壊れるかで確かめる。
変数を消すと、ループを抜けたあとに「一致が1つもなかった」ことを知る手段が失われる。一致が無い引数を与えても何も出力されず、利用者には測定できないのか処理が動かなかったのかが区別できない。よってこの変数の役目は、ループの結果を外へ持ち出すことだと確認できる。
個数を数える変数だと仮定して読み替えると矛盾が出る。もし個数なら、一致するたびに1ずつ増えるはずである。実際には1を代入しているだけなので、3回一致しても値は1にとどまる。個数を表すという説明は動作と合わない。
測定したい長さだと仮定した場合も見る。それなら引数と同じ値が入るはずだが、この変数は0か1しか取らない。引数が0や1のときだけ偶然一致するが、それ以外では食い違う。これも排除できる。
💡 ここで効く一般則
変数の役割を問われたら、「どこで書かれ、どこで読まれるか」の2点を押さえる。 名前や型ではなく、書き込みと読み出しの位置が役割を決める。
0と1しか取らない変数はフラグ、加算される変数はカウンタ。 この見分けだけで、選択肢の半分は消える。一致するたびに1を代入しているならフラグであり、個数の情報は持っていない。
「その変数を消したら何が壊れるか」を考えると役割が言語化できる。 消しても動くなら不要な変数であり、消すと判別できなくなるものがあれば、それがその変数の役割そのものである。
情報Ⅱでは、この型が探索の結果をどう返すかという設計の話になる。フラグで真偽だけを返すのか、見つかった位置を返すのか、見つからないことを表す特別な値を返すのか。どれを選ぶかで呼び出し側の書き方が変わる。本問の変数は最も単純な、真偽だけを返す形にあたる。
問7 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(A)3
まず自分で解いてみる
引数を変えながら、末尾の「測定できません」が出力されるような値のうち整数かつ最小のものを答えさせる。
「整数かつ最小」という限定が2つ付いている点が要点である。0以下は冒頭の分岐で弾かれて別の行に流れるため、探す範囲は1以上に限られる。ここを見落として0や負数を答えると、そもそも到達する行が違う。
ヒント:この設問で使う道具
プログラムの特定の行が実行される条件を問われたら、その行に到達するまでの分岐をすべて遡る。
本問の対象となる行は、関数の末尾に置かれた「測定できません」の出力である。ここに到達するには2つの関門を通る必要がある。
1. 冒頭の引数が0以下なら別のメッセージを出して終了する分岐を通り抜けること。すなわち引数が正であること
2. 二重ループを回り終えた時点で、一致が1つも見つからなかったこと。すなわちフラグが立っていないこと
つまり問われているのは「正の整数のうち、どの2つの目盛りの差としても表せない最小の値」である。プログラムの問題の形をしているが、中身は集合の問題になっている。
解答・解説を開く
🧭 方針
表せる差を全部並べ、1から順に潰していく。 候補を小さいほうから調べるので、最初に見つからなかった値が答えになる。
目盛りが5つなら差は10通りしかない。全部書き出して集合にしてしまうのが最短である。個別に「6は作れるか」と考えるより、先に作れるものを列挙して、その補集合を見るほうが確実に速い。
書き出すときは設問(A)1と同じ二重ループの順序に従う。順序を揃えておけば、前の設問の表をそのまま流用できる。
✍️ 解答
目盛りは 0, 2, 3, 5, 7。全ペアの差を列挙する。
| 組 | 差 |
|---|---|
| 0と2 | 2 |
| 0と3 | 3 |
| 0と5 | 5 |
| 0と7 | 7 |
| 2と3 | 1 |
| 2と5 | 3 |
| 2と7 | 5 |
| 3と5 | 2 |
| 3と7 | 4 |
| 5と7 | 2 |
重複を除くと、表せる長さは 1, 2, 3, 4, 5, 7 の6種類。
1から順に確かめると、1・2・3・4・5はいずれも表せる。6は表に現れない。 よって答えは 6。
✅ 検算
列挙をやり直しても同じ見落としを繰り返すので、6を作れないことを直接示すという別経路で確かめる。
差が6になる組があるとすれば、2つの目盛りの値の差が6である。目盛りの最大は7なので、小さいほうの目盛りは1以下でなければならない。目盛りに存在する1以下の値は0だけである。よって相手は6でなければならないが、6は目盛りに無い。したがって差6を作る組は存在しない。
さらに7が表せることも確認しておく。0と7の組で差7が作れるので、答えが7にならないことが確定する。6を飛ばして7を答える誤りは、この一手で防げる。
0以下を答える誤りも潰す。 引数が0以下のときは冒頭の分岐で別のメッセージが出て関数を抜けるため、末尾の行には到達しない。したがって0や負数は条件を満たさない。探索範囲が1以上であることが裏づけられた。
💡 ここで効く一般則
「その行が実行される条件」を問われたら、到達までの分岐をすべて列挙してから考える。 途中に早期終了があれば、そこで弾かれる値は答えの候補から外れる。本問の「0以下」がまさにそれである。
最小値を問う問題は、小さいほうから順に潰す。 表せるものを先に全部並べておけば、補集合の最小値は一目で分かる。個別に検討すると、飛ばした値に答えがあったときに気づけない。
「作れない」ことの証明は、作れると仮定して矛盾を出す。 本問なら「差が6の組があるとすれば相手は6でなければならないが、目盛りに無い」で閉じる。列挙の見落としと独立した検算になる。
情報Ⅱではこの構造が充足可能性の問題として一般化される。与えられた要素から演算で作れる値の集合を求め、目標が含まれるかを判定する形は、探索アルゴリズムの基本形そのものである。目盛りが増えれば全探索では追いつかなくなり、動的計画法のような手法が必要になる。
問8 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(A)4
まず自分で解いてみる
関数の中の特定の3箇所(引数が0以下のときの処理、一致が見つかったときの処理、一致が1つもなかったときの処理)を挙げ、それらすべてが少なくとも一度は実行されるような引数の組み合わせを選択肢から選ばせる。
選択肢は4組。それぞれ2個から4個の値が並ぶ。値の個数が多い組が正解とは限らず、3つの道筋を過不足なく覆えているかだけが判定基準になる。
ヒント:この設問で使う道具
プログラムが正しく動くことを確かめるには、すべての分岐が少なくとも一度は実行されるように入力を選ぶ。これをテストの網羅と呼ぶ。
なぜ1つの入力では足りないか。分岐があるプログラムは、入力によって通る道筋が変わる。ある入力で正しく動いても、その入力が通らなかった枝に誤りが潜んでいれば見逃す。通っていない道は、テストしたことにならない。
したがってテスト入力を設計する手順は決まっている。
1. プログラムの分岐を数え上げ、通りうる道筋を列挙する
2. 各道筋を通す入力を1つずつ用意する
3. それらを集めたものがテスト入力の組になる
「たくさん試す」のではなく、道筋ごとに1つずつ選ぶのが要点である。
解答・解説を開く
🧭 方針
3つの道筋それぞれについて、通すための条件を先に言語化する。
- 引数が0以下のときの処理 → 0以下の値が組に含まれること
- 一致が見つかったときの処理 → 目盛りの差として表せる正の値が含まれること
- 一致が1つもなかったときの処理 → 正の値だが目盛りの差として表せない値が含まれること
条件を書き出したら、選択肢ごとに3条件を満たすかを表で潰す。選択肢を見てから考えるのではなく、条件を先に作ってから照合するのが確実である。
ここで設問(A)3の結果が効く。表せる長さは 1, 2, 3, 4, 5, 7 の6種類であり、表せない最小の正の整数は6であった。つまり3つ目の条件を満たす値は、6か、8以上の値になる。
✍️ 解答
各選択肢を3条件で判定する。
| 選択肢 | 0以下を含むか | 表せる正の値を含むか | 表せない正の値を含むか | 網羅 |
|---|---|---|---|---|
| −1と1 | ○(−1) | ○(1) | ×(無し) | 不可 |
| 0と2と3と5と7 | ○(0) | ○(2ほか) | ×(すべて表せる) | 不可 |
| 1と3と6と7 | ×(無し) | ○(1,3,7) | ○(6) | 不可 |
| 0と2と4と6 | ○(0) | ○(2,4) | ○(6) | 可 |
3条件をすべて満たすのは 0と2と4と6の組 のみ。したがってこれが正答である。
内訳を確認すると、0が引数の検査の枝を、2と4が一致ありの枝を、6が一致なしの枝を通す。4つの値で3つの道筋を覆っている。
✅ 検算
選択肢の表を作り直すのではなく、落とした選択肢それぞれについて「どの行が実行されないか」を具体的に指摘することで確かめる。
−1と1の組では、−1が引数の検査で弾かれ、1は目盛りの差として表せるので一致ありの枝を通る。一致なしの枝を通る値が無い。もしその枝に誤りがあっても検出できない。
0と2と3と5と7の組では、0が検査の枝を通り、残りはすべて表せる長さなので一致ありの枝を通る。値の個数は最多の5個だが、一致なしの枝は一度も通らない。個数の多さが網羅の証拠にならないことがここで分かる。
1と3と6と7の組では、6が一致なしの枝を、他が一致ありの枝を通る。しかし0以下の値が無いため、引数の検査の枝を通らない。
3つの選択肢がそれぞれ別の枝を落としており、残った1つだけが3つとも埋まる。排除の理由が重複していないので、判定が偶然一致したものでないことも確認できる。
💡 ここで効く一般則
テスト入力を選ぶ問題は、入力を見る前に「通したい道筋」を列挙する。 道筋の数だけ条件を書き、選択肢を条件で採点する。この順序を守れば、値の個数の多さに惑わされない。
「正常に動く入力」だけを集めても網羅にならない。 エラーになる入力、何も見つからない入力といった期待どおりに失敗する場合を必ず含める。実務でも見落としが起きるのはこの側である。
前の設問の結果を再利用する。 本問は設問(A)3で求めた「表せない最小の正の整数」をそのまま使う設計になっている。大問内の設問は独立ではなく積み上げになっていることが多い。
情報Ⅱではこの考え方がテスト設計として体系化される。分岐を1回ずつ通す分岐網羅に加え、条件式が複数の項からなる場合に各項の真偽の組み合わせまで見る条件網羅があり、網羅の強さに段階がある。本問は最も基本的な分岐網羅にあたる。
問9 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅱ 設問(B)1
まず自分で解いてみる
ものさしの長さを伸ばし、目盛りの個数を増やした場合に、プログラムのどこを直せばよいかを複数選択で答えさせる。
選択肢には、配列の定義を差し替えるもの、外側ループの上限を変えるもの、内側ループの上限を変えるもの、フラグの初期値を変えるもの、差を取る向きを逆にするものが並ぶ。上限が1つずれたものが対で用意されているのが特徴で、境界を正確に出せるかが直接問われる。
ヒント:この設問で使う道具
配列の要素数を増やしたときに直さなければならないのは、配列そのものとそれを走査するループの範囲である。この2つは連動しており、片方だけ直すと動かないか、動いても一部を見落とす。
二重ループで全ペアを調べる場合、要素数を (添字は から )とすると範囲はこうなる。
- 外側は から まで
- 内側は 外側の添字 から まで
外側が まで行かないのは、最後の要素を外側にすると内側の開始位置が になり、調べる相手がいなくなるからである。外側は最後の1つ手前で止めると覚える。
内側の上限は 、すなわち最後の添字である。ここを にすると配列の範囲外を読むことになる。
解答・解説を開く
🧭 方針
新しい要素数を確定してから、3箇所を機械的に決める。
目盛りは0と、上限までの素数で構成される。上限が23なら素数は 2, 3, 5, 7, 11, 13, 17, 19, 23 の9個。0を加えて要素数は10、添字は0から9になる。
要素数が決まれば範囲は自動的に出る。
- 配列の定義 → 10個の値に差し替える
- 外側の上限 →
- 内側の上限 →
そのうえで、変える必要がないものを積極的に排除する。フラグは「見つかったかどうか」を表すので初期値は0のままでよく、要素数とは無関係である。差を取る向きも、配列が昇順である限り変える理由がない。
✍️ 解答
必要な変更は次の3箇所である。
- 配列の定義を、0と23以下の素数からなる10個の値に差し替える
- 外側ループの上限を8にする
- 内側ループの上限を9にする
変更が不要なものと、その理由を示す。
| 選択肢の内容 | 判定 | 理由 |
|---|---|---|
| フラグの初期値を9にする | 不要・有害 | フラグは0か1で状態を表す。9にすると「見つからなかった」判定が働かない |
| 外側の上限を9にする | 誤り | 最後の要素が外側になると内側が回らず、無駄な周回が生じる |
| 内側の上限を10にする | 誤り | 添字9までしかないため範囲外参照になる |
| 差を取る向きを逆にする | 誤り | 昇順配列では差が負になり、正の長さと一致しなくなる |
✅ 検算
範囲の式を当てはめ直すのではなく、実際に端の周回を追って確かめる。
外側が8のとき、内側は9から9まで回る。これは添字8と9の組、すなわち最後の2つの目盛りの組を調べる周回であり、必要な組である。外側の上限を8にすればこれが実行される。
外側が9だったらどうなるか。内側は10から始まり上限9なので一度も回らない。最後の組を調べる機会は外側が8のときに済んでいるので結果は変わらないが、意味のない周回が1回増える。範囲としては8が正しい。
内側の上限が10なら、外側8・内側10で添字10を読む。配列は9までしかないため範囲外参照となり、正常に動かない。
組の総数でも確かめる。 10個から2個選ぶ組み合わせは 通り。外側を0から8まで動かすと、内側の回数は順に9, 8, 7, 6, 5, 4, 3, 2, 1 で合計45回。一致した。もし外側の上限を9にしても内側が0回なので合計は45のままだが、内側の上限を10にすると各周回が1回ずつ増えて55回となり、45と合わなくなる。この不一致からも誤りが検出できる。
💡 ここで効く一般則
配列の要素数を変えたら、配列とループ範囲を必ずセットで直す。 どちらか一方だけの修正は、範囲外参照か走査漏れのどちらかを生む。
二重ループの範囲は「外側は最後の1つ手前、内側は最後まで」と型で覚える。 選択肢に1つずれた値が並んでいたら、出題者はここを狙っている。
組の総数 で検算する。 ループ回数を足し上げた値がこれと一致するかを見れば、境界の誤りが数値として現れる。トレースより速く、確実である。
情報Ⅱでは、この種の修正箇所が散らばること自体が問題として扱われる。要素数を定数として1箇所に定義し、ループ範囲をその定数から導くように書けば、直す場所は1箇所で済む。変更に強い書き方という観点が、そこで加わる。
問10 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅲ 設問(A)
まず自分で解いてみる
上の手順をそのまま実装した短いプログラムが与えられ、繰り返しの中で更新後の数と取り出した数字を毎回出力する構成になっている。
問われるのは、特定の入力を与えたときに4回分表示される文字列である。出力されるのが「取り出した数字」だけでなく「削ったあとの数」も含むこと、そして代入の後に出力していることを読み取れているかが判定の要になる。
ヒント:この設問で使う道具
整数から各桁の数字を取り出す操作は、10で割った余りと商の2つで完結する。
余りを取れば一の位が分かり、その一の位を引いてから10で割れば、元の数から一の位が消えた数になる。これを繰り返せば、下の桁から順に1つずつ取り出せる。
注意すべきは取り出す順序が下位からになることと、取り出しきったあとも操作を続けると0が出続けることである。4桁分の繰り返しを3桁の数に適用すれば、4回目には桁がもう無いので0が取り出される。この挙動は誤りではなく、桁数の少ない数を「上位に0を補った4桁」として扱っていることに対応する。
解答・解説を開く
🧭 方針
1回分の処理を「余りを取る→数を更新する→出力する」の3ステップに分け、表を作って4回追う。
順序が肝心である。出力は数を更新したあとに行われるので、表示される数はその回の処理を終えたあとの値になる。入力した値がそのまま1行目に出るわけではない。
表の列は「回」「処理前の数」「取り出した数字」「更新後の数」「出力」の5つにする。処理前と更新後を別の列にしておけば、どちらを出力するかの取り違えが起きない。
桁数が入力より多く繰り返される場合は、途中から0が並ぶ。慌てずにそのまま追う。
✍️ 解答
入力を106として4回分を追う。
| 回 | 処理前の数 | 取り出した数字 | 更新後の数 | 出力 |
|---|---|---|---|---|
| 1 | 106 | 6 | 10 | 10と6 |
| 2 | 10 | 0 | 1 | 1と0 |
| 3 | 1 | 1 | 0 | 0と1 |
| 4 | 0 | 0 | 0 | 0と0 |
したがって4行の出力は、順に
1. 10, 6
2. 1, 0
3. 0, 1
4. 0, 0
となる。取り出された数字を上から並べると 6, 0, 1, 0 であり、106を4桁と見た「0106」を下位から読んだ並びに一致する。
✅ 検算
同じ手順を追い直しても同じ誤りを繰り返すので、取り出した数字を再構成して元に戻すという逆向きの経路で確かめる。
取り出された数字は下位から 6, 0, 1, 0 であった。これを位の重みを掛けて足し戻す。
入力と一致した。桁の取り出しに漏れや重複があれば、この復元は元の値にならない。
更新後の数の推移でも確認する。 106 → 10 → 1 → 0 と、1回ごとに桁が1つずつ減っている。3桁の数なので3回で0に到達し、4回目は0のまま変化しない。これは桁数と回数の関係として妥当である。
出力するタイミングを取り違えた場合も見ておく。更新前の数を出力していれば1行目は「106, 6」になる。しかし代入が出力より前にあるため、1行目の数は更新後の10でなければならない。この1行目だけで、タイミングの取り違えは判別できる。
💡 ここで効く一般則
桁の取り出しは「10で割った余り」と「10で割った商」の組で行う。 余りが一の位、商が残りの数。この対を覚えておけば、何桁でも同じ手順で回せる。
取り出しの順序は必ず下位からである。上位から欲しい場合は、取り出した結果を逆順に並べ直すか、桁数分の重みで割る別の方法を使う。
検算は位の重みを掛けて足し戻す。 取り出した数字から元の数を復元できれば、漏れも重複も無いことが同時に示せる。
情報Ⅱではこの操作が基数変換として一般化される。10で割る代わりに2で割れば2進数の各ビットが下位から得られる。 進数への変換は「 で割った余りを下から並べる」という同じ手続きであり、本設問はその10進数版にあたる。
問11 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅲ 設問(B)
まず自分で解いてみる
3つのことが順に問われる。
1. 桁を取り出すループの中に置くべき、集計を行う1行
2. 具体的な2つの数を与えたときの、集計結果の配列の中身と、そこから作れる最大・最小の数
3. 配列の初期化を「宣言時に行う」のと「関数の冒頭で行う」のとで、後者が望ましい理由
3つ目が本設問の重心である。動作するかしないかではなく、繰り返し呼ばれる文脈でどちらが正しいかを説明させる形になっている。
ヒント:この設問で使う道具
数字の並べ替えを扱うとき、桁を1つずつ配列に入れて整列させる方法のほかに、どの数字が何個現れたかだけを記録する方法がある。0から9までの10個の箱を用意し、その数字が出るたびに対応する箱を1つ増やす。これがバケットソートの考え方である。
この方法の利点は、箱を0から9の順に見るだけで昇順が得られることにある。比較も交換も要らない。桁数が増えても箱の数は10のままで変わらない。
もう一つ、本設問の核心となるのがグローバル変数の初期化の位置である。関数の外で宣言された変数は、関数を抜けても値が残る。したがって同じ関数を繰り返し呼ぶ場合、前回の呼び出しの結果が残ったまま次の集計が始まる危険がある。これを避けるには、宣言時ではなく関数が呼ばれるたびに初期化しなければならない。
解答・解説を開く
🧭 方針
集計する1行は、取り出した数字を添字として使うという一点に尽きる。数字そのものを箱の番号にすれば、その箱を1増やすだけでよい。
配列の中身は、桁を取り出して該当する箱を数えるだけである。4桁に満たない数は上位が0として扱われるので、0の箱が増える点に注意する。
最大・最小は、集計結果から直接読める。箱を9から0へ降順に見て並べれば最大、0から9へ昇順に見て並べれば最小になる。並べ替えのプログラムを書く必要はない。
初期化の理由は、関数が2回目に呼ばれたとき何が起きるかを具体的に述べれば足りる。
✍️ 解答
1. 集計を行う1行
取り出した数字を添字として、対応する要素を1増やす。
`
count[m] = count[m] + 1
`
2. 集計結果と最大・最小
1970を与えた場合、桁は 1, 9, 7, 0。
| 添字 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| 値 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
最大は降順に並べて 9710、最小は昇順に並べて 0179。
2026を与えた場合、桁は 2, 0, 2, 6。
| 添字 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| 値 | 1 | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
最大は 6220、最小は 0226。
3. 関数の冒頭で初期化すべき理由
この関数は、繰り返し処理の中から何度も呼び出される。宣言時に一度だけ初期化する方式では、2回目以降の呼び出しで前回の集計結果が残ったまま加算が続く。その結果、配列の合計が4を超え、桁の出現回数として誤った値になる。関数の冒頭で毎回0に戻せば、呼び出しごとに独立した集計になり、何度呼んでも正しい結果が得られる。
✅ 検算
集計表を作り直すのではなく、合計と復元という2つの別経路で確かめる。
合計による確認。 4桁を集計するのだから、箱の値の合計は必ず4になる。1970の表は 1+1+1+1 = 4、2026の表は 1+2+1 = 4。どちらも一致する。合計が4でなければ、その時点で数え間違いか初期化漏れである。
復元による確認。 最大と最小の数を、集計表と独立に求め直す。1970の桁は 1, 9, 7, 0 であり、大きい順に並べると 9, 7, 1, 0 で9710、小さい順なら 0, 1, 7, 9 で0179。表から読んだ値と一致した。2026の桁 2, 0, 2, 6 も、大きい順で 6, 2, 2, 0、小さい順で 0, 2, 2, 6 となり一致する。
初期化の理由も、具体的な数値で裏を取る。 1970を集計したあと初期化せずに2026を集計すると、0の箱は 1+1=2、2の箱は 0+2=2 となり、合計は8になる。4桁の集計であるはずが合計8であることから、この方式が誤りであると数値の上で示せる。
💡 ここで効く一般則
「値そのものを添字にする」発想は、値の範囲が狭いときに強い。 0から9の10通りしかないなら、比較して並べ替えるより数えるほうが速く、書き間違いも少ない。
集計配列は「合計が既知の値になるか」で必ず検算する。 4桁なら合計4。この一手で数え漏れと初期化漏れの両方が捕まる。
関数の外に置いた変数は、呼び出しをまたいで値が残る。 繰り返し呼ばれる関数の中で集計するなら、初期化は必ず関数の中に置く。これは文法の問題ではなく、関数を何度呼んでも同じ入力なら同じ結果を返すべきという原則の問題である。
情報Ⅱではこれが副作用の議論になる。関数の外の状態を書き換える関数は、呼ぶ順序や回数で結果が変わる。テストが難しくなり、並行処理では競合も起きる。本設問の初期化の位置は、その入口にあたる。
問12 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅲ 設問(C)
まず自分で解いてみる
最小の数を返す関数の骨組みが与えられ、空欄が3つある。
1つ目は内側の繰り返しを続ける条件、2つ目は数に付け足す値、3つ目は繰り返しごとの更新である。外側のループと、集計配列から値を取り出して作業用の変数に入れる行はすでに書かれている。
つまり「何回置くか」を管理する部分だけを埋めさせる構成になっている。作業用の変数が何を表しているかを読み取れるかが分岐点である。
ヒント:この設問で使う道具
出現回数を数えた配列から、元の数字を昇順に並べ直した数を組み立てる手順を考える。
鍵になるのは2つの操作の組み合わせである。
外側では、数字を表す添字を0から9へ昇順にたどる。昇順にたどることが、そのまま「小さい数字から先に置く」ことになる。
内側では、その数字が現れた回数だけ繰り返し置く。同じ数字が2回現れるなら2回置かなければならない。回数は事前に分からないので、回数を数えた値を1ずつ減らしながら0になるまで回す形にする。
数を組み立てる式も型が決まっている。すでに組み立てた値 の右隣に数字 を付け足すには、
とする。10倍で桁を1つ左へずらし、空いた一の位に を入れる操作である。
解答・解説を開く
🧭 方針
作業用の変数の意味を先に確定させる。 これは集計配列から取り出した値、すなわち「その数字が残り何回置かれるべきか」を表す。この解釈が定まれば、3つの空欄は自動的に決まる。
- 続ける条件 → 残り回数が1以上である間
- 付け足す値 → いま外側で見ている数字そのもの(=外側の添字)
- 更新 → 1回置いたので残り回数を1減らす
ここで付け足すのは配列の値ではなく添字のほうという点を取り違えないことが要点である。配列の値は回数であって数字ではない。回数を数に付け足すと、まったく別の値ができてしまう。
✍️ 解答
- 続ける条件 → 残り回数が0より大きい(
w > 0) - 付け足す値 → 外側の添字(
i) - 更新 → 残り回数から1を引く(
w = w - 1)
組み立てると次のようになる。
`
for i = 0 to 9
w = count[i]
while w > 0
m = m * 10 + i
w = w – 1
end
end
`
外側を昇順に回すので、小さい数字から順に左の桁へ置かれ、結果として最小の数が得られる。
なお、この関数の外側を9から0への降順に変えるだけで、最大の数を返す関数になる。組み立ての式も内側の構造も一切変わらない。
✅ 検算
条件式を読み直すのではなく、具体的な数を通して出力を追う。
集計対象が0418の場合、集計配列は0・1・4・8の箱がそれぞれ1、他は0である。
| 外側の添字 | 残り回数 | 組み立て中の値 |
|---|---|---|
| 開始前 | — | 0 |
| 0 | 1 → 0 | 0 × 10 + 0 = 0 |
| 1 | 1 → 0 | 0 × 10 + 1 = 1 |
| 4 | 1 → 0 | 1 × 10 + 4 = 14 |
| 8 | 1 → 0 | 14 × 10 + 8 = 148 |
戻り値は148。0418の桁を小さい順に並べた0148は、数として148に等しい。一致した。
同じ数字が複数ある場合も確かめる。桁が2・0・2・6なら、0の箱が1、2の箱が2、6の箱が1になる。外側を回すと 0 → 2 → 2 → 6 の順に置かれ、値は 0 → 2 → 22 → 226 となる。桁を小さい順に並べた0226と一致する。内側の繰り返しが無ければ2が1回しか置かれず22で終わってしまうので、内側が必要であることもここで確認できる。
付け足す値を取り違えた場合も見る。添字ではなく配列の値(回数)を足すと、上の例では 0 → 2 → 2 → 1 のような値が並び、桁数も中身も元の数字と無関係になる。1回の追跡で破綻が見える。
💡 ここで効く一般則
集計配列から元の並びを復元するときは、外側で添字を、内側で回数分を回す。 外側の向きが昇順なら最小、降順なら最大。向きを変えるだけで最大と最小が入れ替わることを知っていれば、片方を書ければもう片方はただちに書ける。
数を左から組み立てる式は で固定。 桁の重みを個別に計算する必要はない。
添字と値のどちらを使うのかを常に意識する。 集計配列では添字が「値の種類」、要素が「その個数」を表す。この2つを取り違える誤りは頻出で、しかも動いてしまうため気づきにくい。具体例を1つ通せば必ず露見する。
情報Ⅱではこの構造が計数ソートとして整理される。比較を一切行わずに整列できるため、値の範囲が限られている場合には比較による整列より速い。本設問はその最小構成にあたり、カプレカ数の計算という具体的な題材の中に、整列アルゴリズムの一種がそのまま埋め込まれている。
問13 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(A)
まず自分で解いてみる
著者の一覧表と、書籍の一覧表が与えられる。書籍の表には著者IDの列がある。そのうえで、著者ごとの書籍数を埋めた新しい表を完成させる。
1人分だけが例として本文で示されているのが親切な設計で、自分の集計方法が正しいかを最初の1つで確かめられる。ここが合わなければ数え方を間違えている。
ヒント:この設問で使う道具
関係データベースでは、情報を重複なく複数の表に分けて持つ。人の情報は人の表に、物の情報は物の表に置き、両者を共通の項目(キー)でつなぐ。
本問なら、著者の表と書籍の表が別々にあり、書籍の表の側に著者IDが入っている。この著者IDが両表をつなぐ鍵になる。
ここで行うのは集約である。書籍の表を著者IDでまとめ、それぞれ何行あるかを数える。表計算でいえばCOUNTIF、SQLでいえばGROUP BYにあたる操作で、「一方の表の各行に対して、他方の表に何行対応するか」を求めている。
集約で間違えやすいのは、対応が0件の行である。1冊も持たない著者がいれば、その著者の集計値は0になる。数え漏れではなく0という値が正しい。
解答・解説を開く
🧭 方針
書籍の表を上から一度だけ通し、著者IDごとに正の字を書く。 著者ごとに表を何度も見返すと、見落としと二重計上が起きる。
手順を固定する。
1. 著者IDの箱を人数分用意し、すべて0にする
2. 書籍の表を1行目から最終行まで順に見て、その行の著者IDの箱を1増やす
3. 全行を通し終えたら、箱の合計が書籍の総数と一致するかを確認する
3が要点である。合計が総数と合わなければ、その時点で数え間違いが確定する。 個別の値を見直す前に、合計で全体の健全性を見る。
これは大問Ⅲで扱った「値そのものを添字にして数える」集計と同じ構造である。著者IDを箱の番号として使っているだけで、考え方は変わらない。
✍️ 解答
書籍の表を通して著者IDごとに数えると、次のようになる。
| 著者ID | 書籍数 |
|---|---|
| 1 | 2(本文で例示された値) |
| 2 | 4 |
| 3 | 6 |
| 4 | 4 |
| 5 | 3 |
したがって空欄には、上から順に 4、6、4、3 が入る。
著者ID 1の値が本文の例示と一致するので、数え方が正しいことが最初に確認できる。
✅ 検算
集計をやり直すのではなく、合計と補集合という2つの独立な経路で確かめる。
合計による確認。 対象となる書籍は全部で19冊である。集計した値を足すと
となり、書籍の総数と一致する。もし1冊でも数え落としていれば18に、二重に数えていれば20になる。この一致は、全行がちょうど1回ずつ数えられたことの証明になっている。
補集合による確認。 最も多い著者ID 3について、逆から数え直す。全19冊のうち、著者IDが3でない書籍を数えると13冊である。19 − 13 = 6 となり、先に求めた6と一致する。数える対象を反転させた独立な経路であり、同じ見落としが両方で起きる可能性は低い。
0件の著者がいないことも確認する。 5人の著者すべてに1以上の値が付いており、集計表に空欄や0は現れない。もし0の著者がいれば、その行を書き忘れる誤りが起きやすいので、確認しておく価値がある。
💡 ここで効く一般則
集約の検算は「合計が元の総数と一致するか」で行う。 これ一つで数え落としと二重計上の両方が捕まる。個々の値を見直すより速く、確実である。
表を通すのは一度だけ。 著者ごとに表を見返す方式は、行数が増えると必ず破綻する。1行ずつ見て該当する箱を増やす方式なら、行数が何万件になっても手順は変わらない。
例示された1件を最初の検算に使う。 出題者が1人分だけ値を与えているのは、解答者が自分の数え方を検証できるようにするためである。まずそこを合わせてから残りに進む。
情報Ⅱでは、この操作がSQLの GROUP BY と集約関数として定式化される。さらに、1冊も持たない著者を結果に残すかどうかで内部結合と外部結合の使い分けが必要になる。単純に数えるだけでは、0件の行が結果から消えてしまう。本問では全員が1冊以上持っていたためこの問題は表面化しないが、データが変われば結論が変わる点は意識しておきたい。
問14 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)1
まず自分で解いてみる
一連の操作手順が7つ示され、各手順が選択・射影・結合のどれにあたるかも注記されている。本問はその第1手順の結果を答えさせる。
対象となるのは、設問(A)で完成させた集計表である。つまり前の設問の結果がそのまま次の入力になる構造で、集計を誤ると以降がすべて崩れる。
ヒント:この設問で使う道具
関係データベースの操作は、少数の基本操作の組み合わせで表現される。本問で使うのは3つである。
- 選択=条件に合う行を取り出す(表が縦に短くなる)
- 射影=必要な列だけを取り出す(表が横に狭くなる)
- 結合=共通する項目を手がかりに、2つの表を横につなぐ
混同しやすいのは選択と射影である。選択は行、射影は列。日本語の語感では逆に感じられることがあるので、「選択=行を選ぶ」と結びつけて覚える。
条件を読むときは境界の扱いに注意する。「4冊以上」は4を含み、「2000円以上」は2000を含む。「より多い」なら含まない。この一語で結果の行数が変わる。
解答・解説を開く
🧭 方針
条件は「書籍数が4冊以上の著者」である。設問(A)で求めた集計値を、境界を含む形で判定する。
境界値をまず特定する。 「4冊以上」なので、ちょうど4冊の著者は含まれる。3冊の著者は含まれない。この2つを最初に確認しておけば、判定は機械的に済む。
判定は表を上から一度通すだけでよい。条件に合う著者IDを書き出す。
なお、ここで求められているのは著者IDであって著者名でも書籍数でもない。何を答えるかを取り違えないことも、この種の設問では点差になる。
✍️ 解答
設問(A)の集計値を条件と照合する。
| 著者ID | 書籍数 | 4冊以上か |
|---|---|---|
| 1 | 2 | × |
| 2 | 4 | ○(境界・含む) |
| 3 | 6 | ○ |
| 4 | 4 | ○(境界・含む) |
| 5 | 3 | ×(境界の1つ下) |
抽出される著者IDは 2、3、4 の3件である。
境界のすぐ両側に実際のデータが存在する点に注意したい。4冊の著者が2人、3冊の著者が1人いる。「以上」を「より多い」と読み違えると、2人分が脱落して結果が1件になる。
✅ 検算
条件判定をやり直すのではなく、除外された側から数え直す。
除外されたのは著者ID 1(2冊)と5(3冊)の2人である。全5人から2人を除けば3人が残り、抽出結果の件数と一致する。抽出と除外は補い合う関係にあるので、片方を数えて全体から引けば、もう片方の独立した確認になる。
書籍数の合計でも裏を取る。 抽出された3人の書籍数は 4 + 6 + 4 = 14冊。除外された2人は 2 + 3 = 5冊。合計19冊で、対象書籍の総数と一致する。設問(A)の集計と本問の抽出が、どちらも整合していることが同時に確認できる。
境界の誤読を試す。 仮に「4冊より多い」と読めば、抽出されるのは著者ID 3のみの1件になる。以降の手順で扱う書籍数が大きく減り、最終結果の件数も変わる。境界の解釈が最終結果を左右することが、この試算から分かる。
💡 ここで効く一般則
選択は行、射影は列。 この対応を最初に固定しておくと、手順の説明を読むだけで表がどう変形されるかを追える。
「以上」「以下」は境界を含み、「より多い」「未満」は含まない。 出題者は必ず境界上にデータを配置してくる。本問でもちょうど4冊の著者が2人いた。これは偶然ではない。
前の設問の結果を次が使う構造では、最初の集計を検算してから進む。 集計を1つ誤ると、以降の手順すべてが誤った値の上に積み上がる。合計による確認を挟むだけで、その連鎖を断てる。
情報Ⅱでは、この一連の操作が関係代数として体系化され、SQLの WHERE(選択)、SELECT(射影)、JOIN(結合)に対応づけられる。さらに、どの順序で操作すれば処理量が小さくなるかという問い合わせの最適化が問われるようになる。本問の手順が「先に著者を絞ってから結合する」順序になっているのは、結合の対象を減らしてから重い操作を行うという、まさにその考え方に沿っている。
問15 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)2
まず自分で解いてみる
7段階の操作手順が示され、そのうち第2手順が終わった時点の表にどの列が含まれるかを、選択肢からすべて選ばせる。
選択肢には、この時点までに登場した2つの表の列に加えて、まだ結合していない表の列が混ぜられている。手順を先読みして最終形を思い浮かべると、後から加わる列まで選んでしまう。
ヒント:この設問で使う道具
結合の結果にどの列が現れるかは、結合した2つの表それぞれの列を合わせたものである。行が絞られていても列は減らない。列を減らすのは射影という別の操作であり、結合は列を増やす方向にしか働かない。
ここで押さえるべきは、結合に使ったキーの列も結果に残るという点である。共通項目で結び付けるからといって、その項目が消えるわけではない。
もう一つ、まだ結合していない表の列は現れない。これは当然に思えるが、一連の手順を追っていると「最終的に必要な列」と「この時点で存在する列」を混同しやすい。問われているのはその手順が終わった時点の状態であって、最終結果ではない。
解答・解説を開く
🧭 方針
その手順までに合流した表を列挙し、それぞれの列を書き出して合併する。 手順の先を見ないことが肝心である。
第2手順までに関わるのは2つの表である。
- 第1手順で絞られた著者側の表(著者ID・著者名・書籍数)
- 結合相手の書籍側の表(書籍ID・書籍名・ジャンル・著者ID・価格)
この2つを著者IDで結ぶ。結果の列は両者の列の合併になる。著者IDは両方にあるが、結合結果では1つの列として残る。
そのうえで選択肢を1つずつ照合する。貸出に関する表はまだ登場していないので、そこに属する列はすべて除外される。
✍️ 解答
第2手順が終わった時点の表に含まれる列は、次のとおり。
| 由来 | 列 |
|---|---|
| 著者側 | 著者ID、著者名、書籍数 |
| 書籍側 | 書籍ID、書籍名、ジャンル、価格 |
選択肢と照合すると、含まれるのは 書籍ID、書籍名、ジャンル、著者ID、価格、著者名 の6つである。
含まれないのは、貸出記録に属する4つの列(貸出ID、借りた人、借りた日、返した日)である。これらの表が合流するのは第5手順であり、第2手順の時点では存在しない。
なお「書籍数」は結果に含まれるが、選択肢には並んでいない。選択肢にない列があっても構わないという点も、設問文の「解答群にあるものをすべて選び」という限定から読み取れる。
✅ 検算
列を数え上げ直すのではなく、除外した4つが本当にこの時点で存在しないかを手順から確かめる。
貸出記録の表が操作に登場するのは第4手順であり、それが他の表と結び付けられるのは第5手順である。第2手順の時点では、貸出記録はまだ一度も触れられていない。まだ読み込んでいない表の列が結果に現れることはありえない。
逆に、含めた6つがすべて第2手順までに登場していることも確認する。著者名は著者側の表に、ジャンルと価格は書籍側の表にある。どちらも第1手順・第2手順で扱われている。
列数でも整合を見る。 著者側は3列、書籍側は5列。著者IDが共通なので、結合結果は 列になる。上の表も7列であり一致する。共通列を二重に数えていないことがここで確かめられる。
先読みの誤りを試す。 最終的な分析表には借りた人や貸出期間が必要になるが、それらは第5手順以降で加わる。第2手順の時点でこれらを選ぶと、手順の順序を無視した解答になる。設問が「手順2によって結合された一覧」と明示しているのは、この誤りを狙っているからである。
💡 ここで効く一般則
結合は列を増やし、選択は行を減らし、射影は列を減らす。 どの操作が表のどの方向を変えるかを固定して覚えれば、途中経過の形は追える。
結合結果の列数は「両者の列数の和 − 共通列数」。 この式で検算すれば、キーを二重に数える誤りが防げる。
「その手順の時点」を問われたら、先の手順を見ない。 一連の流れを理解しているほど最終形を思い浮かべてしまうが、設問が指しているのは途中の状態である。
まだ登場していない表の列は絶対に現れない。 選択肢に混ぜられた列がどの表に属するかを確認すれば、機械的に除外できる。
情報Ⅱでは、この列の管理がビューの設計につながる。中間結果に名前を付けて再利用するとき、どの列を持たせるかを決める必要がある。不要な列を早めに落とせば処理は軽くなるが、後の手順で必要になれば結合をやり直すことになる。どの段階で射影するかという判断が、そこで問われるようになる。
問16 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)3
まず自分で解いてみる
前の手順で絞り込んだ著者に、書籍の表を結合し、そのうえで価格による絞り込みを行った結果を答えさせる。
答えるのは書籍IDである。書籍名でも価格でもない。何を出力するかは手順の記述で決まっており、ここを取り違えると全滅する。
前の手順の結果が入力になるため、その時点で誤っていれば連鎖する。設問(B)1の結果を先に検算しておくことが前提になる。
ヒント:この設問で使う道具
条件が2つ重なる抽出は、絞り込みを段階に分けて行うのが原則である。本問では次の2段になっている。
1. 著者についての条件(一定数以上の書籍を持つ)
2. 書籍についての条件(一定額以上の価格)
この2つは別の表に属する条件である点が重要になる。著者の条件は集計表に、価格の条件は書籍の表にある。片方だけでは判定できないので、間に結合を挟む必要がある。
段階を分ける利点は2つある。中間結果が小さくなるので手作業の量が減ること、そしてどの段階で誤ったかを切り分けられることである。一気に条件を重ねて判定すると、間違えたときに原因が特定できない。
解答・解説を開く
🧭 方針
著者ごとに分けて処理する。 対象となる著者は3人。1人ずつ「その著者の書籍を列挙し、価格の条件で絞る」を繰り返せば、見落としが起きにくい。
一気に全書籍から価格で絞ってしまうと、対象外の著者の高額書籍まで拾ってしまう。必ず著者で絞ってから価格で絞る。手順の順序がそう指定されているのは、この事故を防ぐためでもある。
境界は「2000円以上」なので、ちょうど2000円の書籍は含まれる。ここも出題者が境界上にデータを置いてくる箇所である。
✍️ 解答
対象の3人について、それぞれの書籍を価格で絞る。
| 著者ID | その著者の書籍数 | 2000円以上のもの |
|---|---|---|
| 2 | 4冊 | 2冊 |
| 3 | 6冊 | 1冊 |
| 4 | 4冊 | 2冊 |
抽出される書籍IDは 3、7、9、13、15 の5件である。
内訳を著者別に見ると、著者2から2件、著者3から1件、著者4から2件。書籍数が最も多い著者3から1件しか出ていない点が特徴的で、「多作であること」と「高額書籍を多く持つこと」が別であることを示している。
ちょうど2000円の書籍が複数含まれており、境界を「2000円より高い」と読めばこれらが脱落して結果は2件になる。
✅ 検算
抽出を繰り返すのではなく、除外された側を数えて合計で閉じるかを見る。
対象3人の書籍は合計14冊であった(4 + 6 + 4)。そのうち抽出されたのが5冊なので、除外されたのは9冊のはずである。実際に価格が2000円未満の書籍を数えると9冊であり、一致する。
対象外の著者の書籍が混入していないかも確認する。抽出した5件の書籍IDについて、それぞれの著者IDが2・3・4のいずれかであることを個別に確かめる。著者1と著者5の書籍の中にも2000円以上のものは存在するが、抽出結果に含まれていない。先に著者で絞る手順が正しく効いていることがここで確認できる。
もし著者による絞り込みを飛ばして価格だけで抽出すれば、著者1や著者5の高額書籍も入り込み、件数が増える。この差が出ることが、手順の順序に意味があることの裏づけになる。
💡 ここで効く一般則
複数条件の抽出は、条件ごとに段階を分ける。 一度に判定すると誤りの原因が切り分けられない。中間結果の件数を毎回記録しておけば、どこで想定と食い違ったかが後から追える。
「合計=抽出+除外」で必ず閉じる。 抽出だけを数えると見落としに気づけないが、除外を数えて足し合わせれば全件が説明できているかが分かる。
別の表に属する条件が混じるときは、結合が必要な合図。 著者の条件と書籍の条件を同時に扱うには、両者をつないだ表がなければならない。手順に結合が挟まっている理由はここにある。
境界値は必ず出題対象になる。 「以上」の指定でちょうど境界の値を持つデータが複数用意されているのは、出題者の意図である。
情報Ⅱでは、この処理順序が実行計画の話になる。条件の適用順を変えても最終結果は同じだが、中間結果の大きさが変わるため処理速度が変わる。選択性の高い条件(絞り込む力が強い条件)を先に適用するのが定石であり、本問が著者による絞り込みを先に置いているのは、その原則にかなっている。
問17 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)4
まず自分で解いてみる
35件の貸出記録が与えられ、そこから対象期間に貸し出しを開始したものを抽出させる。
記録には期間の前に借りたもの、期間中に借りたもの、期間の後に借りたものが混在しており、返却日が期間をまたぐ記録も意図的に配置されている。返した日を基準にしてしまう誤りを誘う設計になっている。
答えるのは貸出IDである。件数だけでなく、どの記録が該当するかを特定する必要がある。
ヒント:この設問で使う道具
期間による抽出では、どの日付の列を基準にするかを最初に確定させなければならない。貸出の記録には「借りた日」と「返した日」の2つの日付がある。どちらを基準にするかで結果はまったく変わる。
本問の条件は「対象期間中に貸し出しを開始した記録」である。すなわち基準は借りた日であり、返した日は判定に関与しない。対象期間の後に返却された記録も、借りた日が期間内なら含まれる。
逆に、期間が始まる前に借りて期間中に返した記録は、借りた日が期間外なので含まれない。この記録は「期間中に貸出中だった」ものではあるが、「期間中に開始した」ものではない。条件文の動詞を正確に読むことが、この設問の全てである。
日付の範囲判定も境界を含む。「5月1日から5月15日まで」なら、両端の日も含まれる。
解答・解説を開く
🧭 方針
借りた日の列だけを見て、上から順に通す。 返した日の列は視界に入れない。この割り切りが誤りを防ぐ。
記録が借りた日の順に並んでいる場合は、さらに簡単になる。範囲の開始点と終了点を1回ずつ見つければ、その間はすべて該当する。1件ずつ判定する必要がなくなり、境界の2箇所だけを慎重に見ればよい。
手順を固定する。
1. 借りた日が対象期間の開始日以降になる最初の記録を見つける
2. 借りた日が対象期間の終了日を超える最初の記録を見つける
3. その間の記録をすべて拾う
境界では「その日を含むか」を必ず確認する。開始日ちょうど、終了日ちょうどの記録があれば、どちらも含まれる。
✍️ 解答
借りた日が対象期間内にある記録を拾うと、貸出ID 16 から 29 までの連続した14件が該当する。
記録は借りた日の順に並んでおり、期間の直前と直後で区切りがはっきりしている。
| 区分 | 貸出ID | 件数 |
|---|---|---|
| 期間より前に借りた | 1〜15 | 15件 |
| 期間中に借りた | 16〜29 | 14件 |
| 期間より後に借りた | 30〜35 | 6件 |
合計 15 + 14 + 6 = 35件で、記録の総数と一致する。
境界の確認をしておく。貸出ID 15 は期間開始前の借り出しだが、返却は期間中である。返した日を基準にすればこの記録が入り込むが、条件は開始日なので含まれない。同様に、期間前に借りて期間開始日に返した記録も存在するが、これも含まれない。
✅ 検算
抽出をやり直すのではなく、区分ごとの件数を足して総数で閉じるかを見る。
上の表のとおり、期間前15件・期間中14件・期間後6件で合計35件。記録の総数と一致するので、どの記録もちょうど1つの区分に入り、漏れも重複もない。
貸出IDの連続性でも確認する。 該当したのは16から29までの連続した番号である。 となり、件数と一致する。記録が借りた日の順に並んでいる以上、該当分が連続しないことはありえない。もし飛び番号が出ていれば、その時点で判定を誤っている。
基準列を取り違えた場合の差も見ておく。 仮に返した日を基準にすれば、期間前に借りて期間中に返した記録が複数入り込み、逆に期間中に借りて期間後に返した記録が抜ける。件数も顔ぶれも変わる。両者の結果が一致しないことこそ、基準列の指定に意味がある証拠である。
💡 ここで効く一般則
期間の条件は「どの日付列を基準にするか」を最初に確定する。 開始日基準、終了日基準、期間の重なり基準は、それぞれ別の集合を返す。条件文の動詞(開始した/返却した/貸出中だった)が基準を決めている。
データが日付順に並んでいるなら、境界2箇所だけを見る。 全件を1つずつ判定するのは、並んでいない場合の方法である。並び順を利用すれば作業量が激減し、誤りも減る。
区分ごとの件数を足して総数と照合する。 抽出結果だけを数えると見落としに気づけない。全件をいずれかの区分に割り振り、合計で閉じることを確認する。
「またぐ」データは必ず仕込まれている。 期間の前後にまたがる記録が用意されていない出題は、この論点を問うていない。またぐ記録があれば、そこが採点の分岐点である。
情報Ⅱでは、この判定が区間の重なりとして一般化される。2つの期間が重なるかどうかの条件は、開始日・終了日の4つの値の大小関係で書ける。予約システムの二重予約の検出などがこれにあたり、「開始した」だけを見る本問より条件が複雑になる。
問18 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)5
まず自分で解いてみる
2つの中間結果を結合した表の行数を答えさせる。片方は期間で絞った貸出記録、もう片方は条件で絞った書籍の一覧である。共通する項目は書籍IDになる。
答えるのは件数のみだが、それを出すにはどの記録が残るかを特定する必要がある。前の2つの手順の結果が両方とも正しくなければ到達できない、積み上げの終着点になっている。
ヒント:この設問で使う道具
結合は2つの表を共通の項目でつなぐ操作である。ここで結果の行数がどうなるかを正しく見積もれるかが、この設問の分かれ目になる。
一方の表のある行に対して、もう一方の表に対応する行が
- 0件なら、その行は結果に残らない(内部結合の場合)
- 1件なら、そのまま1行になる
- 複数件なら、その数だけ行が増える
本問では、貸出記録の側から見ると書籍IDは1件の書籍にしか対応しない。したがって結合によって行が増えることはなく、対応しない行が消えるだけである。つまりこの結合は、実質的に「書籍IDが特定の集合に含まれる記録だけを残す」絞り込みとして働く。
この見極めが立てば、結果の件数は数え上げるだけで求まる。
解答・解説を開く
🧭 方針
行が増えない結合であることを最初に確認する。 貸出記録の1行が対応する書籍は必ず1件なので、結合後の行数は結合前の行数を超えない。これが分かれば、あとは「残る行を数える」だけの作業になる。
手順は単純である。期間で絞った貸出記録を1件ずつ見て、その書籍IDが絞り込まれた書籍の集合に入っているかを判定する。
集合の側を先に頭に入れておくと速い。対象の書籍IDは5つしかないので、これを覚えたうえで貸出記録を1回通せば済む。逆に貸出記録ごとに書籍の表を引き直すと、14回の照合が14回の探索になる。
✍️ 解答
期間で絞った貸出記録は14件、絞り込まれた書籍は5件であった。この14件それぞれについて、書籍IDが対象の5件に含まれるかを判定する。
該当したのは 3件 である。
| 判定 | 件数 |
|---|---|
| 書籍IDが対象に含まれる | 3 |
| 含まれない | 11 |
| 合計 | 14 |
対象の書籍5件のうち、期間中に貸し出されたものは3件分にとどまった。残る2件は、対象期間中に一度も借りられていない。結合では対応がない側は結果に残らないので、この2件は消える。
件数が急に小さくなるのは、2つの絞り込みが独立した条件だからである。書籍の条件(著者の多作性と価格)と貸出の条件(期間)に関連はないので、両方を満たす記録は掛け算的に少なくなる。
✅ 検算
判定を繰り返すのではなく、書籍の側から数え直すという逆向きの経路で確かめる。
対象の書籍5件それぞれについて、期間中の貸出記録が何件あったかを数える。3件の書籍がそれぞれ1回ずつ借りられ、残り2件は0回であった。合計は となり、貸出記録の側から数えた結果と一致する。
結合の方向を変えても件数が同じであることは、結合が正しく行われたことの有力な裏づけになる。もし一方の側で数えたときだけ件数が増えるなら、対応が1対複数になっており、行の増加を見落としていることになる。
合計による確認も行う。 期間で絞った14件は、対象に含まれる3件と含まれない11件に分かれ、合計が14で閉じる。どの記録もちょうど一度だけ判定されている。
手順を飛ばした場合との差も見ておく。 仮に期間の絞り込みを行わず、35件すべてに対して書籍IDの照合を行えば、該当する記録はもっと多くなる。件数が3件まで減っているのは、期間の条件が確かに効いているからであり、両方の絞り込みが結果に寄与していることが確認できる。
💡 ここで効く一般則
結合の前に「行が増えるか減るか」を見極める。 対応が1対1または多対1なら行は増えない。1対多なら増える。これを判断してから作業に入れば、結果の件数の見当がつき、大きな誤りに気づける。
結合は両方向から数えて一致を確かめる。 片側からしか数えないと、対応の重複を見落とす。方向を変えた数え上げは、最も費用の安い検算である。
絞り込みが重なると件数は急激に減る。 条件が独立なら、残る割合は掛け算になる。件数が想定より多いときは、どこかの絞り込みが効いていない可能性を疑う。
対応が0件の行は結果から消える。 これは誤りではなく仕様である。ただし「0件だった」という情報自体が分析上重要な場合もあり、その場合は外部結合を使って0のまま残す必要がある。
情報Ⅱでは、この違いが内部結合と外部結合の使い分けとして明示的に扱われる。本問のように「借りられた記録を数える」なら内部結合でよいが、「対象書籍ごとの貸出回数を、0回のものも含めて一覧にする」なら外部結合でなければならない。何を問いたいかが、どの結合を選ぶかを決める。
問19 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)6
まず自分で解いてみる
最終分析表の候補が4つ提示され、正しいものを1つ選ばせる。各候補は表の一部を抜粋した2行分だけが示されている。
抜粋であることが重要で、示された2行のうち1行でも条件を破っていれば、その候補は誤りと判定できる。全体を再現する必要はない。
列は著者名・書籍名・価格・借りた人・貸出期間の5つに射影されており、書籍IDや著者IDは表示されていない。したがって条件1と条件3は、表示された値から間接的に判断することになる。
ヒント:この設問で使う道具
一連の抽出操作の結果が正しいかを検査するには、最終表の各行がすべての条件を同時に満たしているかを確かめればよい。1つでも破っている行があれば、その表はどこかの手順を落としている。
本問で課された条件は3つある。
1. 著者についての条件(一定数以上の書籍を持つ著者であること)
2. 書籍についての条件(一定額以上の価格であること)
3. 貸出についての条件(対象期間中に貸し出しが開始されたこと)
誤った結果は、このうちどれか1つの手順を飛ばした形で作られている。 したがって検査は「どの条件が破られているか」を各候補について探す作業になる。条件を破る行を1つ見つけた時点で、その候補は棄却できる。
日数の数え方も定義されている。手順には「借りた日を含め、返した日までの日数」とあるので、両端を含めて数える。この場合、
となる。差だけを取ると1日ずれる。
解答・解説を開く
🧭 方針
価格の列を最初に見る。 条件2は価格が直接表示されているので、目視で即座に判定できる。基準額を下回る行があれば、その候補はその場で棄却できる。最も安い検査から始めるのが定石である。
次に著者名を見る。条件1を満たす著者は3人に絞られている。そこに含まれない著者名が現れていれば、著者の絞り込みが行われていないことになる。
最後に貸出期間の数値を、自分の計算と突き合わせる。ここは両端を含む数え方で計算し直す。
✍️ 解答
正しい最終分析表は (4) である。
各候補の判定は次のとおり。
| 候補 | 破られている条件 | 判定 |
|---|---|---|
| (1) | 価格が基準額(2000円)未満の行が2行とも含まれる | 誤り |
| (2) | 2行目の価格が基準額未満 | 誤り |
| (3) | 1行目の著者が、書籍数の条件を満たさない著者 | 誤り |
| (4) | 破られている条件なし | 正しい |
(1)は価格による絞り込みを行っていない結果である。(2)は1行目こそ正しいが、2行目に基準額未満の書籍が残っており、やはり価格の絞り込みが不完全である。(3)は価格の条件は満たしているものの、書籍を2冊しか持たない著者の作品が含まれており、著者の絞り込みが抜けている。
(4)の2行はいずれも、価格が基準額ちょうど以上、著者は書籍数の条件を満たす者、貸出期間も対象期間内に開始されたものである。
✅ 検算
候補を見比べるのではなく、正解と判定した(4)の各行を、自分が独立に求めた最終結果と突き合わせる。
設問(B)5で、最終的に残る貸出記録は3件と求めていた。(4)に示された2行は、そのうちの2件に対応する。
貸出期間を計算し直す。1行目は5月10日に借りて5月22日に返した記録であり、両端を含めると
2行目は5月13日に借りて5月27日に返した記録なので、
いずれも(4)に示された値と一致する。もし両端を含めずに差だけを取れば12日と14日になり、(4)の値と食い違う。手順の「借りた日を含め」という一語が、この1日の差を決めている。
残る1件との整合も見る。 3件目は5月9日に借りて5月27日に返した記録で、期間は 日となる。この値は候補(2)と(3)の中にも現れており、その行自体は正しいことが分かる。つまり(2)と(3)は「正しい行と誤った行が混在した表」であり、正しい行が含まれていることを根拠に選んではいけない。抜粋のすべての行が条件を満たすことが要求されている。
💡 ここで効く一般則
結果の検査は、判定が安い条件から順に当てる。 表示されている数値だけで判定できる条件(価格)を先に見れば、多くの候補をその場で落とせる。表に出ていない情報を要する条件(著者の書籍数)は後回しにする。
1行でも条件を破れば、その表は誤り。 正しい行が含まれていることは何の保証にもならない。誤答の候補には、必ず正しい行が混ぜてある。
「両端を含む」日数は差に1を足す。 手順の文言に「〜を含め」とあれば必ず +1 する。この1日のずれだけで正誤が分かれるように選択肢が作られている。
誤答から、どの手順が抜けたかを言い当てられるようにする。 「価格の絞り込みを飛ばすとこうなる」と説明できれば、条件と操作の対応が身についている証拠になる。
情報Ⅱでは、この検査がデータ品質の検証として扱われる。抽出処理の結果を人が目視するのではなく、条件を満たさない行が0件であることを問い合わせで確認する。「正しいことを確かめる」のではなく「誤りが無いことを確かめる」という向きの発想が、そこで身につく。
問20 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅳ 設問(B)7
まず自分で解いてみる
7段階の手順のうち4つが候補として挙げられ、絞り込み効果が最も高いものを選ばせる。
候補には選択操作が3つと結合操作が1つ含まれる。結合の分母の取り方が特別に定義されていることが、そのまま解答の鍵になっている。定義を読み飛ばして「結合は行を減らす操作ではない」と判断すると、候補から外してしまう。
各手順の行数は、これまでの設問で順に求めてきた値がそのまま使える。大問全体が、この最終設問のための数値を積み上げる構成になっている。
ヒント:この設問で使う道具
絞り込み効果は、この設問で定義が与えられている指標である。操作前の行数に対して、操作後にどれだけ行数が減ったかの割合を指す。
分母が操作前の行数である点が要点になる。減った行数の絶対値ではなく割合なので、元が大きい表で多く減っても、割合が高いとは限らない。
結合については特別な取り決めが置かれている。結合前の2つの表の行数の和を操作前の行数とし、結合後の行数を操作後の行数とする。この定義があることで、結合も選択と同じ土俵で比較できるようになる。
この取り決めは結合に有利に働く。2つの表の行数を足したものが分母になるため、分母が大きくなりやすいからである。
解答・解説を開く
🧭 方針
4つの候補それぞれについて、操作前と操作後の行数を表に書き出してから割合を計算する。 暗算で比べようとすると、分母の取り方を取り違える。
これまでに確定している行数を整理する。
- 著者の表:5行 → 条件を満たす著者は3行
- 著者と書籍を結合した表:14行 → 価格の条件で5行
- 貸出記録:35行 → 対象期間で14行
- 期間で絞った記録と高額書籍を結合:3行
結合の分母だけは、2つの表の行数を足すという定義に従う。ここを他と同じように片方だけにすると、結果が変わってしまう。
✍️ 解答
各候補の絞り込み効果を計算する。
| 候補 | 操作前 | 操作後 | 減少 | 絞り込み効果 |
|---|---|---|---|---|
| 手順1(著者の絞り込み) | 5 | 3 | 2 | |
| 手順3(価格の絞り込み) | 14 | 5 | 9 | |
| 手順4(期間の絞り込み) | 35 | 14 | 21 | |
| 手順5(結合) | 3 | 16 |
最も高いのは 手順5の結合操作 で、約84%である。したがって答えは d。
減った行数だけを見れば手順4が21行で最多だが、分母が35と大きいため割合では3位にとどまる。絶対数と割合が逆転することが、この設問の狙いである。
結合が最も高くなるのは、定義により分母が2つの表の和になる一方で、両方の条件を同時に満たす行だけが残るため分子が小さくなるからである。
✅ 検算
割り算をやり直すのではなく、残存率(操作後 ÷ 操作前)という補数の側から確かめる。絞り込み効果が最も高いことは、残存率が最も低いことと同値である。
| 候補 | 残存率 |
|---|---|
| 手順1 | |
| 手順3 | |
| 手順4 | |
| 手順5 |
最小は手順5の約0.158であり、先の結論と一致する。各行について「絞り込み効果 + 残存率 = 1」が成り立っていることも確認できる(例:)。
順位が入れ替わらないかも見る。 手順3と手順4は 0.643 と 0.600 で接近しており、分数のまま比べて確かめる。 と を通分すると と となり、手順3が上回る。小数に直す前の段階でも順位は変わらない。
結合の分母を取り違えた場合も試す。仮に片方の表(14行)だけを分母とすれば となり、それでも最大ではあるが値が変わる。もう片方(5行)を分母にすれば操作後が操作前を下回らず、指標として成立しない。設問が分母の定義をわざわざ明示しているのは、この曖昧さを消すためである。
💡 ここで効く一般則
割合を比べる問題では、必ず分母をそろえて表に書き出す。 減少幅の大きさに引きずられると、分母の違いを見落とす。
定義が設問文で与えられているときは、その定義だけに従う。 一般的な感覚や他の場面での慣習を持ち込まない。本問の「結合では2つの表の和を分母とする」は、この設問限りの取り決めである。
残存率で検算する。 「減った割合」と「残った割合」は足して1になる。順位を逆から確認できるうえ、計算も1回で済む。
接近した2つは分数のまま通分して比べる。 小数に直すと丸め誤差で順位が怪しくなることがある。
情報Ⅱでは、この指標が選択性として問い合わせの最適化に使われる。選択性の高い操作を先に実行すれば中間結果が小さくなり、後続の重い処理が軽くなる。本問で最も効果が高かったのが最後の結合であることは、逆に言えばもっと早い段階で絞り込める余地があったことも示唆する。指標を測ることが、処理の順序を見直す出発点になる。
問21 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(A)前半
まず自分で解いてみる
3つの空欄が、それぞれ役割の説明とセットで与えられる。「値を高さで表し大小比較に適する」「全体に対する割合を表し構成比率を理解しやすい」という2つの説明文でグラフ名を答えさせ、そのうえで実際の目的に照らして最も適したものを3つ目に選ばせる。
3つ目には「横軸に各年を順番にとり、縦軸に支出総額をとり、横軸に沿って順番につなげて示す」という手順が具体的に書かれている。手順の記述がそのままグラフの定義になっているので、ここを読めば確定する。
解答群には箱ひげ図とヒストグラムも混ぜられている。
ヒント:この設問で使う道具
グラフの種類は好みで選ぶものではなく、伝えたい関係によって一意に決まる。主要な4つを、その役割で区別しておく。
- 棒グラフ=項目ごとの値を棒の高さで表す。項目どうしの大小を比べるのに適する
- 円グラフ=全体を1つの円として、各項目が占める割合を扇形で表す。構成比を見せるのに適する
- 折れ線グラフ=横軸に時間などの順序のある量を取り、値を線でつなぐ。変化の向きと勢いを見せるのに適する
- 散布図=2つの量の組を点で打つ。2量の関係を見るのに適する
見分けの鍵は横軸に順序があるかどうかである。順序があり、隣どうしをつなぐ意味があるなら折れ線。順序がなく項目が並んでいるだけなら棒。全体を100%として分けたいなら円。
解答・解説を開く
🧭 方針
説明文のキーワードを1語だけ拾う。
「高さで表し」「大小比較」→ 高さで量を示す形式は棒グラフ。
「全体に対する割合」「構成比率」→ 全体を分ける形式は円グラフ。
「各年を順番に」「順番につなげて」→ つなげる操作を伴う形式は折れ線グラフ。
3つ目は特に、「つなげて示した」という動詞が折れ線グラフの定義そのものである。棒グラフでは棒をつなげない。散布図は点を打つだけでつながない。
箱ひげ図はばらつきの様子を示すもので、年ごとの推移を線で追う用途には合わない。ヒストグラムは値の分布を階級ごとの度数で示すもので、横軸は年ではなく階級になる。いずれも本文の手順と合わない。
✍️ 解答
- 値を高さで表し大小を比べるもの → 棒グラフ
- 全体に対する割合を表すもの → 円グラフ
- 年ごとの推移を線でつないで示すもの → 折れ線グラフ
用途で整理すると次のようになる。
| 見たいこと | 選ぶグラフ | 横軸 |
|---|---|---|
| 項目間の大小 | 棒グラフ | 項目 |
| 全体の構成比 | 円グラフ | なし(円全体が100%) |
| 時間による変化 | 折れ線グラフ | 時間 |
| 2量の関係 | 散布図 | 一方の量 |
| 値の分布 | ヒストグラム | 階級 |
| ばらつきと外れ値 | 箱ひげ図 | 系列 |
✅ 検算
グラフ名を思い出す経路とは別に、誤ったグラフを当てはめたときに何が表現できなくなるかで確かめる。
年ごとの支出総額を円グラフで描くとどうなるか。10年分の値が扇形に分かれ、各年が全体に占める割合が示される。しかしこれは「10年分を合計したうちの何割がその年か」という意味であり、増えているのか減っているのかは読めない。目的は変化の確認なので、円グラフでは達成できない。
棒グラフで描いた場合は、年ごとの高さが並ぶので大小は読める。ただし本文は「順番につなげて示した」と明記しており、棒はつながない。手順の記述と一致しない。
逆に、構成比を折れ線グラフで示そうとすると、項目間に順序がないため線でつなぐ意味が生じない。「全体に対する割合」という説明文と噛み合わない。
このように、3つの空欄それぞれで入れ替えると説明文が破綻することが確認でき、対応が一意であると裏づけられる。
💡 ここで効く一般則
グラフ選択の設問は、本文中の動詞を探す。 「つなげて」なら折れ線、「分けて」なら円、「並べて」なら棒。出題者は必ずどこかに手順を書いている。
横軸に順序があるかどうかで二分する。 順序があれば折れ線か散布図、なければ棒か円。この一段で候補が半分になる。
「割合」と「値」を区別する。 割合を見せたいのに実数を並べる、実数の推移を見たいのに構成比を出す、という取り違えが最も多い誤りである。
情報Ⅱでは、この話が可視化の設計へ広がる。同じデータでも、軸の取り方や基準点の置き方で受け手の印象は大きく変わる。縦軸を0から始めない折れ線は変化を誇張して見せる。どのグラフを選ぶかだけでなく、どう描くかが解釈を左右するという視点が加わる。
問22 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(A)後半
まず自分で解いてみる
複数の品目の年ごとの推移を示すグラフと、それに対応する数値表が与えられる。そのうえで5つの記述文について、当てはまるものをすべて選ばせる。
記述文は、単純な大小比較、複数条件の同時成立、期間を通じた単調性、差の倍率、といった異なる型で構成されている。型ごとに確認の手順が違うため、まとめて処理せず1つずつ潰す。
ヒント:この設問で使う道具
複数の選択肢から当てはまるものをすべて選ぶ形式は、1つずつ独立に真偽を判定する作業になる。部分点が出にくい形式なので、判定の根拠を数値で残しながら進めるのが安全である。
このとき最も多い誤りは、「傾向」の記述を感覚で通してしまうことである。「増加傾向にある」「減少し続けている」といった記述は、対象期間のすべての年で条件が成り立つかを1つずつ確かめないと判定できない。1年でも逆向きの動きがあれば「し続けている」は偽になる。
もう一つ注意すべきは、列挙が網羅的かどうかである。「増加しているのはAとBである」という記述は、AとBが増加していても、Cも増加していれば偽になる。挙げられていない項目に該当するものがないかまで確認する必要がある。
解答・解説を開く
🧭 方針
表の数値を使い、記述ごとに反例を探す。 すべてを検証するより、偽であることを示す1点を見つけるほうが速い。真であることを示すには全期間の確認が要るが、偽は1箇所で確定する。
判定の型ごとに手順を決めておく。
- 「〜であるのはAとBである」型 → AとBを確認したうえで、他に該当するものがないかを必ず見る
- 「〜し続けている」型 → 対象期間の隣り合う年をすべて比べる
- 「〜が最初である」型 → その年で条件が成立し、前年では成立しないことの両方を確認する
- 「差が〜倍以上」型 → 差を2つとも計算してから比を取る
✍️ 解答
数値に基づく判定は次のとおり。
「2020年以降に増加傾向なのは2品目である」型の記述
食料品と衣類等は確かに増加している。しかし医薬品も 185 → 197 → 213 → 233 → 250 と一貫して増加しており、列挙から漏れている。よって偽。
「2015年の2倍を超え、かつ他方を上回ったのが2020年が最初」型の記述
食料品の2015年は773で、その2倍は1546。2020年の食料品は1790でこれを超える。同年の衣類等は1618で、食料品1790がこれを上回る。両条件が成立する。前年2019年は食料品1135で1546に届かないため成立しない。よって2020年が最初であり、真。
「すべての年で最も多いのは食料品である」型の記述
2015年は食料品773に対し衣類等820で、衣類等のほうが多い。反例が存在するので偽。
「最大の年以降は毎年減少し続けている」型の記述
家電の最大は2020年の1302で正しい。しかし2022年1061から2023年1182へ増加しており、単調減少ではない。よって偽。
「差が2倍以上になっている」型の記述
2015年の食料品と家電の差は 773 − 646 = 127 で200未満。2024年の差は 2953 − 1160 = 1793。127の2倍は254であり、1793はこれを大きく上回る。よって真。
したがって当てはまるのは、2番目と5番目の記述である。
✅ 検算
判定を読み返すのではなく、偽と判定した3つについて反例を再掲し、真と判定した2つについて境界を確かめる。
偽の根拠は次の3点に集約される。医薬品が列挙から漏れている点、2015年に衣類等が食料品を上回る点、家電が2022年から2023年にかけて増加している点。いずれも表の隣り合う2つの数値だけで示せる単純な反例であり、解釈の余地がない。
真とした2つは境界が際どくないかを見る。2020年の判定では、食料品1790に対し基準1546で差は244、衣類等1618に対して差は172。どちらも余裕がある。前年2019年は1135で基準1546に411足りず、こちらも明確に不成立である。境界付近の微妙な判定ではない。
差の倍率については、2倍の基準254に対して実際の差が1793であり、7倍近い。仮に2015年の差を読み違えて127ではなく150としても、2倍は300で結論は変わらない。読み取り誤差に対して頑健である。
💡 ここで効く一般則
「すべて選べ」形式は、偽を先に潰す。 反例は1点で確定するが、真の証明には全期間の確認が要る。作業量が小さいほうから片付ける。
「〜であるのはAとBである」を見たら、C以降を必ず確認する。 挙げられた項目が正しくても、漏れがあれば偽になる。この型の誤答が最も見落とされやすい。
「〜し続けている」は隣接する年をすべて比べる。 全体として下がっていても途中で一度上がれば偽である。グラフの見た目の印象で判断すると必ず取り違える。
「〜が最初である」は前年の不成立まで確認する。 その年で成立することだけを見て丸をつけると、実はもっと前から成立していた場合を取り逃がす。
情報Ⅱでは、この作業が主張とデータの対応づけとして扱われる。同じデータから複数の主張が導けるとき、どの主張がデータに支えられ、どれが飛躍かを切り分ける。ここで練習した「反例を1つ挙げて棄却する」手続きは、その最も基本的な道具である。
問23 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(B)前半
まず自分で解いてみる
3つの機器について、10年分の割合を並べた表が与えられ、そこから読み取れる記述をすべて選ばせる。
選択肢には、表から直接検証できる記述と、表の測定対象を超えた記述が混ぜられている。後者は数値の上では辻褄が合うように作られているものもあり、計算だけで判定すると引っかかる。
さらに「1位が入れ替わった年」を問う記述が複数あり、入れ替わりがどの年に起きたかの正確な特定が求められる。
ヒント:この設問で使う道具
データから何が言えて何が言えないかを切り分けるとき、決定的なのはその表が何を測ったものかである。
本問の表が示すのは「物を購入する際に最も多く使用した機器の割合」である。ここから読めるのは、購入時にどの機器が主に使われたかの分布だけである。読めないものを列挙しておく。
- 所有率(その機器を持っている世帯の割合)
- 所有台数
- 将来の見通し
- 使用の総量(最も多く使ったもの以外は数に入らない)
「最も多く使用した」という限定が付いている以上、その機器を使ったが1位ではなかった場合は計上されない。したがって割合が低いことは、使われていないことを意味しない。
また、割合の合計が100%にならない点にも注意する。選択肢に挙がっていない機器が残りを占めている。
解答・解説を開く
🧭 方針
2段階で判定する。 まず「その記述は表の測定対象の範囲内か」を見て、範囲外なら数値を見ずに切る。範囲内のものだけ数値で検証する。
この順序が重要である。所有率や台数の記述は、数値がどうであれこの表からは導けない。先に切っておけば、無駄な計算をしなくて済む。
範囲内の記述については、10年分すべてを確認する。「すべての年において」という限定が付いていれば、1年でも反例があれば偽になる。
1位の入れ替わりは、年ごとに最大値がどれかを追う。2つの系列が接近する年が境界候補になるので、そこを重点的に見る。
✍️ 解答
測定対象を超えていて切れるもの
「その機器を持っている世帯が年々増えている」という記述は、所有率の話である。表は購入時に最も多く使用した機器の割合であり、所有の有無は測っていない。よって読み取れない。
「今後〜される可能性は低い」という記述は将来の予測であり、過去10年の実績から論理的には導けない。よって読み取れない。
「所有している台数が他方の台数の2倍である」という記述も台数の話である。割合が約2倍であることは事実だが、割合と台数は別の量なので導けない。数値が合っているように見える分、最も紛らわしい。
数値で検証するもの
「すべての年でタブレットが他の2つより低い」——タブレットは10年を通じて0.8〜1.4の範囲にあり、スマートフォンの最小は4.9、パソコンの最小は10.8。全年で最小であり、真。
「タブレットの割合はすべての年で1.5%以下」——タブレットの最大は1.4であり、1.5を超える年はない。真。
「1位が入れ替わったのは2020年で、その年の1位は2位の5.8倍」——入れ替わりの年は正しい。2019年まではパソコンが最大(13.3対13.0で僅差ながらパソコン)、2020年にスマートフォン18.7がパソコン12.9を上回る。しかし18.7は12.9の約1.45倍であり、5.8倍ではない。倍率が誤りなので偽。
「1位でなくなったのは2019年で、それ以降はスマートフォンが1位」——2019年はパソコン13.3、スマートフォン13.0で、まだパソコンが1位である。入れ替わりは2020年。偽。
したがって当てはまるのは、タブレットが全年で最も低いという記述と、タブレットが1.5%以下という記述の2つである。
✅ 検算
判定を読み返すのではなく、1位の推移を独立に一覧化することで、入れ替わりの年を再確認する。
| 年 | パソコン | スマートフォン | 1位 |
|---|---|---|---|
| 2015 | 10.8 | 5.4 | パソコン |
| 2016 | 12.6 | 6.0 | パソコン |
| 2017 | 12.1 | 7.7 | パソコン |
| 2018 | 13.3 | 11.0 | パソコン |
| 2019 | 13.3 | 13.0 | パソコン(差0.3) |
| 2020 | 12.9 | 18.7 | スマートフォン |
入れ替わりは2019年から2020年にかけてであり、1位が変わった年は2020年で確定する。2019年は差が0.3しかなく、ここを2019年と誤認させるのが出題の狙いである。僅差の年こそ数値で確かめる必要がある。
倍率も独立に計算する。 2020年の1位18.7を2位12.9で割ると1.45。5.8倍になるには2位が3.2程度でなければならず、実際の12.9とかけ離れている。倍率の記述が偽であることは、割り算1回で確定する。
タブレットの2つの記述については、最大値と最小値だけ見れば足りる。最大1.4は1.5以下であり、かつ他系列の最小(スマートフォン4.9)を下回る。両端の確認で全年の判定が済む。
💡 ここで効く一般則
表の見出しを最初に読み、「何を測ったか」を確定させる。 「最も多く使用した機器の割合」は、所有率でも台数でも使用総量でもない。ここを押さえれば、数値を見る前に切れる選択肢が出てくる。
割合と実数は別物である。 割合が2倍でも実数が2倍とは限らない。母数が示されていなければ実数には戻せない。
僅差の年は必ず数値で確かめる。 グラフや印象では順位が逆に見えることがある。差が1未満の年が境界候補になる。
「すべての年で」型の記述は、最大値と最小値だけで判定できることが多い。 全年を1つずつ見る前に、両端で決着がつかないかを考える。
情報Ⅱでは、この切り分けが調査設計の議論につながる。何を質問したかによって、得られたデータから答えられる問いの範囲が決まる。「最も多く使用した機器」を尋ねた調査では、複数の機器を併用する実態は捉えられない。測っていないことは、どれだけデータを眺めても出てこないという制約が出発点になる。
問24 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(C)前半
まず自分で解いてみる
まず四分位範囲の定義そのものを選択肢から選ばせ、続いてその定義に基づいて4系列すべてについて外れ値の有無を判定させる。
与えられるのは、系列ごとの最小値・第1四分位数・中央値・平均値・第3四分位数・最大値をまとめた表である。個々のデータは与えられない。つまり境界と最大値・最小値だけを比べれば判定できるという設計になっている。
選択肢は「どの系列に外れ値があるか」の組み合わせで並び、「4つとも外れ値はない」「4つとも外れ値がある」の両極も含まれている。
ヒント:この設問で使う道具
データを小さい順に並べて4等分したときの区切りが四分位数である。小さいほうから第1四分位数、中央値(第2四分位数)、第3四分位数と呼ぶ。
四分位範囲は、第3四分位数から第1四分位数を引いた値である。
これはデータの真ん中半分がどれだけ広がっているかを表す。最大値−最小値(範囲)と違い、極端な値に引きずられない。外れ値の判定に使うのに適しているのは、この性質による。
外れ値の判定はこの四分位範囲を1.5倍して境界を作る。
上側の境界以上、または下側の境界以下のデータを外れ値とみなす。1.5という係数は慣習的に定められたもので、理論的な必然性があるわけではない。
解答・解説を開く
🧭 方針
定義は素直に選ぶ。四分位範囲は であり、中央値や平均値は関与しない。中央値を含む選択肢、平均値を含む選択肢はすべて排除できる。
判定は系列ごとに3ステップの機械作業にする。
1. を計算する
2. これを1.5倍して、 に足し、 から引く
3. 最大値が上側の境界未満、最小値が下側の境界より大きければ外れ値なし
ここで効率が上がる考え方がある。最大値と最小値が境界の内側にあれば、他のデータはすべて内側にある。 最大値より大きいデータも、最小値より小さいデータも存在しないからだ。したがって両端2点だけを見れば足りる。
✍️ 解答
四分位範囲の定義 → 第3四分位数 − 第1四分位数
外れ値の判定。系列ごとに境界を計算して両端と比べる。
| 系列 | 四分位範囲 | 下側境界 | 上側境界 | 最小値 | 最大値 | 判定 | ||
|---|---|---|---|---|---|---|---|---|
| タブレット | 1.13 | 1.38 | 0.25 | 0.755 | 1.755 | 0.80 | 1.40 | なし |
| スマートフォン | 8.53 | 20.18 | 11.65 | −8.945 | 37.655 | 4.90 | 23.40 | なし |
| パソコン | 11.75 | 13.20 | 1.45 | 9.575 | 15.375 | 10.80 | 13.40 | なし |
| ダウンロード版 | 155.25 | 336.25 | 181.00 | −116.25 | 607.75 | 84.00 | 404.00 | なし |
すべての系列で、最小値が下側境界より大きく、最大値が上側境界より小さい。したがって 4つとも外れ値はない。
最も際どいのはタブレットで、下側境界0.755に対して最小値0.80と差が0.045しかない。四分位範囲が小さい系列ほど境界が狭くなるため、値の絶対的な大きさではなくばらつきの狭さが判定を左右する。
✅ 検算
計算をやり直すのではなく、境界と両端の位置関係を別の形で確かめる。
上側について、外れ値が無い条件は次のように書き換えられる。
すなわち「 から最大値までの距離」が「四分位範囲の1.5倍」より短ければよい。この形で各系列を見る。
| 系列 | 最大値 − | 四分位範囲 × 1.5 | 判定 |
|---|---|---|---|
| タブレット | 0.02 | 0.375 | 内側 |
| スマートフォン | 3.22 | 17.475 | 内側 |
| パソコン | 0.20 | 2.175 | 内側 |
| ダウンロード版 | 67.75 | 271.50 | 内側 |
すべて左が右より小さく、先の表と同じ結論になった。引き算の向きを変えた独立な確認である。
下側も同様に「 − 最小値」と比べる。タブレットは 1.13 − 0.80 = 0.33 で 0.375 より小さく、内側。スマートフォンは 3.63、パソコンは 0.95、ダウンロード版は 71.25 で、いずれも境界の幅より小さい。
係数を取り違えた場合も見ておく。1.5ではなく1.0で計算すると、タブレットの下側境界は 1.13 − 0.25 = 0.88 となり、最小値0.80がこれを下回って外れ値と判定されてしまう。係数の取り違えが結論を変える系列が実際に含まれており、1.5を正確に使う必要があることが確認できる。
💡 ここで効く一般則
四分位範囲は 。中央値も平均値も入らない。 名前に「四分位」とあるとおり、四分位数だけで決まる。
外れ値の判定は最大値と最小値だけ見れば足りる。 両端が境界の内側なら、間のデータは全部内側である。個々のデータが与えられていなくても判定できるのはこのためで、要約統計量の表だけが与えられる出題はこの性質を前提にしている。
「最大値 − 」と「四分位範囲 × 1.5」を直接比べる形に書き換えると計算が軽い。 境界の値そのものを求めなくてよく、引き算と掛け算が各1回で済む。検算にも使える。
情報Ⅱでは、この判定がデータの前処理として位置づけられる。外れ値を機械的に除くのではなく、測定ミスなのか、実際に起きた稀な事象なのかを見極める必要がある。1.5倍という係数に理論的必然性がない以上、判定はあくまで候補の抽出であって、除外の決定ではない。この区別が実務では決定的になる。
問25 京都産業大学 一般選抜入試[前期日程]2026 大問Ⅴ 設問(C)後半
まず自分で解いてみる
3つのことが順に問われる。表から最大値とその年を読み、次に2つの量の関係を表す散布図を選び、最後にそこから言える結論を選ぶ。
散布図の候補は3つあり、軸の目盛りの範囲が互いに違う。結論の候補は3つで、正の相関を述べたもの、負の相関を述べたもの、向きを取り違えたものが並ぶ。
一連の流れが「データを読む → 可視化する → 解釈する」という分析の手順そのものになっている。
ヒント:この設問で使う道具
相関は、2つの量が一緒に動く傾向を指す。一方が大きい年にもう一方も大きければ正の相関、逆向きに動けば負の相関である。
散布図では、点の集まりが右上がりなら正、右下がりなら負になる。ここで必ず押さえるのが軸の対応である。散布図を選ぶ問題では、点の並び方より先に両軸のラベルと目盛りの範囲を見る。データが取りうる範囲を収められない軸のグラフは、点の形がどれだけ似ていても正答になりえない。
もう一点、相関は因果ではない。正の相関があっても、一方がもう一方を引き起こしたことにはならない。設問が「〜な年では〜も高い」という共変の記述にとどめているのは、この区別を守っているからである。「〜だから〜が増えた」と書かれていれば、それは相関から言える範囲を超えている。
解答・解説を開く
🧭 方針
最大値は表から直接読む。 該当する系列の10年分を見て最大の値とその年を特定する。選択肢は2刻みの概数なので、小数第1位を四捨五入して最も近いものを選ぶ。
散布図は軸の範囲で絞る。 横軸にとる量が取りうる値の幅を確認し、それを収められない候補を落とす。ここで大半が消えるので、点の並びを細かく見る必要はほとんどない。残った候補については、両端の年の点の位置が実際の値と合うかを1点だけ確かめる。
結論は相関の向きから決める。 本文で正の相関が確認されたと述べられているので、それを言い換えた記述を選ぶ。因果の言葉が混じっていないかも同時に見る。
✍️ 解答
最大値とその年
該当する系列は10年を通じて増加し続けており、最大は最終年である 2024年。その値は23.4なので、概数としては 約23%。
散布図の選択
横軸にとる割合は、10年間で約5.4から約23.4まで動く。したがって横軸は少なくとも24程度まで目盛りが必要である。
| 候補 | 横軸の範囲 | 判定 |
|---|---|---|
| 目盛りが16まで | 23.4を収められない | 不可 |
| 目盛りが24程度・点が11付近から始まる | 最小値5.4と合わない(別の機器の値) | 不可 |
| 目盛りが26まで・点が5付近から始まる | 範囲・両端とも一致 | 正しい |
3つ目が正答である。点は右上がりに並び、正の相関を示す。
結論
正の相関があるので、割合が高い年には支出金額の月平均も高いという記述が正しい。
「低い年で高い」は負の相関の記述、「高い年で低い」も負の相関の記述であり、いずれも本文の内容と逆になる。
✅ 検算
散布図を見比べるのではなく、両端の年の点の座標を実際の数値と突き合わせる。
最初の年は割合が約5.4、最終年は約23.4である。正しい散布図では、最も左の点が横軸5付近、最も右の点が横軸23付近になければならない。目盛りが16までの候補では右端の点が軸の外に出てしまい、そもそも描けない。点が11付近から始まる候補は、10年間の最小値が11ということになり、表の値と食い違う。
縦軸側でも確認する。 ダウンロード版の支出金額の月平均は、10年間でおよそ84円から404円まで動く。要約統計量の表に示された最小値・最大値とも一致しており、縦軸が400を超える目盛りを持つ必要がある。この条件も正答の候補は満たしている。
相関の向きを独立に確かめる。 割合が最も低い年は支出も低く、割合が最も高い年は支出も高い。両端だけを見ても右上がりであることが分かり、正の相関という本文の記述と整合する。したがって結論として選ぶべきは、両者が同じ向きに動くことを述べた記述である。
因果の混入がないかも見る。 3つの結論候補はいずれも「〜な年では〜」という形で、どちらが原因かには触れていない。相関から言える範囲に収まっており、この点では差がつかない。差がつくのは向きだけである。
💡 ここで効く一般則
散布図を選ぶ問題は、点の形より先に軸を見る。 データの取りうる範囲を収められない軸は即座に落とせる。軸の範囲だけで大半の候補が消える。
両端の点で照合する。 全体の形を見比べるより、最小値と最大値に対応する2点の位置を確かめるほうが速く、確実である。
相関の向きは「同じ向きに動くか」だけを見る。 高い年に高いなら正、高い年に低いなら負。言い換えの候補は必ずこの2通りで作られる。
相関を述べる文に因果の語を混ぜない。 「〜だから増えた」と書かれていたら、それは相関の結果から言える範囲を超えている。設問がこの点を突いてくることもある。
情報Ⅱでは、この先に擬似相関の議論が来る。2つの量に相関があっても、背後に共通の第三の要因があるだけかもしれない。本問でも、割合と支出の両方が「年が進むこと」に伴って増えているだけ、という説明が成り立つ。時系列データの相関はとくにこの罠にかかりやすく、相関係数が高いことは関係の存在を示すが、その正体までは示さないという限界を意識しておきたい。