4
a
的項目爲_1
或1
。J:列表項目之間的符號變化次數
a =: 1 _1 _1 1 _1
有在a
3個將變爲:
1, -1, -1, 1, -1
Λ Λ Λ
here and here
如何looplessly指望他們?
a
的項目爲_1
或1
。J:列表項目之間的符號變化次數
a =: 1 _1 _1 1 _1
有在a
3個將變爲:
1, -1, -1, 1, -1
Λ Λ Λ
here and here
如何looplessly指望他們?
您與2 v\
它們配對,檢查它們是否不同~:/
,總結+/
:
+/ 2 ~:/\ a
3
2 ~:/\ 1 1 1 _1 _1 _1 1 _1 1
0 0 1 0 0 1 1 1
+/2 ~:/\ 1 1 1 _1 _1 _1 1 _1 1
4
編輯
或者你可以排隊削減}:
和殺頭的a
}.
並加以比較,但這顯然效率較低。
+/(}: ~: }.) a
如果數字可以比圖1和其他_1,
2 ~:&*/\ _2 4 3 _1 _3 1
1 0 1 0 1
感謝。非常好的節目。 – 2014-11-02 09:37:32
你能解釋爲什麼'+/@(}:〜:}。)'效率低於'+/@(2&(〜:/ \))'嗎? – 2014-11-05 16:02:16
主要是因爲'2 f/\ y'受[特殊代碼](http://www.jsoftware.com/help/release/infix2a.htm)支持。另一件事是斬首是昂貴的(在時間和空間上)。用一個大的'a'來代替標誌變化的數量要比用第一種方法計算更多。你可以製作一個大的隨機'a'('a =:1 _1 {〜?1e6 $ 2')並使用'timespacex'來測試它。 – Eelvex 2014-11-05 16:25:50