• ベストアンサー

順列と組み合わせ?

情報処理関係の問題で、以下の問題があるのですが、こういった計算問題が苦手なので、解放の仕方をご教授いただければ助かります。 よろしくお願いいたします。 2種類の文字“X”,“Y”を1個以上,最大n個並べた符号を作る。60通りの符号を作るときのnの最小値は幾らか。

質問者が選んだベストアンサー

  • ベストアンサー
  • info22
  • ベストアンサー率55% (2225/4034)
回答No.7

X,Yから1つとる(符号長1の)順列(2P1)=2 X,Y X,Yから2つ並べる(符号長2の)順列(2P1)^2=2^2 XX,XY,YX,YY X,Yから3つ並べる(符号長3の)順列(2P1)^3=2^3 XXX,YYY,XXY,XYX,YXX,XYY,YXY,YYX ... X,Yからn個並べる(符号長nの)順列(2P1)^n=2^n したがって 符号長1~nまでの符号数の和は等比数列の和となるから 2+2^2+2^3+ ... +2^n = 2{(2^n)-1}/(2-1) =2{(2^n)-1} nの最小値は以下の不等式を満たす最小のnになります。 2{(2^n)-1}≧60 から (2^n)-1≧30 2^n≧31 n=5で2^n=32,n=4で2^n=16なので最小のnは n=5 と求まります。

leonodon
質問者

お礼

ありがとうございます。 なるほどよくわかりました。

その他の回答 (7)

  • arrysthmia
  • ベストアンサー率38% (442/1154)
回答No.8

No.7 の方法で 60 種類の符号が表現できるためには、 “X”,“Y”の 2 種類の文字だけでなく、 “X”,“Y”,区切り の 3 種類の文字が必要です。

leonodon
質問者

お礼

ありがとうございます。

  • arrysthmia
  • ベストアンサー率38% (442/1154)
回答No.6

符号が固定長なら、2^n ≦ 60 であればよいのだから、最小の n は 6。 文字の種類 M が多ければ、M^n - 60 の差を活用して、一部の符号の 文字数を減らすことができる。「最大n個並べた符号」の「最大」には、 その辺の含みがあると思われるが、文字が2種類では、頭語条件の為に かえって増えるビット数のほうが多いから、固定長にしておくほうが 符号の最大字数は小さくて済む。

leonodon
質問者

お礼

ありがとうございます。

  • wacchin
  • ベストアンサー率0% (0/2)
回答No.5

あ、間違えました・・・ 「求めるのは最大値が60を超える最小のnを求めればよい。」 のではなく 「和が60を超える最小のnを求めればよい。」 ですね(汗) ですから、         n!    Σ(k=0,n) ―――――――        k!(n-k)! を考えなくてはいけません n=1のとき2 n=2のとき4 ・ ・ ・ n=5のとき32 n=6のとき64 となるので求める最小値は n=6 ですね。

leonodon
質問者

お礼

ありがとうございます。 助かりました。

回答No.4

因みに、文字の種類が何種類でも、考え方は同じ。 2種類の文字“X”,“Y”⇒2進数で何桁になるか考える 3種類の文字“X”,“Y”,“Z”⇒3進数で何桁になるか考える 4種類の文字“W”,“X”,“Y”,“Z”⇒4進数で何桁になるか考える (中略) 9種類の文字“R”,“S”,“T”,“U”,“V”,“W”,“X”,“Y”,“Z”⇒9進数で何桁になるか考える 10種類の文字“Q”,“R”,“S”,“T”,“U”,“V”,“W”,“X”,“Y”,“Z”⇒10進数で何桁になるか考える 「情報処理」とは、このような「問題文に書かれた情報を読み取り、解を求めるのに最も簡単な方法が使えるよう、読み取った情報を変換する処理」の事を言います。 「解を求める」のが情報処理の本質なのではなく「情報を変換する」のが情報処理の本質なのです。 そして「正しい方向に情報を変換する」をある程度の回数繰り返すと「もう変換できない状態」になり、その「もう変換できない状態が、求めたい解そのもの」になります。これを「情報処理」と言います。

leonodon
質問者

お礼

ありがとうございます。

  • wacchin
  • ベストアンサー率0% (0/2)
回答No.3

この問題は、XとYをあわせてn個並べるということですよね? それともXとYをそれぞれn個ずつということですか? 前者と見て解きます。 XとYの個数を X:k個 Y:n-k個   (ただし、0≦k≦n) ここでXとYの並び方は、     n!    ―――――――   k!(n-k)! これの最大値が60を超える最小のnを求めればよい。 ここで、最大値をとるとき k= n/2 (nが偶数のとき)   (n±1)/2 (nが奇数のとき) は明らかであるから、それを考慮に入れて、 n=1のとき最大値は1 n=2のとき最大値は2 ・ ・ ・ n=7のとき最大値は35 n=8のとき最大値は70 以上より 求めるnの値は n=8 数値代入法になってしまうのが煩わしいですが・・・

leonodon
質問者

お礼

ありがとうございます。

回答No.2

>2種類の文字“X”,“Y”を1個以上,最大n個並べた符号を作る。60通りの符号を作るときのnの最小値は幾らか。 この問題は「10進数で0から59までの60個の数値を2進数で表わすには、最低、何ビットの2進数が必要か」と言っているのと同じです。 2進数1桁⇒並べる数nが1の時、最大2通りの符号が作れる⇒60通りには不足 2進数2桁⇒並べる数nが2の時、最大4通りの符号が作れる⇒60通りには不足 2進数3桁⇒並べる数nが3の時、最大8通りの符号が作れる⇒60通りには不足 2進数4桁⇒並べる数nが4の時、最大16通りの符号が作れる⇒60通りには不足 2進数5桁⇒並べる数nが5の時、最大32通りの符号が作れる⇒60通りには不足 2進数6桁⇒並べる数nが6の時、最大64通りの符号が作れる⇒60通り以上作れる という訳で「nの最小値は6」が答え。 順列も組み合わせも不要です。 てゆーか、こんな風に複雑に考えなくても、問題文は「10進数の59は、2進数で何ビットになるか」と言っているのと同じですから 59(10進)=111011(2進) で、6ビットになりますから、答えは「nの最小値は6」になります。

leonodon
質問者

お礼

ありがとうございます。

  • kobold
  • ベストアンサー率62% (20/32)
回答No.1

2種類の文字“X”,“Y”を1個以上,最大n個並べた符号の通りをa_nと置いて漸化式を作ってみたら?

leonodon
質問者

お礼

ありがとうございます。

関連するQ&A