如何在APL中将数字拆分为数字

时间:2017-07-08 18:16:31

标签: split numbers apl

在APL中,如何将整数或数字拆分为包含其数字的向量?这样做最简洁(最简短)的方法是什么?

3 个答案:

答案 0 :(得分:5)

您可以使用基数为10的Decode的倒数:

10⊥⍣¯1⊢

由于Decode会根据需要输入任意数量的数字并对其进行解码,因此其反转将采用一个数字并将其编码为所需数量的数字,

或者,使用⎕IO←0,您可以尝试在数字向量中找到格式化数字的索引:

⎕D⍳⍕

Demo for both solutions.

这比使用Encode更加丑陋,自定义长度是通过将数组10整形为输入的log 10 的长度得出的:

{⍵⊤⍨10⍴⍨⌈10⍟1+⍵}

答案 1 :(得分:3)

我在APL2中做了这个,首先应用FORMAT然后执行EACH(尽管它可能仅限于正整数):

⍎¨⍕

Try it online!

答案 2 :(得分:1)

不是最简洁,但执行此操作的权力是最早的APL。 The 1962 book显示了如何使用仅使用基本函数和矩阵乘法的位置编号系统:

enter image description here