- 1 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 01:16:00 ]
- 他人のソースを読むことは非常に勉強になります。
と言うわけで、初心者〜プロの方まで様々な人が書いたソースを見て、より良いプログラムを作れるようになろうと言う目論見です。 問題は未来アンカーで踏んだ人が空気を読んだ問題を出しましょう。 解答ソースを貼る人用テンプレ 【C言語歴】 (例)4年 【レベル】 (例)初心者、プロ、学校で習った程度 など 【コンセプト】 (例)処理速度重視、可読性重視、容量重視 など 【コメント】 (例)みっくみくにしてやんよ。など、有れば 長すぎるソースはこちらへ ttp://codepad.org/ 宿題は C/C++の宿題片付けます 130代目へ pc12.2ch.net/test/read.cgi/tech/1250204272/ 相談は C言語なら俺に聞け(入門篇)Part54などへ pc12.2ch.net/test/read.cgi/tech/1254829314/
- 152 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 23:51:13 ]
- >>151
それも数学の問題。プログラミングできないなら無理に出題しないでいいよ。 答えは全てのカードを覚えるのにかかる回数26回と 全てのカードを取るのにかかる回数26回の合わせて52回。
- 153 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:02:36 ]
- >>152
不正解 覚えるのは25回で十分
- 154 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:16:41 ]
- いや26回だ
- 155 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:21:08 ]
- >>154
指摘してやってるのに分からんいなんてアホなのか? 25回覚えて、取り始めは、残った2枚のうちの1枚から始めれば良い。 (1枚取った時点で全てのカードが把握できる)
- 156 名前:152 mailto:sage [2010/04/25(日) 00:31:34 ]
- >>155
言われみればそうだね。でも154はおれじゃねえ。
- 157 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:44:56 ]
- いや合わせて50回だ
- 158 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:50:12 ]
- そうだorz
- 159 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:51:41 ]
- >>157
>いや合わせて50回だ 何を合わせるんだ?
- 160 名前:157 mailto:sage [2010/04/25(日) 01:23:37 ]
- 最大40手 50回は間違い
- 161 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:24:10 ]
- 最大52回
- 162 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:32:21 ]
- ↓の26回を2回繰り返す
A-2 3-4 5-6 7-8 9-10 J-Q K-A A-A 2-3 2-2 3-3 4-5 4-4 5-5 6-7 6-6 7-7 8-9 8-8 9-9 10-J 10-10 J-J Q-K Q-Q K-K
- 163 名前:157 mailto:sage [2010/04/25(日) 02:07:42 ]
- A_1-A_2 A_3-A_4 A_5-A_6 A_7-A_8 A_9-A10 A11-A12 A13-B_1
C_1-D_1 B_2-B_3 C_2-D_2 C_3-D_3 B_4-B_5 C_4-D_4 C_5-D_5 B_6-B_7 C_6-D_6 C_7-D_7 B_8-B_9 C_8-D_8 C_9-D_9 B10-B11 C10-D10 C11-D11 B12-B13 C12-D12 C13-D13 26回中、終わった数は次の13回 C_1-D_1 C_2-D_2 C_3-D_3 C_4-D_4 C_5-D_5 C_6-D_6 C_7-D_7 C_8-D_8 C_9-D_9 C10-D10 C11-D11 C12-D12 C13-D13 ここまでで、A_1からA13 の位置が全て分かっている。 ここまでで、B_1からB13 の位置が全て分かっている。 ここまでで、C_1からC13 の位置が全て分かっている。 ここまでで、D_1からD13 の位置が全て分かっている。 まだ出ていないのは、ない。 残っているのは13回。合計39回。 ↓の20回を2回繰り返す A_1-A_2 A_3-A_4 A_5-A_6 A_7-A_8 A_9-A10 A11-A12 A13-B_1 A_1-B_1 B_2-A_2 B_3-A_3 B_4-A_4 B_5-A_5 B_6-A_6 B_7-A_7 B_8-A_8 B_9-A_9 B10-A10 B11-A11 B12-A12 B13-A13 …
- 164 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 04:07:54 ]
- 1と2だけの8枚のとき6回、1と2と3だけの12枚のとき10回だから、52枚なら50回が正解
- 165 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 06:15:43 ]
- なかなか難しいなw
結局何手が正しいのかわからないが、ネットワーク対戦とか少し面白そうと思ってしまったww
- 166 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 07:51:20 ]
- 方法はともかく、トランプの持つ情報量考えたら下限は見えてくるんじゃないかなぁ。
トランプの並べ方は52!/(4!^13) = 249987600 (27.897 bit) けど、引いたカードをどう考えればいいんだろう。 最初は1/13の確率で引くカードを予言できるから、1枚引くと3.7 bit得られることになるんだが、 2枚目以降は引くカードによって得られる情報量が変わってくる。
- 167 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 08:47:00 ]
- 分かった。正解は39回だ。
各々の数に対して、丁度半分の2枚づつの情報が分かればOK。 1枚目は必ず知らない情報のカードをめくる。 そのカードの数の情報が1枚以下しか出てない場合、次に引くカードは知らない情報のカード。 2枚分かっていれば、分かっているカード組み合わせて表にしておく。 これを繰り返していけば、最悪、39回で全てのカードを表にできる。
- 168 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 08:55:56 ]
- >>167
A-2 A-2 3-A 3-A 4-2 4-2 5-3 5-3 6-4 6-4 7-5 7-5 8-6 8-6 9-7 9-7 10-8 10-8 J-9 J-9 Q-10 Q-10 K-J K-J 最初から24手目までこういう風に出たら?
- 169 名前:167 mailto:sage [2010/04/25(日) 09:05:18 ]
- 何か少しだけ違う気がするな。
数の種類が奇数だと、+1回になりそうな気もするし、 >>155と組み合わせられる気もするし 無理やり取ってしまえば、上手く行きそうな気もする…。 細かいところまでは分からんが、正解は38〜40回のどれか
- 170 名前:169 mailto:sage [2010/04/25(日) 09:07:05 ]
- >>168
おー、言われてみれば、そうだね。 2枚目が、被る場合も場合もあるのか…。 なかなか、上手くいかんの…
- 171 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 09:42:23 ]
- >なかなか、上手くいかんの…
最大に上手く行かない手をどうぞ。 >>163 の者だけど A_1-B_2 C_1-D_2 A_3-B_1 C_3-D_1 A_4-C_2 C_4-D_2 A_5-B_3 C_5-D_3 A_6-B_4 C_6-D_4 A_7-B_5 C_7-D_5 A_8-B_6 C_8-D_6 A_9-B_7 C_9-D_7 A10-B_8 C10-D_8 A11-B_9 C11-D_9 A12-B10 C12-D10 A13-B11 C13-D11 ここまでで24回、開いたカードは A_1 A_2 A_3 A_4 A_5 A_6 A_7 A_8 A_9 A10 A11 A12 A13 B_1 B_2 B_3 B_4 B_5 B_6 B_7 B_8 B_9 B10 B11 B== B== C_1 C_2 C_3 C_4 C_5 C_6 C_7 C_8 C_9 C10 C11 C12 C13 D_1 D_2 D_3 D_4 D_5 D_6 D_7 D_8 D_9 D10 D11 D== D== 後はどの裏カードから開いても、26回。合計50回 しかし、同じ開く順番なら A_1-B_2 C_1-A_1 D_2-B_2 clear3 A_3-B_1 C_3-A_3 D_1-B_1 clear6 A_4-C_2 C_4-A_4 D_2-C_2 clear9 A_5-B_3 C_5-A_5 D_3-B_3 clear12 A_6-B_4 C_6-A_6 D_4-B_4 clear15 A_7-B_5 C_7-A_7 D_5-B_5 clear18 A_8-B_6 C_8-A_8 D_6-B_6 clear21 A_9-B_7 C_9-A_9 D_7-B_7 clear24 A10-B_8 C10-A10 D_8-B_8 clear27 A11-B_9 C11-A11 D_9-B_9 clear30 A12-B10 C12-A12 D10-B10 clear33 A13-B11 C13-A13 D11-B11 clear36 *12-*13 *12-*12 *13-*13 clear39 合計39回
- 172 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 10:08:20 ]
- >>171
つまり、あれか? 情報がなんちゃらかんちゃら考えずに 分かってる組み合わせで取ってくのが最善手ってことか?
- 173 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 10:12:51 ]
- 取れるカード開いたときにとらないのはどう考えても開く回数の無駄だし。
- 174 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 10:33:12 ]
- 1枚目開いて知ってるのが出てきたときは、取らないと損。
2枚目で知ってるのが出たときは、取らなくてよい(取ったら損する場合があるが、取って得する場合はない)
- 175 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 10:43:38 ]
- >>171
> しかし、同じ開く順番なら > A_1-B_2 C_1-A_1 D_2-B_2 clear3 これは3手目以降が変わっていくのでは?
- 176 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 13:06:56 ]
- [最悪のケース]
裏がえしのカードをめくると既に見たことのある数字がでまくる (なければどれでも同じ) ただし裏がえしのカードを二枚同時にめくったときは 二枚目は一枚目と違う数字の中から既に見たことのある数字がでまくる (なければ一枚目と違う数字ならどれでも同じ) 最後の裏がえし4枚は同じ数字なのでめくると同時にとれる だから52-2で50回だっつーの、とっくに結論でてるだろ いい加減スレ違いなんだから終わりにしろよ
- 177 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 13:20:30 ]
- 2枚同時じゃなきゃにめくれないのか。onz
- 178 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 13:34:31 ]
- どうしても理解できない人は、まだ開けたことのない所のカードをめくると
1 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 … の順番にでてくる神経衰弱のプログラムを作ってみればいいんじゃない 50回だからw
- 179 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 13:44:16 ]
- 神経衰弱に2枚同時なんてルールはねーだろw
- 180 名前:デフォルトの名無しさん mailto:178 [2010/04/25(日) 14:00:57 ]
- ごめん39だわ…
- 181 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 14:06:44 ]
- >>176==178
最後の裏がえし4枚は同じ数字なのでめくると同時にとれる なんで、最後の4枚が同じ数字って予言出来るの? そりゃ、>>1 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 って並べれば、残るのは全部13だけど、最後がこんなパターンだったら? 11 12, 11 12, 11 13, 11 13, 12 13, 12 13
- 182 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 14:22:23 ]
- >>157==171?
トランプとしては直感的じゃないけどA->1, 10->A, J->B, Q->C, K->Dで表す。 こんな場合どうなる?(以下、俺の試算) 1-D, 2-D, 3-D, 4-D, 5-C, 6-C, 7-C, 8-C, 9-B, A-B (ここまで10回 0組) 1-1, 2-2, 3-3, 4-4, 5-5, 6-6, 7-7, 8-8, 9-9, A-A (ここまで20回10組) 1-B, 2-B, 3-A, 4-A, 5-9, 6-9, 7-8 (ここまで27回10組) あとは、見てないもう一枚をみるところから始めれば 全てのカードが把握できるから、残り16回16組 ( 計43回 )
- 183 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 14:47:51 ]
- 182で正解のような気がするが
- 184 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 15:01:48 ]
- マスターマインドというゲームがあります
4つの中身が不明な箱と そのなかに4色のボールが入っていて (同じ色は何度でも使えます) 中身を知らない方の人が4つ箱に入っているボールの色を予想して 中身を知っている方の人が 1.色だけがあっている数 2.色と場所があっている数 を教えます(ウソはつかないものとします) 正解を出すのに最低何回質問をすればよいでしょうか?
- 185 名前:160 mailto:sage [2010/04/25(日) 15:04:02 ]
- A_1-A13, A_2-B13, A_3-C13, A_4-D13, A_5-A12, A_6-B12, A_7-C12, A_8-D12, A_9-A11, A10-B11 (ここまで10回 0組)
B_1-A_1, B_2-A_2, B_3-A_3, B_4-A_4, B_5-A_5, B_6-A_6, B_7-A_7, B_8-A_8, B_9-A_9, B10-A10 (ここまで20回10組) C_1-C11, C_2-D11, C_3-C10, C_4-D10, C_5-D_9, C_6-C_9, C_7-C_8 (ここまで27回10組) ここまでで場所の分かっているカードは A_1〜A10,A11,A12,A13 B_1〜B10,B11,B12,B13 C_1〜C_8,C_9,C10,C11,C12,C13 D_9,D10,D11,D12,D13 場所の分かっていないカードはD_1〜D_8 の8枚。残りの組は16組。27+16=43
- 186 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 15:08:16 ]
- 数学
science6.2ch.net/math/ よし、とりあえず板移動w
- 187 名前:GAME mailto:sage [2010/04/25(日) 15:20:18 ]
- ロよッもテ動かせ
i-libro.net/game/playroom/showgame.php?gameid=79
- 188 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 15:22:01 ]
- 1 2 3 1 4 1 5 1 6 2 7 2 8 2 9 3 10 3 11 3 12 4 13 4 5 6 7 8 9 10 11 12 13 5 4 6 7 6 8 7 9 8 10 9 11 10 12 11 13
- 189 名前:160 mailto:sage [2010/04/25(日) 16:21:37 ]
- A_1-A_2 A_3-B_1 A_4-C_1 A_5-D_1 A_6-B_2 A_7-C_2 A_8-D_2
A_9-B_3 A10-C_3 A11-D_3 A12-B_4 A13-C_4 B_5-B_6 B_7-B_8 B_9-B10 B11-B12 B13-C_5 D_4-C_6 C_7-D_6 C_8-D_7 C_9-D_8 C10-D_9 C11-D10 C12-D11 C13 ここまでで、25回。 場所の分かっているカードは、 A_1〜A13 B_1〜B13 C_1〜C13 D_1〜D_4,===,D_6〜D11,===,=== 場所の分かっていないカードは、D_5,D12,D13 すでに出来ているペアはC13-*13の1組、残りは25組。25+25=50 しかし、同じ開く順番なら (A_1)-(A_2) (A_3)-(B_1) (A_1-B_1) (A_4)-(C_1) (A_5)-(D_1) (C_1-D_1) (A_6)-(B_2) (A_2-B_2) (A_7)-(C_2) (A_8)-(D_2) (C_2-D_2) (A_9)-(B_3) (A_3-B_3) (A10)-(C_3) (A11)-(D_3) (C_3-D_3) (A12)-(B_4) (A_4-B_4) (A13)-(C_4) (B_5-A_5) (B_6-A_6) (B_7-A_7) (B_8-A_8) (B_9-A_9) (B10-A10) (B11-A11) (B12-A12) (B13-A13) C_5-(D_4) (C_4-D_4) (C_6)-(C_7) (D_6-C_6) (C_8)-(D_7) (C_7-D_7) (C_9)-(D_8) (C_8-D_8) (C10)-(D_9) (C_9-D_9) (C11)-(D10) (C10-D10) C12-(D11) (C11-D11) C13 ここまでで、42回とC13 場所の分かっていないカードは、D_5,D12,D13 まだペアにならなくて、場所の分かっているカードはC_5,C12,C13 残りは3組。42+3=45
- 190 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 16:26:40 ]
- 質問するスレ間違えたようなので引っ越します
- 191 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 16:59:55 ]
- バイバーイ
- 192 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 17:16:29 ]
- 46回?
1234567890JQK11223344556677889900JJQQKK1234567890JQK これを左から2枚ずつ引いていき、 覚えているのがあったら新しいのと覚えているのを引く。 12 34 56 78 90 JQ K1 11 12 22 23 33 34 44 45 55 56 66 67 77 78 88 89 99 90 00 0J JJ JQ QQ QK KK K1 11 22 33 44 55 66 77 88 99 00 JJ QQ KK
- 193 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:50:26 ]
- >>184
最低だと、1でいいんじゃないのか?
- 194 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:55:38 ]
- バカがいるw
- 195 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 22:40:43 ]
- >>194
いや、そのくらい軽くこなさないとマインドシーカーはクリアできないよ。 つーか終盤になると質問すら出来んレベル
- 196 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:07:26 ]
- >>194
ん?1回目で当たったら1になるんじゃないのかい? 問題の不備だとは思うが。
- 197 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 00:04:50 ]
- >>152
42回が正解 codepad.org/XrqVqoQJ
- 198 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 01:04:46 ]
- >>130
仕事はやいですね cpyすっごいならんでるよ >>131 品質△ (悲 次はもっといい問題作ってきます 作者の自己解答上げておきます codepad.org/c32vQo2w
- 199 名前:160 mailto:sage [2010/04/26(月) 01:31:28 ]
- >>197
40回? A23A4A5A6272829303J3Q4K44556566778788990900JJQJQQKKK A2 3A AA 4A 5A AA 62 22 72 82 22 93 33 03 J3 33 Q4 K4 44 44 55 56 66 55 66 77 78 88 77 88 99 00 99 00 JJ QQ JJ QQ KK KK (A)(2) (3)(A) (AA) (4)(A) (5)(A) (AA) (6)(2) (22) (7)(2) (8)(2) (22) (9)(3) (33) (0)(3) (J)(3) (33) (Q)(4) (K)(4) (44) ((4)4) ((5)5) (5)(6) (66) ((5)5) ((6)(6)) ((7)7) (7)(8) (88) ((7)7) ((8)(8)) ((9)(9)) ((0)0) ((9)9) ((0)(0)) ((J)(J)) ((Q)Q) ((J)J) ((Q)(Q)) ((K)(K)) ((K)K)
- 200 名前:160 mailto:sage [2010/04/26(月) 02:14:09 ]
- >>197
もとい!42回。 A23A4A5A6272829303J3Q4K44556566778788990900JJQJQQKKK A2 3A AA 4A 5A AA 62 22 72 82 22 93 33 03 J3 33 Q4 44 K4 44 55 56 66 55 66 77 78 88 77 88 99 90 00 99 00 JJ JQ QQ JJ QQ KK KK (A)(2) (3)(A) (AA) (4)(A) (5)(A) (AA) (6)(2) (22) (7)(2) (8)(2) (22) (9)(3) (33) (0)(3) (J)(3) (33) (Q)(4) (44) (K)(4) ((4)4) ((5)5) (5)(6) (66) ((5)5) ((6)(6)) ((7)7) (7)(8) (88) ((7)7) ((8)(8)) ((9)9) (9)(0) (00) ((9)9) ((0)(0)) ((J)J) (J)(Q) (QQ) ((J)J) ((Q)(Q)) ((K)K) ((K)(K))
- 201 名前:192 mailto:sage [2010/04/26(月) 03:19:16 ]
- やっぱ46回になる。
ttp://codepad.org/sBOxHahJ また、「カードの総数 - 数字の数 / マークの数」 みたいな式でもあらわせるかも。
- 202 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 04:13:55 ]
- >>201
8手目に+A-Aで取らないという選択肢 +A+2 +3+4 +5+6 +7+8 +9+0 +J+Q +K-A *A+A -2*2 -3*3 #10手03組 -4*4 -5*5 -6*6 -7*7 -8*8 -9*9 -0*0 -J*J -Q*Q -K*K #20手13組 /A-A /2+2 /3+3 /4+4 /5+5 /6+6 /7+7 /8+8 /9+9 /0+0 #30手23組 /J+J /Q+Q /K+K
- 203 名前:192 mailto:sage [2010/04/26(月) 07:42:45 ]
- >>202
それは、後に出てくるのが分かっている上での最善の手の気もする。 >>151に↓と書いてあるけど、この解釈の仕方により変わるので難しいが。 ※但しコンピュータは最善の手を実行するものとする。 作者さんの答えきぼん。
- 204 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 08:07:04 ]
- 2回目のめくりである札の2枚目がわかったときに、
次の手でその2枚を取るのはどう考えても悪手。
- 205 名前:189 mailto:sage [2010/04/26(月) 09:30:20 ]
- 45.5 というか やっぱり 46回だ。
>>188なら>>204の作戦にも強い。ID無いのが残念。
- 206 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 09:46:02 ]
- >>205
A01-A02 A03-B01 A04-C01 A05-D01 A06-B02 A07-C02 A08-D02 A09-B03 A10-C03 A11-D03 A12-B04 A13-C04 B05-B06 B07-B08 B09-B10 B11-B12 B13-C05 ここまで17手 0/26組 これで1-13が2組出ているんだから後は消していくだけじゃね? C06-C13 がでたら A06-A13を取る D04-D13 がでたら B04-B13を取る ここまで35手 18/26組 記憶している残りのカードを取る A01-05 & C01-05 B01-03 & D01-03 ここまで43手 26/26組
- 207 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 09:53:03 ]
- >>189で言うと (A_4-B_4) これが悪手
- 208 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 10:04:01 ]
- 207は忘れてくれww
- 209 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 10:10:00 ]
- 悪手は悪手だよ。
C_4とD_4が2回目のめくりで出てるから回数には影響しないってだけで。
- 210 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 10:58:00 ]
- もうトランプの話題はいいだろ。
最大値は計算するまでもないわけだから、 期待値とかどう?
- 211 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 11:25:44 ]
- >>210 最大値は43だろ。
- 212 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:57:10 ]
- She never eats NONI.
- 213 名前:192 mailto:sage [2010/04/26(月) 17:46:05 ]
- >>204
分かったかも。 覚えるのに2ターン、取るのに1ターンの3ターンかかり無駄という感じか。 2枚目で覚えているのを取れば、覚えるのに1ターン、取るのに1ターンにできる。 厳密には、覚えたのが1枚残るから、3-1=2、2-0.5=1.5ターンという感じか。
- 214 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 18:12:45 ]
- >>189
開いてないC13を分かってるカードに分類しちゃだめだろw
- 215 名前:100 mailto:sage [2010/04/26(月) 18:33:16 ]
- アク禁その他で遅くなりました。
私の作った関数はこんな感じ。 -- using namespace std; typedef complex<double> coordinate; static vector<coordinate> func(coordinate const pa, coordinate const pb, double lac, double lbc) { double lab = abs(pb - pa); double s = (lac + lbc + lab) / 2; double s2abc = s * (s - lac) * (s - lbc) * (s - lab); vector<coordinate> rtn; if (s2abc < 0) return rtn; double lcd = sqrt(s2abc) / lab * 2; double lad = sqrt(lac * lac - lcd * lcd); double lbd = sqrt(lbc * lbc - lcd * lcd); double k = (lbd > lab ? -lad / (lbd - lad) : lad > lab ? lad / (lad - lbd) : lad / (lad + lbd)); coordinate pd = pa + k * (pb - pa); if (lcd > 0) { rtn.push_back(coordinate(pd.real() - lcd / lab * (pb.imag() - pa.imag()), pd.imag() + lcd / lab * (pb.real() - pa.real()))); } rtn.push_back(coordinate(pd.real() + lcd / lab * (pb.imag() - pa.imag()), pd.imag() - lcd / lab * (pb.real() - pa.real()))); return rtn; } -- 考え方はヘロンの公式で面積を求めてからCからの垂線を延ばすという意味で>124とほぼ同じ。>120もそうかな。 後は水平だろうとそうでなかろうと、垂線の足の位置はLadとLbdの比で決まる。どっち側かは兎も角。 最後に足から両側に垂線を延ばせば両方の点Cが求まる。 # 一点しかないとき(=面積が0)のときはもっとLcdを求める必要もないんだけど、そこは横着w
- 216 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 18:43:33 ]
- 円の方程式を二つつくる
引く ax + by = cができる 円の方程式の片方に代入して解の公式を使う 解がある場合にax + by = cに代入すれば座標が求まる
- 217 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 23:48:45 ]
- >>198
なるほど、printfに%.8sなんて使い方あったのですか。目から鱗。
- 218 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 02:28:28 ]
- >>184
面白い。 最初はバラバラに予想して何色存在するかを見るのがいいのかな。
- 219 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 09:21:04 ]
- >>184
たぶん4回。 1回目は0123の一手。 それでHit0、Blow3の時が一番難しいと思うが、 2回目は0122とかと1箇所を変えて入れ、 H0B2、H0B3、H1B1、H1B2のどれになるかで予想を変える。 2回目の結果で一番難しいのは、多分H0B2とBlowが減ってしまうやつ。 それでも、色の種類が3、2は1つ以下、3は1つ以上という事から、 答えを15種類ぐらいにしぼれる。 3回目はその15種類のうちのひとつの3200とかにすると、 その結果によって、4回目になりうる入力は1つに絞られるはず。 ただ、これはプログラムの問題というより、数学の問題だな。 ランダムで生成された問題を100回解いて、 平均回数を少なくするプログラムを作れとかの方が面白いかも。
- 220 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:32:36 ]
- 正しく(もっとも効率よく)質問をするプログラムを作るのも難しくて面白いと思われ
- 221 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 03:15:57 ]
- >>203 も言っているように、後で出てくるカードが分かっていなかったら。
12 31 41 51 62 72 82 93 03 J3 Q4 K4 55 66 77 88 99 00 JJ QQ KK 54 67 66 87 98 09 J0 QJ K5 QQ KK 11 22 33 44 11 22 33 44 55 77 88 99 00 JJ 46回
- 222 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:22:15 ]
- >>221
なんで13〜21手の所でペア取っちゃうんだ?
- 223 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:24:43 ]
- そうじゃないと手数が増えるからだろw
- 224 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:34:35 ]
- 残しておいて3枚目引いたときに取った方が手数減ると思うが
- 225 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:37:06 ]
- 2枚目をめくった時に3枚目を引いたら、4枚目が出るまでスルーな
- 226 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:39:47 ]
- 3枚目、4枚目がめくりの2枚目に出る可能性がある以上、
一回目のめくりで2枚目が出たら次に1枚目をめくるのが正しい。
- 227 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:42:23 ]
- >>226
13種類の絵柄で、めくりの2枚目で3枚目4枚目を出せるのは何種類だ?
- 228 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:46:20 ]
- 何種類とか関係意味わかんねーよw
だいたい、とっておいてもその場でめくるよりめくる回数増える可能性こそあれ、 減る可能性は全くないのにw
- 229 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:49:11 ]
- >>228
じゃあ言い方を変えるわ。 >>224-225の取り方で最大何手になるよ
- 230 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:51:17 ]
- 残した方が手数が減るって主張してるのはお前だろ?
46手より小さい手をお前が示さなきゃだめだろw
- 231 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 06:59:47 ]
- >>230
>>206
- 232 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 07:16:16 ]
- そういう並びに強いってだけだしなあ。
>>224-225で 1 2 1 2 3 2 3 2 4 3 4 3 5 4 5 4 6 5 6 5 7 6 7 6 8 7 8 7 9 8 9 8 10 9 10 9 11 10 11 10 12 11 12 11 13 12 13 12 1 1 13 13 これやってみろよ
- 233 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 07:30:51 ]
- 50手か
- 234 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 07:33:58 ]
- 結局並びかたによって2枚目の時点でとるか、3枚目まで待つかどっちがいいか
一概には言えないってことか。
- 235 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:54:01 ]
- >>234
3枚目まで待った方がいい。そしてそれは>>174が既に指摘してる。 待っても待たなくても同じか、待った方が手数減るかのどっちかで 待たない方が手数減るパターンは有り得ないのだから、待った方がいい。 引いた時点で、待っても得しないと分かりきっている場合は引いてしまってもいいが、別に引くメリットはない。
- 236 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:18:12 ]
- >>235
お前はちょっと前の>>232すら見えないのか?
- 237 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:36:01 ]
- >>236
一概には言えないなんてとぼけたこと抜かしてるから、 常にとらなければいいと言ってるだけ。
- 238 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:40:07 ]
- A01 A02 B01 B02 A03 C02 B03 D02 A04 C03 B04 D03 A05
C04 B05 D04 A06 C05 B06 D05 A07 C06 B07 D06 A08 C07 B08 D07 A09 C08 B09 D08 A10 C09 B10 D09 A11 C10 B11 D10 A12 C11 B12 D11 A13 C12 B13 D12 C01 D01 C13 D13 同じ数字が3回目に出てから取る場合。 (A01)-A02 (B01)-B02 A03-C02 B03-D02 A04-C03 B04-D03 A05-C04 B05-D04 A06-C05 B06-D05 A07-C06 B07-D06 A08-C07 B08-D07 A09-C08 B09-D08 A10-C09 B10-D09 A11-C10 B11-D10 A12-C11 B12-D11 (A13)-C12 (B13)-D12 C01-A01 D01-B01 C13-A13 D13-B13 ここまでで28回 すでに取れたのは4ペア、残り22ペアなので、22回。28+22=50 同じ数字が2回目に出てから取る場合。 (A01)-(A02) (B01-A01) (B02-A02) (A03)-(C02) (B03-A03) (D02-C02) (A04)-(C03) (B04-A04) (D03-C03) (A05)-(C04) (B05-A05) (D04-C04) (A06)-(C05) (B06-A06) (D05-C05) (A07)-(C06) (B07-A07) (D06-C06) (A08)-(C07) (B08-A08) (D07-C07) (A09)-(C08) (B09-A09) (D08-C08) (A10)-(C09) (B10-A10) (D09-C09) (A11)-(C10) (B11-A11) (D10-C10) (A12)-(C11) (B12-A12) (D11-C11) (A13)-(C12) (B13-A13) (D12-C12) (C01-D01) (C13-D13) 38回
- 239 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:44:13 ]
- はぁ?
>>232は3枚目まで待った場合に2枚目で取る場合より手数が増えるパターンなんだけど?
- 240 名前:238 mailto:sage [2010/05/01(土) 11:47:35 ]
- 同意
- 241 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:49:47 ]
- わかってると思うけど>>239は>>235=>>237へのレスね
- 242 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:56:36 ]
- >>188の並びなら2枚目が一回目にめくられても3枚目以降に取っておいた方が、
その場で1・2枚目を取るよりも手数が少なくなる。 >>232の並びなら2枚目が一回目にめくられたら2回目で1枚目をめくって取ったほうが、 3枚目以降に取っておくより手数が少なくなる。 片方のやり方がもう一方のやり方より絶対少ないとはいいきれないので、 一概には言えないってのは正しい。
- 243 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:12:27 ]
- >>239
3枚目まで待つってどういう場合想定してる? (1 2), (3 1)と引いたときに次に(1 1)を引くのは無駄だと言ってるだけで、 (1 2)の後に1引いたのに3枚目の1出るまで待てなんて気違いはいないぞ。
- 244 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:23:48 ]
- >>243
>>224-225はお前が言う気違いのやり方のことだし、 そのパターンで手数が減るのが>>188の並びなんだよw 理解してないならしゃしゃり出てくんなよ
- 245 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:53:22 ]
- def func(cards){
unknown = cards # まだ引いてない未知のカード known = [] # 引いたので既知だがまだとってないカード i = 1 while(unknown, knownがともになくなる){ if(unknownがまだある){ card1 = unknownから1枚引く if(card1 と同じ数がknownにある){ card2 = knownからcard1と同じ数を取り出す print '%2d: (%2d* %2d)' % (i, card1, card2) } else{ card2 = unknownから1枚引く if(card1 != card2){ knownにcard1を追加 knownにcard2を追加 } print '%2d: (%2d* %2d*)' % (i, card1, card2) } else{ # unknownがもうない card1 = knownから1枚取り出す card2 = knownからcard1と同じ数を取り出す print '%2d: (%2d %2d)' % (i, card1, card2) } i += 1 } } C/C++コードじゃなく擬似コードだが、カード引く順番はこれよりも効率よくやる方法ある?
- 246 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:00:57 ]
- >>244
すまない。そんなバカがいることに気づかず>>174を出してしまった。 >>188のカードが3枚足りないことに気づかなかった君と同じくらいドジで申し訳ない。
- 247 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:03:42 ]
- 上手く揚げ足とったつもりだろうけど、3枚どう追加してもかわんねーんだよw
- 248 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:09:25 ]
- ていうか、あんまり真面目によんでなかったけど、ほんとに>>224-225はそうやりたかったの?
読み直したら 225 名前:デフォルトの名無しさん [sage]: 2010/05/01(土) 06:37:06 2枚目をめくった時に3枚目を引いたら、4枚目が出るまでスルーな での2枚目は、めくりの2枚目だから>>225は分かってるように思えるんだが。 めくりの1枚目とめくりの2枚目の区別をつけて、めくりの2枚目で引いたときに引き直さなくていいと言ってるなら >>174やら>>235, >>237と同じ意見。
- 249 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:13:42 ]
- 読んでないなら口出すなよ、頼むから。
>>222読めば>>224-225の意味はわかるだろ。 一々バカに説明する身にもなってくれ。
- 250 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:15:33 ]
- >>247
じゃあ、3枚追加したら何回になる? >>188のカードに足りない5 12 13を追加して 君の方法で 1 2 3 1 4 1 5 1 6 2 7 2 8 2 9 3 10 3 11 3 12 4 13 4 5 6 7 8 9 10 11 12 13 5 4 6 7 6 8 7 9 8 10 9 11 10 12 11 13 5 12 13 を、46回よりも少なくできたのなら、俺が間違いだったことになる。
- 251 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:22:39 ]
- >>206
- 252 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:26:20 ]
- >>249
>>222は読みようがない。それまで話の流れ的に使われていた A23A4A5A6272829303J3Q4K44556566778788990900JJQJQQKKK を使っていたとすれば、Q4 K4の後に5はこない。
|

|