如何使用运算符(或其他东西)写N N N .... N?

时间:2011-10-14 14:14:54

标签: fibonacci apl

嗯..我从昨天开始学习APL。我正在观看youtube视频教授基本的各种符号,我正在使用NARS2000。

我想要的是打印Fibonacci序列。我知道有几个代码,但由于我没有研究高级的东西,我开始编写自己的代码。

首先我创建了这个数组:APL code: N{leftarrow}2{space}2{rho}1{space}1{space}1{space}0

这个想法很简单:Nⁿ中(1,1)处的元素是第(n + 1)个斐波那契序列。

我做的是:

+.{times}\N{space}N{space}N{space}N{space}N

{uparrow}{dieresis}(+.{times}\N{space}N{space}N{space}N{space}N)

嗯,它有效。但是,如果我想要第16个学期,那么我应该做

Same as above, but here's a lot of Ns

我需要的是写出任意数量的Ns。我当然知道{rho}。然而,

I used rho but this is not what I wanted.

(底部被切断)

我注意到(i 2 2){rho} N和i Ns不同。

rho and multiple Ns

我应该使用什么算子来做N N N ... N的事情呢?

2 个答案:

答案 0 :(得分:3)

你快到了。 (“reshape”)是正确使用的运算符;但是,您希望它将矩阵N视为矩阵,而不是单个标量元素。为此,您使用“附加”运算符 包装它:

      4⍴⊂N
  1 1    1 1    1 1    1 1 
  1 0    1 0    1 0    1 0

如果我们把它包起来,我们会得到(例如)以下表达式:

      ↑¨+.×\16⍴⊂2 2⍴1 1 1 0
1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

(但请允许我说一句:根据定义,Fibonacci序列以01开头。)

答案 1 :(得分:0)

如果你想从0和1开始,只需使用0 1 1 1而不是1 1 1 0

      ↑¨+.×\16⍴⊂2 2⍴0 1 1 1
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610