あみー |
地味に場合分けしました。
1+15+45+15+40+40+120+120=396(通り) 途中作業しながら「逆算から引いた方が早かったなぁ」と邪念を抱きつつ。 ちなみに邪念(?)の場合は 720−(144+90+90)=396(通り),です。 |
12月18日(木) 0:16:31
33462 |
数楽者 |
324を送っていました。(残念) |
横浜
12月18日(木) 0:19:22
MAIL:iida@ae.keio.ac.jp 33463 |
大根劇団員 |
あみーさんの云う逆算で計算しました。
六回繰り返して元の席順にもどらないのが何通りあるのか考えました。 6の約数ではない、4人と5人だけの間での席が循環が発生すると、 六回繰り返したあとに元の席順に戻らないので、その場合はそれぞれ 4人間の循環で 6*5*3*2*1*1 = 180通り、 五人間の循環で 6*4*3*2*1*1 = 144通り が考えられるので、すべての組み合わせ720通りからそれらを差し引いて、 720-180-144=396 となりました。 |
12月18日(木) 0:26:04
33464 |
あーく |
所謂代数での巡回群の問題ですね。
例えば6人が同時に初めて元に6回目で戻るカードの渡し方は5! 同様にしてn人がn回目で元に戻るカードの渡し方は(n-1)! 6人の中にはこのようなn人の組が複数組存在するのでそれを(l,m,n,・・・)と記述する。 今元に戻らないようなカードの渡し方は(1,5)(2,4)(1,1,4)のみ(つまり6の約数では無い数を含む組み合わせ)なので、 6!-(6・4!+6C2・3!+6C2・3!)=396 説明は算数っぽくしました(笑) |
12月18日(木) 0:27:30
33465 |
Taro |
素直にやったり、戻らない方法でも考えてみました。
しかし4人でのもとに戻らない循環を6通りとしてました 仕方ないので結局プログラムですorz |
12月18日(木) 0:28:24
33466 |
英ちゃん |
地道に条件に当てはまるモノを場合分けして解きました。
(1,1,1,1,1,1)に気付かなかった 掲示板の補集合の考え方を見て驚きました。 そっちの方が上手いですね。場合の数は苦手です。 |
居間
12月18日(木) 0:34:11
HomePage:何か 33467 |
ぺぷし@鼻セレブ |
グループ分けですねー
しかし、なかなか正確に計算できなかった; 6回でもとに戻るということは、1回か2回か3回か6回で循環すればいいから、 1コか2コか3コか6コでグループを作ればいい ただ、この方法んだとなぜか正解できなかったから結局 1,1,4と2,4と1,5を720から引きましたorz |
12月18日(木) 0:40:08
33468 |
SUPER SPECIAL SEMTEX |
完全に敗北です
計算ミスが続出 結局5人の循環と4人の循環がふくまれるのを引きました |
12月18日(木) 0:42:54
33469 |
蒼い猩々さん |
6回での循環が、6個の撹乱順列と思いこんでて、なかなか正解にたどり着けませんでした。「逆算」で解いたらよいのね。結構悔しいですねぇ。 |
12月18日(木) 0:43:11
33470 |
Mr.ダンディ |
6個の撹乱順列から不適なものを引こうとしたり、場合分けが漏れたりで間違いまくりました。
結局は、あみーさんと同じく、1+15+45+15+40+40+120+120=396(通り) という式になりました。 こんなに多くなるとは思わず、「逆算」の発想が出てきませんでした。(頭が堅いよ〜・・・泣) |
大阪
12月18日(木) 1:25:52
33471 |
大森房吉 |
1−(2,3)の場合を数え忘れ・・・
なるほど、引くほうが速そうですが私の場合はどちらにせよ根本的に間違っていた・・・ |
12月18日(木) 2:59:29
33472 |
ハラギャーテイ |
プログラムです。
行列に直して計算しました。 遷移行列を変えながら数えました。たぶん 固有値を求めればすぐわかるのではないかと思います。 |
山口
12月18日(木) 7:33:19
HomePage:制御工学にチャレンジ 33473 |
abc |
撹乱(完全)順列を利用して数えようとして、重複する場合を考えず何回も誤ってしまいました。あーくさんのように、巡回置換を利用した余事象で求めるのが簡単でエレガントですね。 |
12月18日(木) 8:17:18
33474 |
abcba@jugglermoka |
#33464とやり方は全く同じです。
考え方はすぐに分かったのですが計算間違えの連続でした。 (4、1,1)(4,2)(5,1)で4循環の場合は6通り、 5循環の場合は24通りなので 720-(24×6+6×30)=396通りです。 |
12月18日(木) 11:00:22
33475 |
uchinyan |
はい,こんにちは。さて,今回の問題は...
大学などで行列式の一般論を学んだ人は「あ,置換だな。」と思い至り,若干有利かもしれません。 もちろん,場合の数の計算にはこうした知識は全く不要ですが,そこそこ大変ですね。 うまく説明できず,長くなってしまって申し訳ありませんが... イス 1, 2, ... とカード a, b, ... の組合せを (1->a,2->b,...) などと書くことにし, 1 番のイスに A 郎,2 番のイスに B 郎,...が座っている状態を,例に合わせて,(A,B,...) などと書くことにします。 (置換としては,一郎が A 番のイスに,二郎が B 番のイスに,...座っている状態を (A,B,...) などとした方が自然でしょうが。) 例は,(1->2,2->3,3->5,4->1,5->4,6->6),(1,2,3,4,5,6) -> (4,1,2,5,3,6) -> (5,4,1,3,2,6) -> ... です。 さて,こうした記法でいろいろと調べてみると,6 回席替えをして最初の (1,2,3,4,5,6) に戻っているのは, (1->a,2->b,3->c,4->d,5->e,6->f) が 6 の約数 1, 2, 3, 6 のいずれかの個数の数字で閉じて分割できる場合と分かります。 例えば,(1->1,2->2,3->3,4->4,5->5,6->6) は,1 回で元に戻ります。したがって,当然,6 回で元に戻ります。 (1->1,2->3,3->2,4->5,5->6,6->4) は,(1->1) は 1 回,(2->3,3->2) は 2 回,(4->5,5->6.6->4) は 3 回で,全体は 6 回で元に戻ります。 (1->2,2->3,3->4,4->5,5->6,6->1) は,全体が 6 回で元に戻ります。 一方,(1->2,2->3,3->5,4->1,5->4,6->6) は,1, 2, 3, 4, 5 の部分は 5 回で元に戻り,6 回では元に戻りません。 (置換の計算の経験があると,この規則性にすぐ気が付くでしょう。) そこで,こうした分割のパターンを元に戻る回数を並べて [ ] で括って書くことにします。 (1->1,2->2,3->3,4->4,5->5,6->6) は,[111111]。 (1->1,2->3,3->2,4->5,5->6,6->4) は,[123]。(1, 2, 3 を入れ替えたものは同じパターンとします。) (1->2,2->3,3->4,4->5,5->6,6->1) は,[6]。 (1->2,2->3,3->5,4->1,5->4,6->6) は,[15]。 すると,結局,6 回席替えをして元に戻るのは,次の場合です。 ・[111111]:(1->1,2->2,3->3,4->4,5->5,6->6) だけなので,1 通り。 ・[11112]:2 を選ぶのに 6C2 = 15 通り,2 の中の並べ替えで 1 通りで,15 * 1 = 15 通り。 ・[1113]:3 を選ぶのに 6C3 = 20 通り,3 の中の並べ替えで 2 通りで,20 * 2 = 40 通り。 ・[1122]:2 を選ぶのに 6C2 * 4C2 * 1/2! = 45 通り,2 の中の並べ替えで 1 通りで,45 * 1 * 1 = 45 通り。 ・[123]:2 を選ぶのに 6C2 = 15 通り,3 を選ぶのに 4C3 = 4 通り,2 の中の並べ替えで 1 通り,3 の中の並べ替えで 2 通りで,15 * 4 * 1 * 2 = 120 通り。 ・[222]:2 を選ぶのに 6C2 * 4C2 * 2C2 * 1/3! = 15 通り,2 の中の並べ替えで 1 通りで,15 * 1 * 1 * 1 = 15 通り。 ・[33]:3 を選ぶのに 6C3 * 3C3 * 1/2! = 10 通り,3 の中の並べ替えで 2 通りで,10 * 2 * 2 = 40 通り。 ・[6]:6 を選ぶのに 6C6 = 1 通り,6 の中の並べ替えで 5 * 4 * 3 * 2 * 1 * 1 = 120 通りで,1 * 120 = 120 通り。 ここで,6 の中の並べ替えは,1->a は 5 通り,a->b は 1,a はダメなので 4 通り,b->c は 1,a,b はダメなので 3 通り, c->d は 1,a,b,c はダメなので 2 通り,d->e は 1,a,b,c,d はダメなので 1 通り,e->f は f = 1 しかないので 1 通り,です。 以上ですべてなので,1 + 15 + 40 + 45 + 120 + 15 + 40 + 120 = 396 通り,になります。 なお,全体 6! = 720 通り,から,6 回で最初の状態に戻らない場合を引いた方が計算が楽です。 6 回で最初の状態に戻らないのは次の場合です。 ・[114], [24]:4 を選ぶのに 6C4 = 15 通り,4 の中の並べ替えで 3 * 2 * 1 * 1 = 6 通り,[11] と [2] とを合わせて 2 通りで,15 * 6 * 2 = 180 通り。 ・[15]:5 を選ぶのに 6C5 = 6 通り,5 の中の並べ替えで 4 * 3 * 2 * 1 * 1 = 24 通りで,6 * 24 = 144 通り。 そこで,720 - (180 + 144) = 396 通り,になります。 実は,朝は紙と鉛筆が手元に無く暗算を心がけるしかなく,最初の方法で挫折しかけましたが,全体から引く方法で何とかできました (^^; |
ネコの住む家
12月18日(木) 14:30:57
MAIL:uchi@sco.bekkoame.ne.jp 33476 |
??? |
Option Explicit
Dim a(6) As Integer Sub Macro1() Sheets("Sheet1").Select Cells(1, 1).Value = 0 Range("A1").Select Call saiki(1) End Sub Sub saiki(ByVal n As Integer) Dim j As Integer a(n) = 1 While a(n) <= 6 If onaji(n) = 0 Then If n < 6 - 1 Then Call saiki(n + 1) Else a(6) = 6 For j = 1 To 6 - 1 a(6) = a(6) + j - a(j) Next j Call check(1) End If End If a(n) = a(n) + 1 Wend End Sub Sub check(ByVal x As Integer) Dim b(6) As Integer Dim dame As Integer Dim j As Integer For j = 1 To 6 b(j) = a(a(a(a(a(a(a(j))))))) Next j dame = 0 j = 1 While dame = 0 And j <= 6 If b(j) <> a(j) Then dame = 1 Else j = j + 1 End If Wend If dame = 0 Then Cells(1, 1).Value = Cells(1, 1).Value + 1 For j = 1 To 6 Cells(Cells(1, 1).Value, j + 1).Value = a(j) Next j End If End Sub Private Function onaji(ByVal n As Integer) As Integer Dim j As Integer onaji = 0 j = 1 While onaji = 0 And j < n If a(j) = a(n) Then onaji = 1 Else j = j + 1 End If Wend End Function |
12月18日(木) 12:49:11
33477 |
uchinyan |
掲示板を読みました。
#33462の前半,#33467,#33471,#33472?,#33476の前半 6 回席替えをして最初の状態に戻る場合を素直に数える解法。 #33462の後半,#33464,#33465,#33468,#33469,#33475,#33476の後半 6 回席替えをして最初の状態に戻らない場合を全体から引く解法。 #33466,#33473,#33477 プログラム。 なお, #33465 >所謂代数での巡回群の問題ですね。 ふむ,群論的に捉えますか...群論はまともに勉強したことが無いので (^^; その知識を使えば,簡単に解けちゃうのかな? #33470 >6回での循環が、6個の撹乱順列と思いこんでて、 #33471 >6個の撹乱順列から不適なものを引こうとしたり、 #33474 >撹乱(完全)順列を利用して数えようとして、 確かに撹乱順列を使おうと思うと余分な重複を考慮する必要があります。 取り敢えず,私の#33476の前半に適用してみると... まず,撹乱数列順列 a(n) は,証明は略しますが, a(n) = (n-1) * (a(n-1) + a(n-2)) a(1) = 0 a(2) = 1 a(3) = 2 a(4) = 9 a(5) = 44 a(6) = 265 ... [111111] には使えません。この場合は 1 通り。 [11112],[1113],[1122],[123] では,2 の中の並べ替え,3 の中の並べ替えで使えて a(2) 通りと a(3) 通り。 [222],[33],[6] は,a(6) から [24] を引けばいいですが,[24] の [4] の中の並べ替えは [22] の分を引かないといけないので, a(4) ではなく a(4) - 4C2 * 2C2 * 1/2! * a(2) * a(2) なのに要注意です。 そこで,結局, 1 + 6C2 * a(2) + 6C3 * a(3) + 6C2 * 4C2 * 1/2! * a(2) * a(2) + 6C2 * 4C3 * a(2) * a(3) + (a(6) - 6C2 * a(2) * (a(4) - 4C2 * 2C2 * 1/2! * a(2) * a(2))) = 1 + 15 * 1 + 20 * 2 + 15 * 6 * 1/2 * 1 * 1 + 15 * 4 * 1 * 2 + (265 - 15 * 1 * (9 - 6 * 1 * 1/2 * 1 * 1)) = 1 + 15 + 40 + 45 + 120 + (265 - 90) = 1 + 15 + 40 + 45 + 120 + 175 = 396 通り 全体から引く場合も同様にできますが,必ずしも楽ではないようです。 6! - 6C4 * (a(4) - 4C2 * 2C2 * 1/2! * a(2) * a(2)) * 2 - 6C5 * (a(5) - 5C2 * 3C3 * a(2) * a(3)) = 720 - 15 * (9 - 6 * 1 * 1/2 * 1 * 1) * 2 - 6 * (44 - 10 * 1 * 1 * 2) = 720 - 180 - 144 = 396 通り となります。 |
ネコの住む家
12月18日(木) 14:20:28
MAIL:uchi@sco.bekkoame.ne.jp 33478 |
ハラギャーテイ |
#33473
同じことでしょうが、固有多項式がλ^6−1となるものの数ですね。 工学で有名なのはM系列です。(謎) |
山口
12月18日(木) 19:30:49
HomePage:制御工学にチャレンジ 33479 |
ハラギャーテイ |
MATLABによるプログラム
aが遷移行列、x,xdが位置を表す状態変数 mが答の回数 ご参考までに xd=[1 2 3 4 5 6]'; x=[1 2 3 4 5 6]'; m=0; p=perms(1:6); for k=1:720; a=zeros(6); b=p(k,:); a(1,b(1))=1; a(2,b(2))=1; a(3,b(3))=1; a(4,b(4))=1; a(5,b(5))=1; a(6,b(6))=1; xd=x; % for ii=1:6; xd=a'*xd; end; if xd==x, m=m+1;end; end; m |
山口
12月19日(金) 7:39:38
HomePage:制御工学にチャレンジ 33480 |
「数学」小旅行 |
プログラムでしてみました。 |
12月21日(日) 0:38:09
33481 |
「数学」小旅行 |
Risa/Asir で次のようにしました。
0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 のような6×6行列のうち、6乗して単位行列になるもの 0 0 0 0 0 1 を数え上げます。 0 0 0 0 1 0 M=0; A=newmat(6,6); E=newmat(6,6); for(I=0;I<=5;I++){E[I][I]=1;} for(I0=0;I0<=5;I0++){ for(I1=0;I1<=5;I1++){ for(I2=0;I2<=5;I2++){ for(I3=0;I3<=5;I3++){ for(I4=0;I4<=5;I4++){ for(I5=0;I5<=5;I5++){ A=newmat(6,6); A[0][I0]=1;A[1][I1]=1;A[2][I2]=1; A[3][I3]=1;A[4][I4]=1;A[5][I5]=1; if(A^6==E){M++;} }}}}}} return M; あきらかに不適当なものについても6乗して調べるようになってしまい ましたが、プログラムが簡単なので、(^^; |
12月21日(日) 0:45:24
33482 |
ハラギャーテイ |
#33482
科学計算も楽になりました。むかしFORTRANで行列計算をするのに DO文のネストの塊になって見難いプログラムになったのを思い出します。 HPがBASICで行列が扱えるようにして、ベクトル型の計算が普及するのに つれ、科学技術計算の主流はベクトル、行列になりました。これも懐かしい です。 統計計算なんかは典型的な行列計算だと思います。でも楽に なっただけアイデアとかに頭を使うことが重要となりました。 もっと昔は手回しで計算とかリレーがガチャガチャいって動く ものとか今の人が聞いたら笑い話です。これも懐かしい。 ある化学会社には計算機室があってそこには手回しをする女子 部隊がいたそうです。計算を依頼すると機械式の手回しタイガー 計算機なんかで計算して結果が戻っていたそうです。ウソのような お話です。何十人の女の子が一生懸命回す絵とか想像しただけでも おかしいです。 |
山口
12月21日(日) 13:33:45
HomePage:制御工学にチャレンジ 33483 |
スモークマン |
やっとわかった...^^;
完全順列の6個の時(265)から、4個の時 (9*6C2=135)をひいたものはすべて6回ループで元に戻れる。 あとは、動かないときを加える。 6個とも動かない:1 2個動くときだけ(4個動かない):6C4=15 3個動くときだけ(3個動かない):2*6C3=40 4個動くときだけ(2個動かない):6C2*4C2=90 5個動くときだけ(1個動かない):2*6C3*3C2=120 合計=130+120+90+40+15+1=396通り♪ |
金光@岡山
12月21日(日) 17:38:57
33484 |