高田修成 |
痛恨のプログラムミス。(;_;) |
揖保郡
5月15日(木) 0:13:14
MAIL:PXU14510@nifty.ne.jp 18609 |
Miki Sugimoto |
何かいい公式があるのかもとは思いましたが、最初は手計算で
やりました。どうしても数え落としが出てくるので、結局は プログラムに頼りました。 100 LET x=0 110 for a1=1 to 6 120 for a2=1 to 6 121 if a2=a1 then goto 350 130 for a3=1 to 6 131 if a3=a1 then goto 340 132 if a3=a2 then goto 340 140 for a4=1 to 6 141 if a4=a1 then goto 330 142 if a4=a2 then goto 330 143 if a4=a3 then goto 330 150 for a5=1 to 6 151 if a5=a1 then goto 320 152 if a5=a2 then goto 320 153 if a5=a3 then goto 320 154 if a5=a4 then goto 320 160 for a6=1 to 6 161 if a6=a1 then goto 310 162 if a6=a2 then goto 310 163 if a6=a3 then goto 310 164 if a6=a4 then goto 310 165 if a6=a5 then goto 310 200 LET s=0 210 if a1<a2 then LET s=s+1 220 if max(a1,a2)<a3 then LET s=s+1 230 if max(max(a1,a2),a3)<a4 then LET s=s+1 240 if max(max(max(a1,a2),a3),a4)<a5 then LET s=s+1 250 if max(max(max(max(a1,a2),a3),a4),a5)<a6 then LET s=s+1 260 if s=3 then LET x=x+1 310 next a6 320 next a5 330 next a4 340 next a3 350 next a2 360 next a1 370 print x 380 end ※ max が3つ以上に対応していないとは……。(ぼそっ) |
5月15日(木) 0:16:18
MAIL:sgmiki@sea.plala.or.jp HomePage:国語にもチャレンジ 18610 |
まるケン |
4×5
3×5 2×5 1×5 3×4 2×4 : : 1×2 を足しました。 |
5月15日(木) 0:17:55
MAIL:take4310@mobile.email.ne.jp HomePage:まるケンの部屋 18611 |
むらかみ |
#18608
パペポとは懐かしい。 青春のバイブルでした。 龍太郎師匠はちょくちょく日本に戻ってるようですね。 |
5月15日(木) 0:21:57
18612 |
maruhagedon |
今日は酔っぱらい。ゴメンやしておくれやしてゴメンやっしゃー! |
酔っぱらい天国
5月15日(木) 0:29:00
MAIL:hopes@mba.sphere.ne.jp HomePage:HOPES 18613 |
遠い山のぽきょぽん |
何も考えずに場合分けです。(^^;
1番高い人の位置を決めて、それぞれの場合について 2番目に高い人の配置を決めてさらに…といった感じです。 |
遠い山から
5月15日(木) 0:32:32
18614 |
DrK |
私の場合、2人が連続して影に入る場合の順列を考慮しませんでした。
これに気づけば早かったのに、悔やまれる限りです。 |
今は楽園かな?
5月15日(木) 0:33:52
MAIL:satoka@star.odn.ne.jp 18615 |
DrK |
今回の場合はやはり順列を用いることになるでしょう。 |
今は楽園かな?
5月15日(木) 0:35:21
MAIL:satoka@star.odn.ne.jp 18616 |
トトロ@N |
3人の場合から調べて、その結果を次に利用して解きました。
3人が2通り、4人が11通り、5人が35通りとなりました。 6人は、一番背の高い人が6番目、5番目、4番目の場合を加えて 35+30+20=85通り もっと簡単に解けそうですね。 |
兵庫県明石市
5月15日(木) 0:36:21
MAIL:h-sakai@zb3.so-net.ne.jp 18617 |
DrK |
前回の4倍も時間を費やしたのに、順位は今週のほうがよさそう。
|
今は楽園かな?
5月15日(木) 0:36:52
MAIL:satoka@star.odn.ne.jp 18618 |
中村明海 |
午前様の宴会帰りにはシビアな問題でした。
6!=720通りの並び方を、前方が見える人の数ごとに分類してみたら、 120,274,225,85,15,1となりました。 理由は酔いがさめてから考えます。 |
室蘭市
5月15日(木) 0:51:31
MAIL:naka@sansu.org HomePage:naka's Home Page 18619 |
遠い山のぽきょぽん |
今回のような問題の場合、解こうとする前に一瞬悩みますね。
一工夫すればあっさり答えが出るタイプなのか地道に計算した方が速いのか。 私はひらめきが悪いので計算に走ってしまうことが多いです。。 ところで暇なときに過去問をやっているのですが、解けない問題がけっこうあります。。 常連さん達の正答率はどれくらいなんでしょう? ほとんど全部解けるんだろうなぁ…。 |
遠い山から
5月15日(木) 0:59:24
18620 |
トトロ@N |
#18620
195回から参加しています。 負けず嫌いなもんで、解けないと1週間ずっと悩んでます。 解けなかったのは1回だけですが、350回も危なかったです。 |
兵庫県明石市
5月15日(木) 1:06:49
MAIL:h-sakai@zb3.so-net.ne.jp 18621 |
takaisa |
見える人4人の選び方は10通り.
それぞれの場合の数を数えて、2+3*(1+2)+4*(1+2+3)+5*(1+2+3+4)=85通り. |
5月15日(木) 1:20:02
18622 |
kasama |
こんにちは。ツヨシ君、マサヒコ君、サトルさん、ヤオミン君の4人だけが前方を見ることができる並び方と勘違いしていました^o^。プログラムを作成して調べると、
1人だけが前方を見ることができるのは120何通り 2人だけが前方を見ることができるのは274何通り 3人だけが前方を見ることができるのは225何通り 4人だけが前方を見ることができるのは85何通り 5人だけが前方を見ることができるのは15何通り 6人だけが前方を見ることができるのは1何通り となりました。 import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Question353 { List heightList = new ArrayList(); public Question353() { for (int height = 120; height <= 220; height += 20) heightList.add(new Integer(height)); } public int getCount(int n) { int count = 0; List permuList = new Permutation(heightList).getList(); for (Iterator iter = permuList.iterator(); iter.hasNext(); ) { List list = (List) iter.next(); int m = 0; for (int i = 0; i < list.size(); ++i) if (check(list, i)) ++m; if (m == n) ++count; } return count; } private boolean check(List list, int index) { Integer height = (Integer) list.get(index); for (int i = 0; i < index; ++i) { Integer othter = (Integer) list.get(i); if (othter.intValue() > height.intValue()) return false; } return true; } public static void main(String args[]) { Question353 question = new Question353(); for (int i = 1; i <= 6; ++i) System.out.println(i + "人だけが前方を見ることができるのは" + question.getCount(i) + "何通り"); } } |
和歌山
5月15日(木) 1:48:27
MAIL:kasama@s34.co.jp 18623 |
kasama |
#18623 追加:クラスPermutationの内容
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Permutation { private int num = 0; private List elementList = null; private List permutationList = null; public Permutation(List elementList) { this(elementList, elementList.size()); } public Permutation(List elementList, int num) { this.num = num; this.elementList = elementList; } public List getList() { permutationList = new ArrayList(); eachCreate(new ArrayList()); return permutationList; } private void eachCreate(List indexList) { if (indexList.size() >= num) { List permutationElementList = new ArrayList(); for (int i = 0; i < indexList.size(); ++i) { Integer index = (Integer) indexList.get(i); permutationElementList.add(elementList.get(index.intValue())); } permutationList.add(permutationElementList); return; } for (int i = 0; i < elementList.size(); ++i) { Integer index = new Integer(i); if (indexList.contains(index)) continue; List newIndexList = new ArrayList(indexList); newIndexList.add(index); eachCreate(newIndexList); } } } |
和歌山
5月15日(木) 2:11:32
MAIL:kasama@s34.co.jp 18624 |
ponta55555 |
#18614
#18617 発想がうらやましいです ぼくは、小さい順に123456と番号を決め、 前方が見えない人2人を選ぶのが10とおり 10通り分全部書き出しました (1,2)20とおり (1,3)15とおり (1,4)10とおり (1,5)5とおり (2,3)12とおり (2,4)8とおり (2,5)4とおり (3,4)6とおり (3,5)3とおり (4.5)2とおり となり、全部で85とおりとしましたが、 人数が8人10人となってきたら、こりゃ大変!! でも、マサルさんいつもやさしいから、数える僕でも出来る程度の人数を出題してくださる^^; いつも助かります! |
5月15日(木) 2:21:06
MAIL:ponta55555@hotmail.com 18625 |
ポケモンハルカ |
今日は、ちょっと遅くなりました。おはようございます。一番高い人が何番目にいるかで、場合わけして、4番目にいると20通り、5番目にいると30通り、6番目にいると35通りとして合計しました。 |
米谷
5月15日(木) 6:25:58
MAIL:yasco@fine.ocn.ne.jp 18626 |
長野 美光 |
ビルディングパズルを思い出しますねぇ。>>パズルな人
|
新しんぱら
5月15日(木) 6:37:42
HomePage:ヨッシーの八方美人 18627 |
ハラギャーテイ |
おはようございます。
プログラムで解きました。プログラムって 算数的な頭を使わないやり方です。 |
北九州
5月15日(木) 7:24:19
HomePage:ハラギャーテイの制御工学にチャレンジ 18628 |
Toru Fukatsu |
一番最後に1番小さい人を並べると考えれば A(n+1,k)=A(n,k-1)+n A(n,k) となって、A(2,1)=A(2,2)=1より順々に計算すればA(6,4)=85 がもとまります。またこれを式で考えるとF1(x)=1 Fn+1(x)=nFn(x)+xFn(x)=(n+x)Fn(x)より
Fn(x)=1(1+x)(2+x)-----(n-1+x) のx^(k-1)の係数がn人並べた時にk人が前を見られる並び方の数になると思われます。 |
5月15日(木) 10:26:31
MAIL:tfukatsu@tth-japanpost.jp 18629 |
有無相生 |
数え上げです。n人いてm人が前を見ることができる並べ方をN(n,m)として、
N(3,1)=2,N(3,2)=3,N(3,3)=1 N(4,1)=6,N(4,2)=11,N(4,3)=6,N(4,4)=1 を用いて、n=6,m=4のケースを分解して解きました。 |
5月15日(木) 10:33:33
18630 |
M.Hossie |
こんばんにゃ。今回は手計算でやるよりしょうがない問題ですね。
大抵の方々と同じく、大男が最後尾、最後尾から2番目、3番目で場合分けするのがオーソドックスな攻め方でしょう。 #18612 ぼくは何回か京橋 OBP の読売テレビまでパペポを見に行ったことが有りますよ。朝早くから並んで整理券を貰って、夜になって収録を見学というパターンでした。 |
都内某所
5月15日(木) 11:04:11
18631 |
井本智明 |
やっと解けた・・・ |
5月15日(木) 12:29:24
MAIL:井本 智明<57018@ikuno.osaka-c.ed.jp> 18632 |
DrK |
よみうりてれびは京橋にあるのですか?関西テレビもその周辺だったように思うのですが。
パペポといえば私の妹が結構見ていました。夜中に起きるのが趣味でしたが、今は主婦になって子守に追われているようで、23時(夜11時)を過ぎては起きていないようです。 |
今は楽園かな?
5月16日(金) 1:29:24
MAIL:satoka@star.odn.ne.jp 18633 |
DrK |
私も結局は#18626と同じ感じになりました。 |
今は楽園かな?
5月16日(金) 1:30:26
MAIL:satoka@star.odn.ne.jp 18634 |
DrK |
でも、#18615で述べたとおり、影に入る場合の順列を考えなかったのがあだになり、時間がかかってしまいました。 |
今は楽園かな?
5月16日(金) 1:31:37
MAIL:satoka@star.odn.ne.jp 18635 |
吉川 マサル |
#18633
DrKさんの妹さん...一度お会いしてみたい〜!(^^;; |
MacOS X
5月16日(金) 2:04:02
MAIL:masaru-y@kt.rim.or.jp HomePage:算チャレ 18636 |
DrK |
でも、旦那付ですよ。
ワンセットになっていますが、算数とは縁が程遠いです。 もう1人いますが、こちらはまだ親元にいます。 こちらもまた算数とは縁がないですね。やってみるかとはいっているのですが、やる気配はありません。ちなみにそちらの妹、まさるさんと同じ年の生まれです。 |
5月16日(金) 11:45:57
18637 |
ちこりん |
数えてしまった・・・(汗
6人だからすぐできたけど、人数増えるとやばい・・・。 |
5月16日(金) 13:02:30
18638 |
M.Hossie |
#18633
関テレも読テレも、昔は梅田の近所に有りましたが、どちらも現在は移転してます。関テレは扇町、読テレは京橋です。MBS も随分前に千里の山奥から梅田茶屋町 (Loft のそば) に移転しましたね。ABC は相変わらず福島にあります。 #18636 ぼくがお会いしたいのは、250万円払ってでもお目に掛かりたい方でございます。 |
都内某所
5月16日(金) 16:28:51
18639 |
遠い山のぽきょぽん |
#18621
1問だけですか…すごいですね。 350回は解けませんでした、、ムズかしかったです。 空間図形は難問が多いですね。 |
遠い山から
5月16日(金) 18:50:24
18640 |
ふじさきたつみ |
やっとできました。一番背が高い人が、4番目、5番目、6番目にいる場合に分けて加えました。もっとうまい方法はわかりません。 |
5月16日(金) 19:45:05
MAIL:fujisaki@octv.ne.jp 18641 |
DrK |
#18636
実のところ、オフミに来て見るかといっているのですが・・・子守の関係上(実は乳児であるため)当分は無理でしょう。 親元にいるほうは、大阪オフミのときは、一緒に行くかといったのですが遠慮されてしまいました。算数についてもやってみればというのですが、やる気配はないですね。 |
今は楽園かな?
5月16日(金) 23:56:50
MAIL:satoka@star.odn.ne.jp 18642 |
シイサン |
おりょ、1桁はさしぶりだ〜
いつもそうですが力業です。数えました。(^^ゞ 見ると「ヤオミン君」の位置から攻める方が多いですね。 私は「どの2人を後ろに移して目隠しするか」で攻めました。 #18636 私もお会いしてみたいです〜!(^^;;;;; #18639 ぬ? なんか値上がりしてないっスか??(謎 |
埼玉っス
5月17日(土) 0:03:02
MAIL:shiisan@mvd.biglobe.ne.jp 18643 |
清川 育男 |
例の数列サイトによると、
ID Number: A008275 Sequence: 1,1,1,2,3,1,6,11,6,1,24,50,35,10,1,120,274,225,85,15,1,720, 1764,1624,735,175,21,1,5040,13068,13132,6769,1960,322,28,1, 40320,109584,118124,67284,22449,4536,546,36,1,362880, 1026576 Name: Triangle of Stirling numbers of 1st kind, s(n,k), n >= 1, 1<=k<=n. A(0,0)=1, A(N,K)=A(N-1,K-1)+(N-1)*A(N-1,K) 1 2 3 4 5 6 7 ------------------------------------- 1 | 1 2 | 1 1 3 | 2 3 1 4 | 6 11 6 1 5 | 24 50 35 10 1 6 | 120 274 225 85 15 1 7 | 720 1764 1624 735 175 21 1 |
広島市
5月17日(土) 16:45:40
MAIL:kiyo19@mxr.mesh.ne.jp 18644 |
??? |
エクセルのマクロです.
Option Explicit Sub Macro1() Sheets("Sheet1").Select Cells(1, 1).Value = 0 Range("A1").Select Dim a(5) As Integer Call saiki(0, a()) End Sub Sub saiki(ByVal n As Integer, ByRef a() As Integer) Dim takai As Integer Dim dame1 As Integer Dim j As Integer Dim jj As Integer a(n) = 0 While a(n) <= 5 If dame(n, a()) = 0 Then If n < 4 Then Call saiki(n + 1, a()) Else a(5) = 5 For j = 0 To 4 a(5) = a(5) + j - a(j) Next j takai = 1 j = 1 While takai <= 4 And j <= 5 dame1 = 0 jj = 0 While dame1 = 0 And jj < j If a(jj) > a(j) Then dame1 = 1 Else jj = jj + 1 End If Wend takai = takai + (1 - dame1) j = j + 1 Wend If takai = 4 Then Cells(1, 1).Value = Cells(1, 1).Value + 1 For j = 0 To 5 Cells(Cells(1, 1).Value, j + 2).Value = a(j) Next j End If End If End If a(n) = a(n) + 1 Wend End Sub Private Function dame(ByVal n As Integer, ByRef a() As Integer) As Integer Dim j As Integer dame = 0 j = 0 While dame = 0 And j < n If a(j) = a(n) Then dame = 1 Else j = j + 1 End If Wend End Function |
5月17日(土) 14:10:19
18645 |
拓パパ |
ヤオミン君が入れる場所は3ヵ所ですので、それぞれに関して数えました.皆さんと一緒ですね.
それ以降ずっと3行解答を考えていますが、未だにうまい解答は思いつきません. |
5月18日(日) 11:24:09
MAIL:dr-yasu@nifty.com 18646 |
栗原英治 |
今回の問題は、n人いて、k人が前を見ることができるとしたとき、清川さんの記事(#18644)にあるように、第1種のスターリング数Sn,k(絶対値で考えます)になるようです。
Toru Fukatsuさん(#18629)は、漸加式A(n+1,k)=A(n,k-1)+n A(n,k) より、 Fn(x)=1(1+x)(2+x)-----(n-1+x) のx^(k-1)の係数となることを示されています。 今回の問題では、S6,4を求めることになりますが、takaisaさん(#18622),まるケンさん(#18611) の考え方を発展させれば、一般に Sn,kは(n-1)以下の整数より(n-k)個選んで掛け合わせたものの和(命題) となることを示せると思います。 考え方は、次の通り。 n人を大きい順に0,1,・・・,n-1と番号をつけます。 ・k=nのときは、全員が見えるときで、この場合は小さい順に並ぶ必要があるので、1通り。 よって、命題は成り立ちます。 ・k=n-1のときは、1人だけ前が見えない状況になります。 一番大きい0番目の人は必ず前が見えるので、これ以外の(n-1)人から見えない人を1人選びます。これをm番目の人(m=1〜n-1)とすると、残りの人は小さい順番に並ぶ必要があるので、この人が前が見えなくなるのは、(m-1)から0までの人の後ろに並ぶm通り。 したがって、合計=1+2+・・・+(n-1)通り このときも、命題は成り立ちます。 ・さて、一般にk=n-j(j=1〜n-1)のとき、すなわちj人前が見えない状況を考えましょう。 前が見えないj人を0番以外から選びます。これは、n-1以下の整数をj個選ぶことに相当します。 これらを大きい順にm1,m2,・・・,mjとします。 残りの(n-j)人は、小さい順に並ぶ必要があります。 まず、m1の人を並べます。k=n-1のときと同じで、並べられるのは(m1-1)から0までの人の後でm1通り。 次に、m2の人を並べます。m2より大きい人は、最初から並んでいるか、あるいはあとから並ぶか、いずれにしても全員(m2-1から0のm2人)が、既に並んでいます。 従って、これらの人の後ろに並ぶm2通り。 以下、同様にして、この場合は、m1×m2×・・×mj通り。 よって、合計では、結局(n-1)以下の整数をj個掛け合わせたものの和となることになります。 ところが、j=n-kなので、(n-1)以下の整数を(n-k)個掛け合わせたものの和となり、命題が成り立つことが分かります。 |
高松
5月19日(月) 20:50:57
MAIL:Kurihara@mail.netwave.or.jp HomePage:数学の小部屋 18647 |
栗原英治 |
補足です。
Sn,n=1 Sn,n-1=Σj(j=1〜n-1)=n(n-1)/2(ただし、nは2以上) Sn,n-2=Σj×k(j,k=1〜n-1,j>k)=n(n-1)(n-2)(3n-1)/24(ただし、nは3以上) 今回の問題では、S6,4=6×5×4×17/24=85通りとなります。 なお、一般式でなく、n,kを具体的な整数とするときの値でよければ、数式処理ソフトを使って、Fn(x)=1(1+x)(2+x)-----(n-1+x) を展開すれば、一発でOKですね。 n=6のときは、 Fn(x)=(1+x)(2+x)(3+x)(4+x)(5+x)=120+274x+225x^2+85x^3+15x^4+x^5となり、S6,1=120, S6,2=274, S6,3=225, S6,4=85, S6,5=15, S6,6=1と求まります。 |
高松
5月19日(月) 21:11:21
MAIL:Kurihara@mail.netwave.or.jp HomePage:数学の小部屋 18648 |
ミミズクはくず耳 |
遅くなりました。
皆さんと同じく、背の高い人が加わっていく漸加式で解きました。 n人いて前が見えない人がk人の場合を(n,k)として、(n,0) = 1 ですが、 (n,2) = (n-1,2)+(n-2,1)*(n-1)+(n-3,0)*(n-1)(n-2) (n,1) = (n-1,1)+(n-2,0)*(n-1) を順に計算しました。 |
会社かなっ!
5月20日(火) 9:51:51
MAIL:mae02130@nifty.com 18649 |