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

发布于 2024-12-10 08:57:10 字数 956 浏览 0 评论 0原文

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

我想要的是打印斐波那契数列。我知道有几个代码,但是由于我没有研究过高级的东西,所以我开始编写自己的代码。

首先我制作了这个数组: APL 代码: 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 个学期,那么我应该这样做

与上面相同,但这里有很多 Ns

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

我使用 rho 但这不是我想要的。

(底部被切掉)

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

rho 和多个 Ns

我应该使用什么运算符来执行与 NN N...N 相同的操作?

Well.. I have started to learn APL since yesterday. I'm watching youtube videos teaching about various symbols from basic, and I'm using NARS2000.

What I want is to print the Fibonacci sequence. I know there's several codes, but since I haven't studied advanced things, I started to write my own code.

First I made this array: APL code: N{leftarrow}2{space}2{rho}1{space}1{space}1{space}0

The idea is simple : the element at (1,1) in Nⁿ is (n+1)th fibonacci sequence.

What I did was:

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

and

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

Well, it works. However, if I want 16th term, then I should do

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

What I need is to write arbitary amount of Ns. Of course I know about {rho}. However,

I used rho but this is not what I wanted.

(bottom was cut)

And I noticed that (i 2 2){rho}N and i Ns are different.

rho and multiple Ns

What operator I should use to do same thing as N N N...N does?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

另类 2024-12-17 08:57:10

你就快到了。 (“重塑”)是正确的运算符;但是,您希望它将矩阵 N 视为单个标量元素,而不是矩阵。为此,您可以使用“enclose”运算符将其包装起来:

      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

不过,请允许我说一句:根据定义,斐波那契数列以 01 开头。)

You were almost there. ("reshape") is the right operator to use; however, you want it to treat your matrix N not as a matrix, but as a single, scalar element. For this purpose, you wrap it using the "enclose" operator :

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

If we wrap this up, we arrive at (e.g.) the following expression:

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

(Allow me one remark, though: by definition, the Fibonacci sequence starts with 0 and 1.)

转角预定愛 2024-12-17 08:57:10

如果你想从 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

If you want to start with 0 and 1, just use 0 1 1 1 instead of 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文