本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成21年度 春期 応用情報技術者試験問題と解説

問4

長さnの文字列c12・・・cnの中に、部分文字列は全部で幾つあるかを表す式はどれか。ここで、空文字列 (長さ0の文字列) とc12・・・cn自身も部分文字列とみなす。例えば、長さ3の文字列c123の中に、部分文字列はc1、 c2、 c3、 c12、 c23、 c123及び空文字列の7個がある。

ア 2n−1

イ n(n+1) /2+1

ウ n(n−1) +1

エ n! +1


正解


解説

n = 1の時: 空文字と、c1 の2個
n = 2の時: 空文字と、c1、 c2、 c12の 4個
n = 3の時: 問題より7個
になる選択肢を選べばよい。

ア 21−1 = 1
22−1 = 3
23−1 = 7

イ 1(1+1) /2+1 = 2
2(2+1) /2+1 = 4
3(3+1) /2+1 = 7

ウ 1(1−1) +1 = 1
2(2−1) +1 = 3
3(3−1) +1 = 7

エ 1! +1 = 2
2! +1 = 3
3! +1 = 7

【別解】
n文字の文字列の時、
長さ0の文字、すなわち空文字の個数は1個。
長さ1の文字はn個。
長さ2の文字はn−1個。
長さ3の文字はn−2個。
・・・
長さn−1の文字は2個。
長さnの文字は1個。
したがって、部分文字列は
1+n+ (n−1) + (n−2) + ・・・ + 2 + 1
= 1+n(n+1) /2
n(n+1) /2 +1 となる。

問3 目次 問5