�������裱���������ʬ�β�����

ベルク・カッツェ
アからの樹形図を書き3×2×1=6が6個で36通り。
イからで3×2×1が2個と4×3×2×1で36通り。
ウからで3×2×1が4個で24通り。
全部足して2倍で192通りになりました。
最初計算ミスで誤答して2回目で正解です。
   12月14日(木) 0:08:31     52975
今年から高齢者
隣にならない座り方は、アウオ、アウカ、アエカ、イエカ、イオ
これらの順番と残りの隣に座らざるを得ない座り方の積和
   12月14日(木) 0:13:57     52976
紫の薔薇の人
素直に樹形図を作りました。

すでに座っている人の隣にならない座席が空いている座り方を決めると、残りは3席または4席の順列になる。

アウオ*
アウカ*
アエカ*
アオウ*
アカウ*
アカエ*
イエカ*
イオ※
イカエ*
ウアオ*
ウアカ*
ウオア*
ウカア*

エ、オ、カで始まるのは、それぞれ、ウ、イ、アで始まる場合と同じ数

*が残り3席の順列
※が残り4席の順列

(3!*12+4!*1)*2=192
//
   12月14日(木) 0:16:26     52977
スモークマン
xoxoxo
xoxoxo
xoxoox
xooxox
oxoxox
が...4*3!*3!=144
oxooxo
が2!*4!=48
合計=144+48=192通り

192/6!=4/15なのね?
何か意味あるのかしらん...
   12月14日(木) 0:21:50     52978
みかん
#52976(今年から高齢者さん)と同じやり方でした。イオのパターンを忘れていたので
一発正解を逃しました。

問題のような6人掛けなら普通は両端が最初に埋まると思いますが、「駅で止まった時に
端っこの席は寒いからいやだ→イかオを選ぶ」って人もいるのでしょうか?
   12月14日(木) 0:52:51     52979
mukku
プログラムで解きました
   12月14日(木) 2:08:01     52980
「数学」小旅行
隣り合わせがないように座ってから残りを坐って行くようにするので、
2人と4人の場合と3人と3人の場合に分けて数えました。
思い違いをして座席が8こあるとして暗算しててすごい数だなあと思ってました。
認証で蹴られるので問題を見直して、なんだ6個か(@@)でした。
   12月14日(木) 3:58:57     52981
「数学」小旅行
例によって、プログラムです。
K=(1..6).to_a.permutation.to_a
count=0
for i in K
  a=[1,2,3,4,5,6]
  for j in (0..5)
    if a==[] then
      count+=1;break
    elsif a.member? i[j] then
      a=a-[i[j],i[j]-1,i[j]+1]
    else break
    end
  end
end
p count
   12月14日(木) 14:07:43     52982
KawadaT
今年から高齢者 さんのやり方と同じですが、

1) 隣にならない座り方で、アウオ、アウカ、アエカ、イエカの4通りについては、3つの座席をまず埋めて、残り3つの座席を埋めるので、4*3!*3!=144通り
2) 隣にならない座り方で、イオの場合は、2*4!=48通り
144+48=192通りとなります。
   12月14日(木) 20:18:42     52983
算数好きの小学生
今回も楽しく解けました。

〈解き方〉

1番はじめに座る人がどこに座るのかで場合分けをします。
また対称性より1番はじめがアの時とカの時、 イの時とオの時、 ウの時とエの時は
それぞれ同じ通りずつあるのでア,イ,ウの時のみ考える。

�顱�1番はじめに座る人がアの時
2番目に座る人はウ,エ,オ,カのいずれかに座る。
�.Δ忘造觧�・・・3番目に座る人はオまたはカに座る。
       どちらにしても残りの3人は「仕方なく座る」ので3×2×1=6通り
       � ΑΑ�6×2=12 12通り
�▲┐忘造觧�・・・3番目に座る人はカに座る。
       残りの3人は「仕方なく座る」ので6通り
       �◆ΑΑ�6通り
��オに座る時・・・�△搬仂里世�ら6通り
       ��・・・6通り 
�ぅ�に座る時・・・�,搬仂里世�ら6通り
       �ぁΑΑ�12通り
よって1番はじめの人がアに座る時は(6+12)×2=36通り  �顱ΑΑ�36通り

�髻�1番はじめの人がイに座る時
2番目に座る人はエ,オ,カのいずれかに座る。
�.┐忘造觧�・・・3番目に座る人はカに座る。
       残りの3人は「仕方なく座る」ので6通り
       � ΑΑ�6通り
