タグ

ブックマーク / qiita.com/scivola (2)

  • 桁数は Math.log10(x).floor + 1 でいいのか - Qiita

    この記事は Ruby を前提とするが,多くの言語で似たようなことが言えると思う。 何の話? 正の整数 x が 10 進法で何桁になるか,を求めるやり方はいくつもある。 そのうちの一つが なのだが,当にこれで正しい答えが得られるのだろうか,という話。 数学が苦手でも,Ruby をあまり知らなくても分かるよう,なるべく丁寧に見ていく。 しかし,結論だけを知りたい方は それでいいのか? の節にどうぞ。 桁数を求めるいろいろなやり方 この節では,ローカル変数 x に正の整数が代入されているとする。 Ruby はメモリーなどの条件が許せばどんな大きな整数も扱うことができる。 文字列化 Ruby の整数(Integer クラス)には,N 進法で表した数字列を生成する Integer#to_s というメソッドがある。 引数を省略すると,10 進法の数字列が得られる。

    桁数は Math.log10(x).floor + 1 でいいのか - Qiita
  • Ruby のココがダメ - Qiita

    タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基的に同じだけど,削除が行われなかっ

    Ruby のココがダメ - Qiita
  • 1