APL에는 다른 숫자를 "디코딩"하는 데 사용되는 기본 함수가 있습니다. 함수의 왼쪽에는 다른 숫자의 각 숫자와 연관된 자리 값을 넣습니다. . 그러나왜 APL의 ⊥- 디코드에 기수 벡터에 여분의 숫자가 필요합니까?
2 2 2 2 ⊥ 0 1 0 1 ⍝ (What you type in) Convert 0101 form base 2 into base 10
5 ⍝ (What the interpreter computes)
, 기수 벡터 2 맨 왼쪽이 어떤 디코딩 계산에 사용되지 않습니다 : 오른쪽에 당신은 당신이에 관심이있는 예를 들어
숫자의 벡터를 넣어. 예 :
¯48 2 2 2 ⊥ 0 1 0 1 ⍝ We can replace the leftmost radix digit with a random number
5 ⍝ Same answer as before
¯48 2 2 2 ⊥ 1 1 1 1 ⍝ Just to prove that the leftmost decode digit is unused
15 ⍝ Correct decode of 1111
65 2 2 2 ⊥ 1 1 1 1 ⍝ Try another random number for testing
15 ⍝ Again, the correct answer is output
따라서 가장 왼쪽 숫자를 사용하지 않으면 왜 APL에서 필요합니까? (특히, APL은 기수 벡터와 입력 벡터가 같은 길이를 가져야합니다.) 내가 모르고있는 디코딩 함수에 어떤 용도가 있습니까?
아마 가장 왼쪽의 값 자리가 범위 내에 있는지 확인하는 데 사용됩니까? – jasonharper
흠, 좋은 생각. 그러나 통역사는 불평하지 않는 것 같습니다. '2 2 2 2 ⊥ 44 1 1 1'은'359'을 말합니다. – Mahkoe