- 2010-07-27 (火)
- Twinkle Twinkle Little Star! | よもや話
前回のエントリーで紹介した、ビービットのインターン問題の回答編です!
Twitter上でも結構な方にチャレンジしてもらい、採用メンバーともども感謝の一言です。
では、早速答えにいきましょう。
こちらは、ビービットの某プログラマーが0.5秒で解いたのが目下最速です(汗
あ、いまきはそんな早くは解けませんでしたが・・
問題1.3×3のケース(正答率 60%)
この問題は結構解けた人が多かったのですが、答えのパターンが2つありました。
2つ目は一旦伏せておいて、まずは多かった回答を紹介したいと思います。
答え: 先手を取り、真ん中に横棒(または縦棒)をぶち抜く
図にするとこんな感じ。
こうすると、
- 相手が端っこを1マス消したら、自分も端っこ1マスを消す
- 相手が真ん中の1マスを消したら、自分も真ん中の1マスを消す
- 相手が3つ消したら、2つ消す
- 相手が2つ消したら、3つ消す
ということで、無事必勝の形に持ち込むことができます。
さて、問題は6×6です。
問題2. 6×6の場合(正答率3%)
正解の前に、まずは「白紙」が圧倒的に多かったことを書いておきたいと思います。
その他、ハズレの回答としては・・・
- 3×3が4つあると見なして戦う
- 後手に回り、相手との消したマスの合計が偶数になるようコントロールする
- 「負けてくれ、今回は!」と頼み込む
うん、3つ目とか、確かに相手によっては必勝法ですが、点数は付けにくいっす(汗
と言うわけで答えです。
答え: 後手に回り、相手の打ち手に点対称になるように指し続ける
判りやすいように図にすると、こんな感じ。
いたってシンプルですが、ここまで辿り着ける人はなかなか多くはなかったようで・・・ハズレの2つ目「偶数」なんてのは結構いい線に行っていたのですが、そこからこの答えまでいけるかが勝負なんですね。
ちなみに、これを考えたのはビービットの採用担当(リーダー)の人間です。
問題を解くのも結構大変かもしれませんが、個人的にはこの問題を思いついたということに結構感動してしまいました。
さて、みなさんはいかがだったでしょうか?
もし正解だった方は、気が向いたら↓のリンクを押してみてください。素敵な出会いがあるかもしれません?
最近のエントリー
Comments:5
- osaki 2010-07-29 (木) 01:51
-
>相手が真ん中の1マスを消したら、自分も真ん中の1マスを消す
相手が真ん中の1マス消したら、自分は2マス消せばいいのでは? - osaki 2010-07-29 (木) 02:02
-
6x6も、常に点対称ではなく、終盤で指し方たぶん変わるのでは。
相手が、1x1に分断するような指し方、すなわち4x1の余りに対して真ん中の2x1を取るように切ってくる場合は、同じように取っていくと最後に自分が最後の一升を食います。このときに限って3x1を取るようにif文をかませばいいです。 - Tomotaka.Imaki 2010-07-29 (木) 03:35
-
Osakiさん、ご指摘ありがとうございます。3×3のほうは、タイプミスです(汗)
6×6は、おっしゃるとおり最後のほうで指し方が変わります。「まぁわかるだろう」と説明をはしょっています(大汗) - nagata 2010-07-29 (木) 08:38
-
お久しぶりです。さて、6×6はこの回答間違ってると思いますよ。中心点を通る直線を一番最初に引かれたら破綻しますから。要は2ます以上消せる部分が偶数ある状態で相手に先に消させる、ということですよね。自分先行で最初に中心点を通る斜め線を6マス分引いて、相手に対して点対称でとるのが正解ですね。終盤は「2×2×3の二等辺三角形の3マスある長辺の中心を1マス消した形を相手に作られた時は要注意」とかですかね。
- Tomotaka Imaki 2010-07-29 (木) 15:00
-
nagataさん、お久しぶりです!
斜め線がNGなので、6×6で中心を通る直線は引けないのですが・・(汗

RSS Feed