如何重写J中的对分函数?

时间:2009-11-29 21:45:09

标签: j tacit-programming

<{3>}中的

-: i. 5 

上述函数计算[0,4]中所有整数的一半。现在让我们说我想重写 - :函数,只是为了它的乐趣。到目前为止,我最好的猜测是

]&%.2

但这似乎没有削减它。你是怎么做到的?

3 个答案:

答案 0 :(得分:6)

%&2    NB. divide by two
0.5&*  NB. multiply by one half

答案 1 :(得分:1)

请注意]%2:也可以,但为了确保正确的语法,您可能希望将其用作名称的定义,或者您希望将表达式放在括号中。

答案 2 :(得分:1)

我看到你正在使用%。可能是因为你正在划分一个矩阵,并认为你需要做一个“矩阵划分”。

他们所讨论的矩阵除法和矩阵逆是矩阵代数,你有一个列表,好吧,基本上是多项式,你想要同时对多项式进行变换,以便求解方程。在J中你可以很容易做到的事情之一就是矩阵代数,有矩阵除法的内置函数和用于反转矩阵(如你所见),在短语部分,还有用于完成所有典型矩阵变换的短语。以行列式为例。

但是当你简单地用一个标量来划分一个矢量来获得一个矢量,或者你将一个矩阵除以另一个矩阵的相应元素时,那就是%除法符号。

如果您想尝试理解这一点,请查看euler问题101(http://projecteuler.net/problem=101),然后在Jsoftware.com网站上查看google曲线。从观察中创建矩阵,并且如图所示的基本矩阵允许您求解ax ^ 2 + bx + c = y,其中您有x和y,并且您想要确定a,b和c。只记得对所有事物使用扩展算法,因为结果方程式非常好但不完美,除非你这样做,并且要解决方程式,你需要完美的方程式。

只是想一想,除非你想玩Matrix Algebra,否则你可能不在乎。