�▲�に座る時・・・残りの4人は「仕方なく座る」ので4×3×2×1=24
       �◆ΑΑ�24通り
��カに座る時・・・�,搬仂里世�ら6通り
        ��・・・6通り
よって1番はじめの人がイに座る時は6+24+6=36 �髻ΑΑ�36通り

�鵝�1番はじめの人がウに座る時
2番目に座る人はア,オ,カのいずれかに座る。
�.△忘造觧�・・・3番目に座る人はオまたはカに座る。
       残りの3人は「仕方なく座る」ので6通り×2=12通り
       � ΑΑ�12通り
�▲�に座る時・・・3番目に座る人はアに座る。
       残りの3人は「仕方なく座る」ので6通り
       �◆ΑΑ�6通り
��カに座る時・・・�△搬仂里世�ら6通り。
       ��・・・6通り
よって1番はじめの人がウに座る時は12+6+6=24通り  �鵝ΑΑ�24通り

つまり1番はじめの人がエ,オ,カの時もそれぞれ36通り,36通り,24通りなので
答えは(36+36+24)×2=192通り      答え・・・192通り

対称性を使うか使わないかでだいぶスピードが変わる問題だと思いました。
長文失礼しました。

   12月14日(木) 22:42:36     52984
算数好きの小学生
今回も楽しく解けました。

〈解き方〉

1番はじめに座る人がどこに座るのかで場合分けをします。
また対称性より1番はじめがアの時とカの時、 イの時とオの時、 ウの時とエの時は
それぞれ同じ通りずつあるのでア,イ,ウの時のみ考える。

�顱�1番はじめに座る人がアの時
2番目に座る人はウ,エ,オ,カのいずれかに座る。
�.Δ忘造觧�・・・3番目に座る人はオまたはカに座る。
       どちらにしても残りの3人は「仕方なく座る」ので3×2×1=6通り
       � ΑΑ�6×2=12 12通り
�▲┐忘造觧�・・・3番目に座る人はカに座る。
       残りの3人は「仕方なく座る」ので6通り
       �◆ΑΑ�6通り
��オに座る時・・・�△搬仂里世�ら6通り
       ��・・・6通り 
�ぅ�に座る時・・・�,搬仂里世�ら6通り
       �ぁΑΑ�12通り
よって1番はじめの人がアに座る時は(6+12)×2=36通り  �顱ΑΑ�36通り

�髻�1番はじめの人がイに座る時
2番目に座る人はエ,オ,カのいずれかに座る。
�.┐忘造觧�・・・3番目に座る人はカに座る。
       残りの3人は「仕方なく座る」ので6通り
       � ΑΑ�6通り
�▲�に座る時・・・残りの4人は「仕方なく座る」ので4×3×2×1=24
       �◆ΑΑ�24通り
��カに座る時・・・�,搬仂里世�ら6通り
        ��・・・6通り
よって1番はじめの人がイに座る時は6+24+6=36 �髻ΑΑ�36通り

�鵝�1番はじめの人がウに座る時
2番目に座る人はア,オ,カのいずれかに座る。
�.△忘造觧�・・・3番目に座る人はオまたはカに座る。
       残りの3人は「仕方なく座る」ので6通り×2=12通り
       � ΑΑ�12通り
�▲�に座る時・・・3番目に座る人はアに座る。
       残りの3人は「仕方なく座る」ので6通り
       �◆ΑΑ�6通り
��カに座る時・・・�△搬仂里世�ら6通り。
       ��・・・6通り
よって1番はじめの人がウに座る時は12+6+6=24通り  �鵝ΑΑ�24通り

つまり1番はじめの人がエ,オ,カの時もそれぞれ36通り,36通り,24通りなので
答えは(36+36+24)×2=192通り      答え・・・192通り

対称性を使うか使わないかでだいぶスピードが変わる問題だと思いました。
長文失礼しました。

   12月14日(木) 22:51:49     52985
算数好きの小学生
間違えて2回書き込んでしまいました。
すいません🙇
   12月14日(木) 22:53:28     52986
CRYING DOLPHIN
この手の問題は、座席が増えた場合は漸化式で解けるのかなーってのが気になる。
by 意外とハマってしまった人。
顔上げた道の先   12月15日(金) 1:22:52   MAIL:ぴかー HomePage:ぴかぴかさんすう。  52987
「数学」小旅行
少々のバグ取りをして、座席数n個で求めてみました。
n=10
K=(1..n).to_a.permutation.to_a
count=0
for i in K
  a=(1..n).to_a
  for j in (0..n-1)
    if a.member? i[j] then
      a=a-[i[j],i[j]-1,i[j]+1]
      if a==[] then count+=1;break end
    else break
    end
  end
