|
uchinyan |
|
#28752
>以前の考え方は間違ってるようで削除しました。。。Orz 実は、以前のお考えの方向での計算をやってみました。簡単ではないのですが、次のようになるようです。 十角形の頂点に反時計回りに 0 〜 9 の数字を振ります。 題意を満たす四桁の数を abcd とします。 a は何でもいいので 10 通り。以下、a を 0 に固定して考え、その結果を 10 倍します。 ・c = 1, 9 となる場合 十角形では、c が a の左右どちらかの隣に来る場合です。 c = 1 の場合と c = 9 の場合は、対称性より同じです。 図をにらみながら考えると、b は a, c の隣には来れないので 6 通り。 さらに d は、c の空いてる隣に来れないだけなので、各 b に対して 6 通りずつあります。 そこで、2 * 6 * 6 = 72 通り。 ・d = 1, 9 となる場合 十角形では、d が a の左右どちらかの隣に来る場合です。 d = 1 の場合と d = 9 の場合は、対称性より同じです。 ただし、c = 9, 1 となる場合は既に数えているので除きます。 先ほどと同様に考えればいいのですが、今度は場合分けが発生し、あまり簡単ではなく、図をにらみながら数えると、 2 * (1 * 5 + 1 * 4 + 4 * 3 + 1 * 4) = 2 * 25 = 50 通り。 ・それ以外の場合 c, d が a の隣に来ない場合で、b も a の隣に来ないので、#28752の >補題:1〜7 までの数を重複許さず3個並べるとき、隣りあう数にならないような場合の数は? になります。もっとも、折角の十角形の図なので元の b, c, d = 2 〜 8 で図を見ながら考えました。 しかし、私もあまりうまい方法を思いつかず、結局、図をにらみながら地道に数えたところ、 b = 2, 8 : 2 * (4 * 3 + 1 * 4) = 32 通り b = 3, 7 : 2 * (3 * 3 + 1 * 4) = 26 通り b = 4, 5, 6 : 3 * (2 * 3 + 2 * 4) = 42 通り 結局、32 + 26 + 42 = 100 通り。 これは、スモークマンさんの結果と一致しているようです。 以上で、場合分けはすべてです。結局、求めるものは、 10 * (72 + 50 + 100) = 10 * 222 = 2220 通り になります。 正解は出たものの、少なくともこの考え方では、かえって面倒です... なお、漸化式まがいの解法も考えてみましたが、やはりいまひとつかな。 ポイントは、マサルさんの考え方 or 私の#28742の解法で指摘したことです。 ただ、一般化は簡単ではなさそうなので、一般式ではなく、四桁までの単なる数え上げです。 計算結果だけ書いておきます。 n 桁、ただし n = 1, 2, 3, 4 の場合だけ!、の連続した数字が一つでも隣り合う場合の数を f(n)、一つも隣り合わない場合の数を g(n) とすると、 f(1) = 0 g(1) = 10 f(2) = f(1) * 9 + g(1) * 2 = 0 * 9 + 10 * 2 = 0 + 20 = 20 g(2) = 10 * 9 - f(2) = 90 - 20 = 70 f(3) = f(2) * 8 + g(2) * 2 = 20 * 8 + 70 * 2 = 160 + 140 = 300 g(3) = 10 * 9 * 8 - f(3) = 720 - 300 = 420 f(4) = f(3) * 7 + g(3) * 2 - 10 * (1 * 1 + 1 * 1 + 5 * 2) = 300 * 7 + 420 * 2 - 10 * 12 = 2100 + 840 - 120 = 2820 g(4) = 10 * 9 * 8 * 7 - f(4) = 5040 - 2820 = 2220 となり、答えは 2220 通りになります。 なお、f(4) の 10 * (1 * 1 + 1 * 1 + 5 * 2) を引くところが、最初に述べたポイントの部分です。 |
|
ネコの住む家
11月25日(土) 0:01:03
MAIL:uchi@sco.bekkoame.ne.jp 28757 |