■ [ruby] Ruby 2.0のRange#bsearchが無限区間の二分探索に対応している件 range.cのrdoc見てたら衝撃のサンプルコードが… (0.0...Float::INFINITY).bsearch {|x| Math.log(x) >= 0 } #=> 1.0 0からFloat::INFINITYまでの間を二分探索する…だと? 実際にirbで試してみた。 irb(main):003:0> (0.0...Float::INFINITY).bsearch {|x|p x; Math.log(x) >= 0 } 1.4999999999999998 1.305209627960036e-154 1.403377390202847e-77 4.59177480789956e-39 8.300922883092142e-20 3.528839442878961e-10 2.3
![Route 477 - Ruby 2.0のRange#bsearchが無限区間の二分探索に対応している件](https://cdn-ak-scissors.b.st-hatena.com/image/square/b0dd2a08b2c0fff30d70543ed7fa340ebfeb5697/height=288;version=1;width=512/https%3A%2F%2Froute477.net%2Fd%2Fassets%2Fogimage.png)