切りのいい数字,ってなんだろう.
そう言えば主観に依った数字だよな.
と言うことで,アンケートをとってみた.
「19,800を切り良くしたらいくら?」「…20,000?」
「1,980は?」「2,000」
「1,940だったら?」「2,000かな…1,900でも良いかな…」
「198,400だと?」「200,000」
(以下略)
どうやら,上から3桁目を四捨五入した数字は切りのいい数字らしい.
Rubyで書くとこんな感じでしょうか?(自然数限定)
def nice_round target
digit = 10 ** (2 - target.to_s.length)
return (target * digit - 0.5).ceil.quo(digit)
end
# for Test
20.times do
target = rand(100000)
printf("%d\t%d\n", target, nice_round(target))
end
結果はこんな感じ.
>ruby nice_round.rb
84753 85000
78860 79000
5446 5400
14912 15000
43271 43000
22326 22000
86664 87000
49225 49000
70498 70000
67840 68000
34791 35000
24946 25000
3759 3800
1876 1900
60383 60000
95901 96000
44147 44000
29798 30000
87766 88000
88708 89000
>Exit code: 0
それにしてもRailsだけやってるとRubyの構文は全然覚えない.
もっとSmartに書けると思うんだよな…
私が「Fizz-Buzz問題」と呼んでいる問題のクラスを考え出した。これはイギリスの学校の子供たちがよくやっている遊び(というかやらされている遊び)にちなんで名付けた。Fizz-Buzz問題の例はこんな感じだ。 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。
via: どうしてプログラマに・・・プログラムが書けないのか?
言語習得の第一歩がHelloWorldなら二歩目はFizzBuzzでしょう.
今更感があっても敢えてやると新しい発見があったりする.
ちなみに,PythonはFizzBuzzを56byteで書くことが出来る言語で,
RubyやJavascript,PHPなどと同列らしい.
最小はGolfScriptの37byte?
# いや,ジョーク言語含めればもっと短く書ける言語は幾らでもありそう…
続きを読む…
最近は検索のみならず,カレンダーから路線探索からライブラリまで何でもかんでもGoogleにお世話になっていますが…
それが良い事か悪い事か,判断する間もなくMajorityに流されている人間がここにも一人.
毒を喰らわば皿までの精神でWordPress向けCode BeautifierもGoogleの世話になるとする.
使い方も簡単で,preタグのnameにcode,classに整形する言語を書けばOK.
対応言語はC++ (cpp, c, c++),C# (c#, c-sharp, csharp),CSS (css),Delphi (delphi, pascal),Java (java),Java Script (js, jscript, javascript),PHP (php),Python (py, python),Ruby (rb, ruby, rails, ror),Sql (sql),VB (vb, vb.net),XML/HTML (xml, html, xhtml, xslt)で,普段使う言語は大体カバーされてるかな.
試しにPythonコードを載せてみる.
def factorial(x):
if x == 0:
return 1
else:
return x * factorial(x - 1)
ちなみに,Python3000にも対応してるのかね?
カテゴリー: Uncategorized タグ: beautifier, c++, calendar, code, css, google, java, javascript, library, majority, php, plugins, python, rails, ruby, search engine, sql, transit, vb, wordpress, xml