2011-10-14 2 views
3

음 .. 어제부터 APL을 배우기 시작했습니다. 나는 basic에서 다양한 심볼에 대해 가르치는 youtube 비디오를보고 있는데, 나는 NARS2000을 사용하고있다.쓰는 방법 N N N .... N 연산자 (또는 다른 것들)를 사용합니까?

내가 원하는 것은 피보나치 시퀀스를 인쇄하는 것입니다. 몇 가지 코드가 있다는 것을 알고 있지만, 고급 기술을 배우지 않았으므로 필자는 자신의 코드를 작성하기 시작했습니다. APL code: N{leftarrow}2{space}2{rho}1{space}1{space}1{space}0

아이디어는 간단하다 : (1,1)에서의 요소이다 Nⁿ에서 (N + 1) 번째 시퀀스 피보나치

먼저 I는이 배열을 만들었다. 내가 무슨 짓을

했다 :

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

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

음, 작동합니다. 나는 16 용어를하려는 경우에는, 그때 나는 내가 필요로하는 인 Ns 인해 임의 금액을 작성하는 것입니다

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

해야한다. 물론 나는 {r}에 대해 알고 있습니다. 그러나

I used rho but this is not what I wanted.

(저부 잘라내어)

그리고 (I 2)는 {N} RHO 내가 NS 개의 서로 다른 것을 알아 차렸다.

rho and multiple Ns

무엇 연산자 나는 N가하는 ... N N N으로 같은 일을 사용해야합니까?

답변

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 

이를 위해, 당신은 "묶으"연산자 를 사용하여 포장 정의 : 피보나치 시퀀스는 01으로 시작합니다.

+0

고맙습니다! 동봉 된 운영자에 대해 [들었습니다] (http://www.youtube.com/watch?v=a9xAKttWgP4), 그게 무슨 뜻인지 몰랐습니다. – JiminP

0

0부터 시작하고 싶습니다. d 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