a, c, h, r, t の5文字すべてを使って辞書式に配列するとき、以下の問いに答えます。 (1) 文字列 "earth" は何番目か。 (2) 55番目にあたる文字列を求めよ。
2025/5/19
1. 問題の内容
a, c, h, r, t の5文字すべてを使って辞書式に配列するとき、以下の問いに答えます。
(1) 文字列 "earth" は何番目か。
(2) 55番目にあたる文字列を求めよ。
2. 解き方の手順
(1) 文字列 "earth" が何番目かを求めます。
辞書式に並べるので、まずアルファベット順に a, c, e, h, r, t となります。
* 先頭が 'a' である文字列の数は、残りの4文字の並び順なので、4! = 4 \* 3 \* 2 \* 1 = 24 個。
* 先頭が 'c' である文字列の数は、同様に 4! = 24 個。
* 先頭が 'e' で始まる文字列について考えます。'earth' は 'e' で始まる文字列の中で何番目かを調べます。
* 'ea' で始まる文字列の数は、残りの3文字の並び順なので、3! = 3 \* 2 \* 1 = 6 個。
* 'ec' で始まる文字列の数は、同様に 3! = 6 個。
* 'eh' で始まる文字列の数は、同様に 3! = 6 個。
* 'ear' で始まる文字列の数は、残りの2文字の並び順なので、2! = 2 \* 1 = 2 個。
* 'eart' で始まる文字列の数は、残りの1文字の並び順なので、1! = 1 個。
* 'earth' は 'earth' なので、1個。
したがって、"earth" より前に来る文字列の数は、24 + 24 + 6 + 6 + 6 + 2 + 0 = 68 個。
よって、"earth" は 24 + 24 + 6 + 6 + 6 + 2 + 1 = 69 番目です。
(2) 55番目にあたる文字列を求めます。
* 先頭が 'a' である文字列の数は、4! = 24個。
* 先頭が 'c' である文字列の数は、4! = 24個。
合計で48個。55番目はまだ'a'か'c'ではじまる文字列ではありません。
* 先頭が'h'である文字列について考えます。 48+4! = 48+24 = 72となり55を超えました。55番目の文字列は'h'で始まる文字列です。
'h'で始まる文字列の中で何番目かを考えます。 55 - 48 = 7番目の文字列です。
* 'ha' で始まる文字列の数は、3! = 6個。よって、'ha'で始まる文字列の次は 'hc'ではじまります。
* 7番目の文字列は'hc'で始まる文字列なので, 7 - 6 = 1番目です。
'hc'で始まる文字列のうち一番最初の文字列を求めます。 残りの文字はa, r, tなので辞書順に並べるとart。よって文字列は hcart となります。
3. 最終的な答え
(1) 69番目
(2) hcart