gpt4 book ai didi

ruby - Ruby 中浮点范围的默认步骤是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:28:34 26 4
gpt4 key购买 nike

在 ruby 中,this代码编译:

(Math::PI * 6 .. Math::PI * 6.5).bsearch{|f| Math.cos(f) <= 0.5}

在这种情况下,范围的默认步长是多少?

最佳答案

您的情况没有任何步骤。不能迭代浮点范围。

代码

(Math::PI * 6 .. Math::PI * 6.5).to_a

throws类型错误:

TypeError: can't iterate from Float


您的代码有效,因为 bsearch不遍历范围值。相反,它“知道”最小值和最大值并将间隔减半,直到它达到 block { |f| Math.cos(f) <= 0.5 } 所针对的值。返回 true .

为了看到这个,你可以添加一个puts检查 bsearch 尝试的值的语句:

(Math::PI * 6 .. Math::PI * 6.5).bsearch { |f| puts f; Math.cos(f) <= 0.5 }

关于ruby - Ruby 中浮点范围的默认步骤是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27786789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com