end
p count

 n   座り方
 1      1
 2      2
 3      4
 4     12
 5     48
 6    192
 7   1008
 8   5760
 9  36000
10 259200
   12月15日(金) 8:54:33     52988
ミートたけし
残り3人で「仕方なく座る」→6通り
残り4人で「仕方なく座る」→24通り
を上手く使いながら樹形図をア・イ・ウの3つ書き、対称性で×2しました
紙に書きながらやっていたんですけど、それぞれの和を求めようとした時、ア・イの36通りの36の字が汚すぎて30に見えたので、168で正解者の部屋入ろうとしたんですけど、入れなくて見直していたら36だったのでびっくりしましたw
   12月15日(金) 17:06:19   MAIL:yukie.tsurumi.ikai.0908@docomo.ne.jp   52989
こちこちの千葉医こち
KawadaTさんと全く同じやり方でした。イオと始めに占められるのに気づかず144と入力して入れず「あれ?」。ひっかかる罠の作り方も上手。
   12月17日(日) 1:00:08     52990
まるケン
「すでに座っている人の隣にならない座席が空いている場合には、そちらを選ぶ」
これを ルール1と呼ぶことにします。

ルール1を守れなくなるまでに座れる人数は、座り方によって変わります。
例えば、6席の場合、上手に座れば3人まで座れますが、イとオに座るともう一杯。
N席に座れる最大数は、(N+1)÷2。6席なら3だし、7席、8席なら4人まで座れます。
逆に、9席の場合は、うまく座れば5人座れますが、
イ、オ、ク と座ってしまうと、3人しか座れないこともあります。
これは、N席なら(N+2)/3人と表すことができます。
つまり、9席の場合、最小3人から最大5人の3通りのパターンがあることになります。
今回のアプローチは、N席の場合に、N/3から(N+1)/2 人座れるパターンが、
それぞれの人数に対して何パターンあるかを求めようという作戦です。

さてさて、ここからが Ruby のスクリプト。
掲示板向けに、スペース2つを全角スペースに置き換えています。

# 階乗を求めるのに、Hashを使ってみました。
# 関数にしちゃうと、同じ値でも毎回同じ処理を実行するのに比べ、
# Hashだと、過去に計算したことのある数値なら、
# ほぼ即座に答えが返るんじゃないか?という期待を込めてです。
$f = Hash.new{|h,k|h[k]=k<2?1:h[k-1]*k}

# nCm n個の中からm個を選ぶときの選び方の数
def ncomb(n, m)
 return $f[n] / $f[n-m] / $f[m]
end

# n個の席にm人が、隣に空席をあける条件で座るとき、座り方は何パターンあるか?
def npat(n, m)
 e = n - m    # 空席の総数
 z = m - 1    # 隣に空席をあけなければならない、必須の空席数(3人座るならその間の2か所)
 j = e - z    # あけ足りない空席の数
 k = m + 1    # あけ足りない空席を配置させられる箇所の数(両端と座っている席と席の間)
 s = ncomb(k, j) # k箇所から空席を配置するj個を選ぶ選び方
 return s
end

def sol_1277(n)
 min = (n+2) / 3
 max = (n+1) / 2

 (min..max).each do |m|
  r = npat(n, m)
  # ルール1に従って座る座り方の総数:m人座るなら m!通り
  # ルール1後のに座る座り方の総数:残りn-m人なので(n-m)!通り
  # このパターンがr通りあるので、、、
  $n += $f[m] * $f[n-m] * r
 end
end

(1..100).each do |n|
 $n = 0
 sol_1277(n)
 p [n, $n]
end
おうち   12月17日(日) 16:44:35     52991
まるケン
送信直後に誤記に気づく、、、あるあるですかね。

誤:今回のアプローチは、N席の場合に、N/3から(N+1)/2 人座れるパターンが、
正:今回のアプローチは、N席の場合に、(N+2)/3から(N+1)/2 人座れるパターンが、
おうち   12月17日(日) 16:50:36     52992
「数学」小旅行
#52991
一般解ですね。お見事!!
mapを使った階乗の表だけ考えました。必要な分だけ作るということで。
$k=[1]
(1..(2*n+1)/3).to_a.map{|x|$k+=x>1?[x*$k[x-1]]:[1]}
   12月19日(火) 17:34:16     52993

過去問題一覧へ戻る