2018-06-30

anond:20180630163249

一応想定してる答えのコードは↓(再帰で書くと途中でメモリ足りなくなるから満点取れないと思う)だとおもうんだけど、

やっぱ答えは3なのでなんかおかしい。運営問い詰めるか問題文全部載せな。

<?php
$X = $argv[1];
$sai=[1,2,3,4,5,6];
function sai($find,$table=[
    1=>[1],
    2=>[2],
    3=>[3],
    4=>[4],
    5=>[5],
    6=>[6]
],
$try=1){
  echo "TRY = $try \n";
  if(array_key_exists($find,$table)){
    var_dump($table);
    return $try;
  }
  $result=[];
  foreach($table as $goukei=>$mens){

    $mens=array_merge(
      array_reduce($mens,
      function($carry,$item){
        return array_merge($carry,draft($item));
      },[])
    );

    foreach($mens as $me){
      if(empty($result[$goukei+$me])){
        $result[$goukei+$me]=[];
      }
      if(!in_array($me,$result[$goukei+$me])){

        $result[$goukei+$me][]=$me;
      }
    }
  }

  $keys=array_keys($result);
  sort($keys);
  for($i=count($keys)-1;0<=$i && 20 < $i ;$i-- ){
    unset($result[$keys[$i]]);
  }

  return sai($find,$result,$try+1);
}

function draft($k){
  return array_filter(master(),
    function($me)
    use($k)
    {
    return ($k!=$me) && ($k+$me) !=7;
  }
  );
}

function master(){
  return [1,2,3,4,5,6];
}

echo "RESULT!".sai($X);
 ||<
記事への反応 -
  • X=7 の時 答えが2なんですけど、 どう転がしても2回で7にすることができません。 反対側の数字の和が7だから 7にするには3回転がす必要がありませんか? ご存知の方、教えていただ...

    • 返信ありがとうございます。 問題 X が整数で与えられる。 サイコロを自由に回転させた後、上に出ている数字を足していく。 合計をXにするには最小で何回回転させれば良いか、で...

      • 一応確認なんだけど、「模範解答が2」っていうのは既に示されてるの? そうじゃないならちゃんと結果テーブル書いて調べりゃいいし、実際模範解答が2なら「特に面の表裏合計は7には...

        • 増田です。 ありがとうございます。 問題文に 例としてX=7 の時が上げられています。 その解答が2です。 試しにX=7 で 解答を2で提出すると accept されます。 X=7でムリやり 3に変えるとacc...

          • 一応想定してる答えのコードは↓(再帰で書くと途中でメモリ足りなくなるから満点取れないと思う)だとおもうんだけど、 やっぱ答えは3なのでなんかおかしい。運営問い詰めるか問題...

            • コードまで載せていただき、 ありがとうございました。 自分がx点以上、をx点、と読み間違えてました。すいません。 非常に助かりました。 お時間使わせて申し訳ありませんでした。

              • 真面目に菓子折り案件だから次からマジで全文載せるようにしろよ。 俺が低能先生だったら増田を刺しに行ってる可能性すらあるからな。

          • サイコロの面が1-6であることは定義されてんの? 対面の和が7でも0+7の可能性もあるわけだし。(この条件だとプログラムクッソムズイけど)

            • 時間の無駄だから元増田に問題文の原文コピペさせた方がいいと思う 最悪元増田の解釈ミスかもしれん

      • えっ?

      • そういうのはメンタルクリニックの受付のお姉さんが詳しいよ 待合室にクイズ雑誌が置いてあって、暇なとき解いてるからね

      • 英語の問題文ある?

      • 「合計を7にする」のが目的なら1+2+4とかでもええんやで。

    • ちゃんと問題文も書け。アカウントとか持ってへんのやから。

    • これ? すぬけくんが合計で x 点以上得るために必要な最小の操作回数を求めなさい。 https://beta.atcoder.jp/contests/abc053/tasks/arc068_a

      • これは謝罪ものやろなあ。

      • というか、これプログラムの問題としてすごく雑すぎないか? サイコロっていうある程度仕様の決まったものを使って計算しようとしているのに、 導き出される結果は「5と6を交互に足...

        • https://beta.atcoder.jp/contests/abc053/submissions?f.Language=&f.Status=&f.Task=arc068_a&f.User=&orderBy=source_length ↑競技プログラミングだし、コードゴルフするんだろ。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん