4

J 编程语言中

-: i. 5 

上面的函数计算 [0,4] 中所有整数的一半。现在假设我想重写 -: 函数,只是为了好玩。到目前为止我最好的猜测是

]&%.2

但这似乎并没有削减它。你怎么做呢?

4

3 回答 3

7
%&2    NB. divide by two
0.5&*  NB. multiply by one half
于 2009-11-30T23:17:09.970 回答
2

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

于 2011-04-15T18:45:05.010 回答
1

我看到你在使用 %. 可能是因为您正在划分矩阵并认为您需要进行“矩阵划分”。

他们谈论的矩阵除法和矩阵逆是针对矩阵代数的,其中您有一个列表,嗯,本质上是多项式,并且您想一次对多项式进行变换,以便求解方程。您可以在 J 中真正轻松地做的一件事是矩阵代数,有用于矩阵除法和反转矩阵的内置函数(如您所见),在短语部分,有用于执行所有典型矩阵变换的短语. 以行列式为例。

但是,当您只是将向量除以标量以获得向量时,或者您将矩阵除以另一个矩阵的相应元素时,那只是 % 除法符号。

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

只是一个想法,除非你想玩矩阵代数,否则你可能不在乎。

于 2011-11-01T01:24:47.913 回答