J 无穷大的解释
J interpretation of infinities
我很难理解 J 如何解释无穷大,例如 (cos=.2&o.^:_)1
是 0.73908,((^&2)^:_) 2
是 _,但是 ((+&1)^:_) 0
挂了我的电脑而不是回答 _。余弦和幂示例如何工作?
形式 v ^:_ y
将 v 应用于 y 直到没有变化。换句话说,它可以用作收敛测试。
((+&1)^:_) 0
注意。每次执行时加一...慢慢达到无穷大
((^&2)^:_) 2
注意。增加得更快,所以更快地达到 _(无穷大)
(cos=.2&o.^:_)1
注意。收敛
在 J for C programmers 中,Henry Rich 很好地描述了 ^:_
http://www.jsoftware.com/help/jforc/loopless_code_iv_irregular_o.htm#_Toc191734389
您的计算机挂起,因为在最后一次计算达到 _
.
之前有很多(例如 很多)步骤
如果保留中间步骤,您可以很容易地看到余弦收敛的速度有多快:
(2&o.^:(<_)) 1
1 0.540302 0.857553 0.65429 ...
#(2&o.^:(<_)) 1
77
仅需 77 步就达到了稳定点。
同样,^&2
增长非常快,因此很快就会达到稳定点 (_
):
((^&2)^:(<_)) 2
2 4 16 256 65536 4.29497e9 1.84467e19 3.40282e38 1.15792e77 1.34078e154 _
#((^&2)^:(<_)) 2
11
另一方面,(+&1)
是一个增长非常缓慢的函数。从0开始,大约要等1e19步,直到达到稳定点;即一个数字 x
容忍地等于 x+1
我很难理解 J 如何解释无穷大,例如 (cos=.2&o.^:_)1
是 0.73908,((^&2)^:_) 2
是 _,但是 ((+&1)^:_) 0
挂了我的电脑而不是回答 _。余弦和幂示例如何工作?
形式 v ^:_ y
将 v 应用于 y 直到没有变化。换句话说,它可以用作收敛测试。
((+&1)^:_) 0
注意。每次执行时加一...慢慢达到无穷大
((^&2)^:_) 2
注意。增加得更快,所以更快地达到 _(无穷大)
(cos=.2&o.^:_)1
注意。收敛
在 J for C programmers 中,Henry Rich 很好地描述了 ^:_ http://www.jsoftware.com/help/jforc/loopless_code_iv_irregular_o.htm#_Toc191734389
您的计算机挂起,因为在最后一次计算达到 _
.
如果保留中间步骤,您可以很容易地看到余弦收敛的速度有多快:
(2&o.^:(<_)) 1
1 0.540302 0.857553 0.65429 ...
#(2&o.^:(<_)) 1
77
仅需 77 步就达到了稳定点。
同样,^&2
增长非常快,因此很快就会达到稳定点 (_
):
((^&2)^:(<_)) 2
2 4 16 256 65536 4.29497e9 1.84467e19 3.40282e38 1.15792e77 1.34078e154 _
#((^&2)^:(<_)) 2
11
另一方面,(+&1)
是一个增长非常缓慢的函数。从0开始,大约要等1e19步,直到达到稳定点;即一个数字 x
容忍地等于 x+1