重城良国
@YoshikuniJujo
main=putStr$show(f$10^3)++" "++show(f$10^10);f 0=0;f n|odd n=2*f(div n 2)+(n+1)`div`2|1>0=f(n-1)+b n;b 0=0;b n=n`mod`2+b(n`div`2)#バイナリカウント
2015-05-21 09:20:46
Shingo Yoshiike
@pi301415
0から2**n-1(2のn乗)までの1の数をE(n)とすると、E(n)=2**(n-1)+E(n-1)×2で求められる この性質を使って求めました。 ideone.com/fork/aaNyWT
2015-05-22 20:08:32
ⓂⓐⓔⓗⓐⓡⓐⓂⓐⓢⓐⓗⓘⓓⓔ
@maehrm
恥ずかしいですが、公開します。log2でビット数を計算しましたが、他の方の解答から、Fixnum#bit_length を知り勉強になりました(^^)。 #バイナリカウント #codeiq tinyurl.com/m9b5yff
2015-05-25 21:16:37
seizh
@SeizhLab
@maehrm bit_lengthはRuby 2.1で加わったメソッドですが、それほど使うケースがないので、あんまり知ってる人がいないと思います。それ以前のバージョンでの代用方法は n.to_s(2).size とかですかね。 #バイナリカウント
2015-05-25 23:21:16
Kawazoe
@riverplus
以前の問題ですが「バイナリ・カウント」問題についてwinterboumさんからコード頂きました! ideone.com/BWphw9
2015-06-20 23:08:54