gpt4 book ai didi

ruby - 现状方法有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:07 25 4
gpt4 key购买 nike

考虑以下方法,在 byar gem 中找到:

##
# Calculate lower boundary for observed cases
def self.lower_bound(obs, z_value = Z_VALUE)
return 0 if obs == 0
obs * (1 - 1.quo(9 * obs) - z_value.quo(3 * Math.sqrt(obs))) ** 3
end

##
# Calculate upper boundary for observed cases
def self.upper_bound(obs, z_value = Z_VALUE)
obs = obs + 1
obs * (1 - 1.quo(9 * obs) + z_value.quo(3 * Math.sqrt(obs))) ** 3
end

我想将这些方法移植到 Javascript,但我不确定 quo 的作用。

最佳答案

quo是在 Numeric 类中定义的方法(并在 Float 类中重新定义),它使用给定参数计算接收者的。换句话说,x.quo(y) 大致等同于 x/y,但更精确

这里的区别在于 xyFixnum(即整数值):

> (1 / 2)
=> 0
> (1 / 2).class
=> Fixnum
> 1.quo(2)
=> (1/2)
> 1.quo(2).class
=> Rational
> 1.quo(2.5)
=> 0.4
> 1.quo(2.5).class
=> Float

基本上,quo 通过返回一个 Rational 确保除法的结果被准确表达。或 Float,具体取决于接收者和参数。

在Javascript中,不区分不同类型的数字,如果需要,除法已经返回一个 float ,所以第一种方法可以表示为:

obs * Math.pow(1 - 1 / (9 * obs) - z_value / (3 * Math.sqrt(obs)), 3)

关于ruby - 现状方法有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19224336/

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