パスワードを忘れた? アカウント作成
14057475 journal
日記

kamiyamaの日記: 電車でみかけた臨海セミナーの問題 3

日記 by kamiyama

https://www.rinkaiseminar.co.jp/company/rinpen/dondon_rinpen.html

たぶん中学受験.
暗算できないから家に帰って,一般項求めて・・・なんてやって答えは出せたけど,もっと簡単にできるだろうの発想にいけないとだめなんだなぁ.

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by route127 (38618) on 2019年11月29日 23時59分 (#3724093) 日記

    大人なので目的達成の為には手段を選ばない。
    四角数はともかく五角数を25段目まで力ずくで計算するのは出来るかもしれないが、与えられたおはじきの数からそれを三角数として段数を求めるのが難しかった。

    図形的に考えて、ある段数の三角数を2倍すれば同じ段数の四角数より少しだけ大きな数になるのを利用して平方根を取ることにした。
    三角数および五角数は再帰関数とした(横着して引数は1以上の場合だけ)。
    以下CommonLisp

    (defun triangle (x)
        (cond ((= x 1) 3)
            (t (+ (triangle (- x 1))
                        x 1))))
    (defun square (x) (* (+ 1 x) (+ 1 x)))
    (defun pentagon (x)
        (cond ((= x 1) 5)
            (t (+ (pentagon (- x 1))
                        (* x 3) 1))))
    (defun inv-triangle (x)
        (- (floor (sqrt (* 2 x)))
              1))

    (inv-triangle (- (pentagon 25) (square 25)))

    オイラーの五角数定理 [sakura.ne.jp]とかありましたな。

    • by kamiyama (46596) on 2019年11月30日 1時45分 (#3724125) 日記

      なるほど.
      ワシは,最後は適当に20から計算しました(要するにループさせた).

      問題からは三角形作って何個か余る気がしましたが,ちょうどになるならもっと違う解き方したかもな(見苦しいいいわけ)

      親コメント
      • by kamiyama (46596) on 2019年11月30日 23時49分 (#3724386) 日記

        関数inv-triangleの最後の-1の導出が分からない...
        もう少し書くと,2倍して平方根取るのは説明されているからわかる.2倍すると多すぎるから減らしているのは想像できる.でも,減らすのが1でいいのを確定できるのかが分からない...

        ごりごり計算すると,m段に必要な5角形と4角形のそれぞれの個数の差をdとすると,構成できる3角形の段数は,
        \sqrt{2d + \frac{1}{4}} - \frac{3}{2}
        となる.
        このあたりまで計算すると,最後-1なのはわかるんだが,それを直観的(?)にやっているのは,すごいな,と.

        親コメント
typodupeerror

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

読み込み中...