2

サイズの異なる 2 つの配列があるとします。

N0 =: i. 50
N1 =: i. 500

一意のペアを取得する方法があるはずです。2 つを組み合わせるだけです。私が見つけた「最も簡単な」ものは次のとおりです。

]$R =: |:,"2 |: (,.N0) ,"1 0/ N1
25000 2

率直に言って、これはお尻の醜い野球バットのソリューションです。これを行うよりエレガントな方法はありますか?

4

2 に答える 2

2

到達しているデータのパターンは、カタログのバリエーションです。実際、これは最も有名なバリエーションです: デカルト積です。

カタログの語彙リストには、デカルト積のコードもあります。必要なリストを取得するには、結果を解きほぐして開くだけです。

pair=: >@ ,@ { @(,&<)

   $ N0 pair N1
25000 2
于 2012-11-16T00:43:42.713 に答える
1

私は同じものを探しています。

私は、より短いがきれいではない次のものだけを思いついた:

,/(N0 ,. ])"0 N1

;(N0 ,. ]) &.> N1

または次の形式で:

;N0&,.&.>N1
于 2012-11-15T20:57:39.713 に答える