タグ

これはすごいと数学に関するbaboocon19820419のブックマーク (2)

  • Ruby FizzBuzz最短コードメモ (51bytes) ネタバレ注意 - Qiita

    1.upto(100) do |n| i = (n ** 4 % -15) str = "FizzBuzz\n"[i, i + 13] if str puts str else puts n end end "FizzBuzz\n"から[]メソッドで必要な文字列を抜き出している。 []はインデックス・長さを指定して文字列を取り出せる。(String#sliceと同じ) 例えば"abc"[1, 1]だと、1番目から1文字を抜き出すので"b"が返る。 []のインデックスの調整の為、末尾に無駄な1文字が必要なので改行を挿入している。(putsで無視される) 元のコードでは、改行を直接入力することで\nと書くよりも1バイト短くなっている。 この為、一行では記述出来ない。 n ** 4 % -15って何 []のインデックス部分には、n ** 4 % -15という式が入っている。 また、同時に変数iを

    Ruby FizzBuzz最短コードメモ (51bytes) ネタバレ注意 - Qiita
  • 迷ったら試してみる→逆向きに解く-問題解決の定石

    にある。 次のパズルは試行錯誤でも解くことができるが、この〈逆向きに解く〉を使うと、行き当たりばったりよりはずっと、見通しのよい解決になる。 どういう風にアタマを使えばいいかを知っていると、オタオタせず、やるべきことを見つけることができる。 どうやって解決のための「思い付き」を得ればいいか、探すべきところの手がかりが得られる。 問題:われわれが4リットルと9リットルの2つの桶しかもっていないとき、ちょうど6リットルの川の水をくむにはどうすればよいか? 逆向きに解く その1……求めるものはすでに得られたと仮定せよ 6リットルの水が9リットルの桶の中に入っている (4リットルの桶ではあふれてしまう) 逆向きに解く その2……問題をつくりかえよ つくりかえられた問題:9リットルの桶に水がいっぱい入っている。ここから3リットルの水を汲み出したい(それができれば最初の問題は解ける。9リットル-3リッ

    迷ったら試してみる→逆向きに解く-問題解決の定石
    baboocon19820419
    baboocon19820419 2011/10/30
    こういう問題昔みたことあるけど、全然解けませんでした・・・。ちょうど紹介されてる本をこの間買ったし、思考を鍛えなきゃなあ。
  • 1