模擬試験で同じ問題番号が重ならないように対応

模擬試験は、複数の年度の過去問から分野ごとに問題を選んで組み立てています。


このとき、たとえば令和6年度の「問1」と令和4年度の「問1」のように、元の試験で同じ番号だった問題が、1つの模擬試験の中に一緒に入ってしまうことがありました。


これを避けるため、生成のロジックを見直しました。


まず、問題文に書かれた「問1」のような表示をそのまま解析する方法も検討しましたが、表記が試験によって「問1」だったり「No.1」だったりとまちまちで、正確に読み取れないことが分かりました。そこで、問題文の中身には手を触れず、別の方法で番号を管理することにしました。


具体的には、各過去問の問題がスプレッドシート上で何問目にあたるかを、あらかじめ別の列に記録しておく方式です。これをもとに、模擬試験を組み立てる際、同じ番号の問題が重ならないように選ぶようにしました。あわせて、同じ年度の問題が連続して選ばれないようにする調整も加え、模擬試験の中でなるべく色々な年度から問題が散らばるようにしています。


過去に一部の問題を「不適切問題」として削除している試験もあり、その場合は途中の番号が欠けています。欠けた番号をそのままにしておくと、以降の問題番号がずれてしまうため、番号を記録する列を実際にスプレッドシート上で確認し、欠番がある回を洗い出して手直しする作業も行いました。この確認作業には数式を使い、本来揃っているべき問題数と実際の数を突き合わせて、ずれている回を見つけられるようにしています。


また、この対応を入れたあとも、条件によっては同じ番号が重なって出題されることが残っています。過去問の在庫が少ない分野では、重複を避けようとすると必要な問題数を確保できなくなるため、その場合は番号の重複よりも出題数を優先する作りにしています。年度によって問題の分類が揺れている場合も、同様に重複が起きやすくなります。この点については、在庫の状況を見ながら引き続き調整していきます。