パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

電車でみかけた臨海セミナーの問題」記事へのコメント

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

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

    (defun triangle (x)
        (cond ((= x 1) 3)
            (t (+ (triangle (- x 1))
           

    • なるほど.
      ワシは,最後は適当に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なのはわかるんだが,それを直観的(?)にやっているのは,すごいな,と.

        親コメント

ソースを見ろ -- ある4桁UID

処理中...