文字の出現割合を求める処理【基本情報技術者試験 科目B サンプル問題】

(令和4年度4月公開) 基本情報技術者試験 サンプル問題 科目B 問5のブログのアイキャッチ画像 科目B 公開問題
広告

← 科目Bの公開問題一覧へ戻る

 基本情報技術者試験の科目Bのサンプル問題を題材に,文字の出現割合を求める処理について学習します。この問題では,ある文字の次に特定の文字が出現する割合を,文字列の出現回数から求める処理を確認します。

広告

(令和4年度4月公開) 基本情報技術者試験 サンプル問題 科目B 問5

 次のプログラム中の       に入れる正しい答えを,解答群の中から選べ。

 任意の異なる2文字を c1,c2 とするとき,英単語群に含まれる英単語において,c1 の次に c2 が出現する割合を求めるプログラムである。英単語は,英小文字だけから成る。英単語の末尾の文字が c1 である場合,その箇所は割合の計算に含めない。例えば,図に示す4語の英単語 “importance”,“inflation”,“information”,“innovation” から成る英単語群において,c1 を “n” ,c2を “f” とする。英単語の末尾の文字以外に “n” は五つあり,そのうち次の文字が “f” であるものは二つである。したがって,求める割合は,2 ÷ 5 = 0.4 である。c1 と c2 の並びが一度も出現しない場合,c1の出現回数によらず割合を0と定義する。

「(令和4年度4月) 基本情報技術者試験 サンプル問題 科目B 問5」の問題画像01

 プログラムにおいて,英単語群は Words 型の大域変数 words に格納されている。クラス Words のメソッドの説明を,表に示す。本問において,文字列に対する演算子 “+” は,文字列の連結を表す。また,整数に対する演算子 “÷” は,実数として計算する。

「(令和4年度4月) 基本情報技術者試験 サンプル問題 科目B 問5」の問題画像02

〔プログラム〕

○大域: Words: words  /* 英単語群が格納されている */

/* c1の次にc2が出現する割合を返す */

○実数型: prob(文字型: c1,文字型: c2)

 文字列型: s1 ← c1の1文字だけから成る文字列

 文字列型: s2 ← c2の1文字だけから成る文字列

 if (words.freq(s1 + s2) が 0 より大きい)

  return      

 else

  return 0

 endif

解答群

ア (words.freq(s1) - words.freqE(s1)) ÷ words.freq(s1 + s2)

イ (words.freq(s2) - words.freqE(s2)) ÷ words.freq(s1 + s2)

ウ words.freq(s1 + s2) ÷ (words.freq(s1) - words.freqE(s1))

エ words.freq(s1 + s2) ÷ (words.freq(s2) - words.freqE(s2))

【解答】

【解説】

このプログラムは,文字 c1 の次に文字 c2 が出現する割合を求める。例えば,c1 が n,c2 が f の場合,nf という並びが出現した回数を調べると,c1 の次に c2 が出現した回数が分かる。したがって,分子には words.freq(s1 + s2) を用いる。一方,分母には,次の文字が存在する c1 の個数を用いる。words.freq(s1) は c1 の出現回数全体を表すが,単語の末尾にある c1 は次の文字がないため,割合の計算に含めない。そのため,words.freq(s1) から words.freqE(s1) を引く。したがって,空欄には

words.freq(s1 + s2) ÷ (words.freq(s1) - words.freqE(s1))

が入る。

【参考】

「(令和4年度4月) 基本情報技術者試験 サンプル問題 科目B 問5」の解答画像

この問題のポイント

 この問題から学べることは,

  • 文字列の中から特定の文字の出現回数を求める方法
  • 2つの文字を連結して,文字の並びの出現回数を求める方法
  • 単語の末尾にある文字を除いて,割合を計算する方法
  • 出現回数から,ある文字の次に特定の文字が出現する割合を求める方法
  • 条件分岐によって,対象となる文字の並びが存在しない場合に0を返す処理

です。特に,割合を求めるときは,分子にc1の次にc2が出現する回数,分母に次の文字が存在するc1の出現回数を用いることを理解しておきましょう。

基本情報技術者試験の学習におすすめの参考書

基本情報技術者試験の合格を目指す方におすすめの参考書です。

令和08年 イメージ&クレバー方式でよくわかる かやのき先生の基本情報技術者教室
基礎理論からコンピュータ・ネットワーク・データベースまで、基本情報技術者試験の全範囲をわかりやすく学べる定番テキストです。図解が豊富で、初学者にもおすすめです。

キタミ式イラストIT塾 基本情報技術者 令和08年
イラストを使った解説が特徴の人気参考書です。基礎理論の考え方や計算問題もイメージで理解しやすく、独学学習との相性が良い一冊です。

令和08年 基本情報技術者 合格教本
試験範囲を体系的に学習したい方におすすめの教科書です。基礎理論の各テーマも丁寧に解説されており、理解を深めながら学習を進められます。

学習のお役に立ちましたら

この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。

よろしければ、このサイトを応援いただけますと嬉しいです。

※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。

広告