パスワードを忘れた? アカウント作成
15833485 story
数学

『第64回京都大学11月祭』の開催日までのカウントダウン看板 20

ストーリー by nagazou
すごいな 部門より
京都大学で11月におこなわれる学祭のカウントダウン方法がネットで話題を呼んでいる。カウントダウンを告知している掲示板では、「あと30日」であれば「6×4+5+2-1=30」、29日であれば「6+4×5+2+1=29」といったように、数字の並びはそのままに、「+」「-」「×」「÷」の記号を差し替えるだけで、計算結果で当日までの日数すべてを表現できるようになっている。京大講師の田中草大さんがTwitterで紹介したところバズったようで、その様子はTogetter上でもまとめられている(Togetterねとらぽ)。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2022年10月26日 16時34分 (#4350543)

    operator = ["+", "-", "*", "/"]
    answer = 0
    while True:
            try:
                    for o1 in operator:
                            for o2 in operator:
                                    for o3 in operator:
                                            for o4 in operator:
                                                    formula = "6{}4{}5{}2{}1".format(o1, o2, o3, o4)
                                                    if answer == eval(formula):
                                                            print("{}={}".format(formula, answer))
                                                            raise Exception
                    print("{} not found.....".format(answer))
                    break
            except:
                    answer += 1

    • by Anonymous Coward on 2022年10月26日 17時48分 (#4350589)

      $ops='+','-','*','/';$ops|%{$o1=$_;$ops|%{$o2=$_;$ops|%{$o3=$_;$ops|%{$o4=$_;'6{0}4{1}5{2}2{3}1' -f $o1,$o2,$o3,$o4}}}}|%{[pscustomobject]@{expression=$_;answer=(iex $_)}}|?{!($_.answer % 1)}|sort answer

      親コメント
    • by ukenerai (36532) on 2022年10月26日 22時09分 (#4350742) 日記

      こういうのはPrologが得意なような?
      すっかり忘れたけど。

      --
      -- う~ん、バッドノウハウ?
      親コメント
      • by Anonymous Coward

        Prologの学習中なんで書いてみたけど、B-Prologに固有の述語に依存したコードしか書けなかった

        main(N) :- N 0, !.
        main(N) :-
                sub(N, OP1, OP2, OP3, OP4),
                format('~d = 6 ~s 4 ~s 5 ~s 2 ~s 1~n', [N, OP1, OP2, OP3, OP4]),
                N2 is N - 1,
                main(N2).

        sub(N, OP1, OP2, OP3, OP4) :-
                OPs = [OP1, OP2, OP3, OP4],
                OPs in ["+", "-", "*", "/"],
               

    • by Anonymous Coward

      カッコ使うのはありなん?

    • by Anonymous Coward

      なんでスペースを6つにした!言え!

    • by Anonymous Coward

      この問題に限れば、このコードで正解なんだろうけど、一般の場合にはどうればいいんだろう。
      つまり、このコードだと、割り算の結果が浮動小数点の呪いでわずかな誤差になって正解が見つからないという罠がある数字の配置になってるとしたら。

      有理数が扱える言語で書くのが正解?
      どの組み合わせの割り算をしても、いつでも整数になるように、適当な数を、それぞれの数に掛けておく?

    • これでええんやろか?
      for i in 6{+,-,*,/}5{+,-,*,/}4{+,-,*,/}3{+,-,*,/}2{+,-,*,/}1 ; do bc -l $i ; done |grep -F -v '.' | sort -n -u | xargs
      -115 -114 -113 -57 -56 -55 -53 -52 -51 -24 -23 -22 -21 -20 -19 -18 -16 -15 -14 -13 -12 -10 -9 -8 -7 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 53 54 55 63 64 65 67 68 69 113 114 115 116 118 119 120 121 122 124 125 126 127 357 358 359 361 362 363 719 720 721

      0日から45

      • by Anonymous Coward

        うう、<が消えてもうたわ…
        for i in 6{+,-,*,/}5{+,-,*,/}4{+,-,*,/}3{+,-,*,/}2{+,-,*,/}1 ; do bc -l <<< $i ; done |grep -F -v '.' | sort -n -u | xargs

      • by Anonymous Coward

        【生命、宇宙、そして万物についての究極の疑問の答え】が抜けているではないか。

  • by Anonymous Coward on 2022年10月26日 17時54分 (#4350594)

    数字4つ(1,8,2,4)で済んだのに!

    • by Anonymous Coward

      4つの数字(車のナンバーとか、切符に印刷してある数字とか)で1から10まで作る暇つぶしをしてたのを思い出した。

  • こういうの、どうやって見つけるのだろう

    • プログラム作って後は当てはめて結果見るだけでは(実際してみた)。

      多分、どこに割り算来ても 割り切れるか 少数が X.5 だけにしたいので
      3はダメで4と5の順番が逆、なんだと思います。

      私も自分ではこんなお洒落なの思いつかないです。

      親コメント
    • by Anonymous Coward

      使ってる5個の数字に何か意味あるのかと思ったけど特に無いっぽいな。

      • by Anonymous Coward on 2022年10月26日 19時09分 (#4350639)

        1桁の数字5つと四則演算のみで30日以上のカウントダウンができる。
        という条件の中で、選んだ数の合計が最小になるのが今回の数字みたいですね。

        せいぜいタクシー数くらいの意味の無さかな。

        親コメント
      • by taka2 (14791) on 2022年10月27日 11時53分 (#4350944) ホームページ 日記

        最初の二つが6,4なのは今回が「第64回」だからでしょう。
        のこりの5,2,1は全パターン網羅できるようにするためで意味なしかな。
        第64回11月祭で「6,4,1,1」なら美しいんだけど、4までしか無理で5が作れない。
        22年第64回11月祭で「2,2,6,4,1,1」なら30までいけますね。

        親コメント
        • by Anonymous Coward

          創立125周年だからだとか

      • by Anonymous Coward

        これが学園4コマとかだと、この看板を作った人の試験結果の点数(5教科)あたりがオチかな。

  • by Anonymous Coward on 2022年10月27日 15時34分 (#4351054)

    手で1から順番に作ってみましたが、30まではわりと簡単にできました。
    最初はちょっと考え込んだりもしましたが、慣れてくるとコツみたいな
    ものもわかってきました。

    例えば、最後が2と1なので、

    ・・・-2-1
    ・・・-2*1
    ・・・-2+1

    ・・・+2-1
    ・・・+2*1
    ・・・+2+1

    で連続する7つのうちの6つは作れるとか。

    目的の数値になる演算子の組み合わせを複数考えるほうが、頭の体操
    としては厳しいですね。
    ひとつの解が得られると、別の解を求めるための頭の切り替えが難しいし、
    全部を洗い出したと確信できないので。

typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...