返回Base 9等效公式

Pan*_*noy 0 language-agnostic

我一直在处理我们的教练给我们的练习,即返回输入数字的" 基数9 ".

输入的数字是:231085,
返回号码是:382871.

我不知道他怎么想出那个所谓的"基础9"等价物.
我试着寻找关于如何在网络上获得基础9等价的公式,但是我很难理解,加上我在数学和代数方面很弱的事实.

我尝试使用模数和除法来解决它并且没有得到任何东西(当然,我的公式是错误的).

我真的对这个问题傻眼了,我很感激,如果有人能告诉我解决它的公式.

或者答案或问题本身都错了?

干杯!

lad*_*ini 8

base-9编号系统是使用九位数来表示数字的系统.那是,

231,085 = 2×10 5
                 + 3×10 4
                 + 1×10 3
                 + 0×10 2
                 + 8×10 1
                 + 5×10 0

在base-10系统中,也就是十进制编号系统.但是在base-9系统中,你写的是9的整数倍的项,而不是10的幂,如上所示:

381,881 = 3×9 5
                 + 8×9 4
                 + 1×9 3    (您的导师给出了错误的数字,顺便说一句.这是381,881而不是382,871)
                 + 8×9 2
                 + 8×9 1
                 + 1×9 0

注意,基数-10表示中的幂10的系数(即,2,3,1,0,8和5)总是十个十进制数字之一(从零到九).同样,基数9表示(3,8,1,8,8,1)中9的幂的系数总是九个十进制数字之一(从零到八).还有更多东西,你必须把它带走,就像你在小学增加了多位数的数字一样.

现在,对于将base-10表示转换为base-9的算法,首先看一下将十进制数转换为二进制数,该数字从base-10转换为base-2.唯一的区别在于你除以9的幂,而不是2的幂,正如这个问题所做的那样.

按照链接问题中的示例,

            [231085]  [53938]   [1450]   [721]   [73]   [1]  
             ÷59049    ÷6561     ÷729     ÷81     ÷9    ÷1
              [3]       [8]       [1]     [8]     [8]   [1] 
Run Code Online (Sandbox Code Playgroud)

如果要系统地将基数为10的整数分解为其数字,则应遵循以下模式:

  1. 将数字除以10(基数).
  2. 除法的其余部分将是下一个最低有效数字.
  3. 用新的分割数重复(即步骤1的除法的商),直到商达到0.

因此,对于231,085,迭代如下:

 Step:         1          2        3       4      5       6
-------------------------------------------------------------
 Number:    231,085    23,108    2,310    231     23      2
                ÷10       ÷10      ÷10    ÷10    ÷10    ÷10
-------------------------------------------------------------
 Quotient:   23,108     2,310      231     23     2       0  <-- Quotient reached 0, so stop
 Remainder:       5         8        0      1     3       2
Run Code Online (Sandbox Code Playgroud)

如您所见,每个步骤中的余数是231,085中的下一个最低有效数字.这意味着5是最不重要的数字.然后是8,真的是8×10 = 80,而10> 1; 那么0×100,100> 10等

现在,如果你在每一步中除以9而不是如上所述的10,则表格看起来就像是

 Step:         1          2        3       4       5      6
-------------------------------------------------------------
 Number:    231,085    25,676    2,852    316     35      3
                 ÷9        ÷9       ÷9     ÷9     ÷9     ÷9
-------------------------------------------------------------
 Quotient:   25,676     2,852      316     35      3      0
 Remainder:       1         8        8      1      8      3
Run Code Online (Sandbox Code Playgroud)

现在剩余部分与基数为10的231,085的基数为9的表示相反.

这个答案实际上并没有为你提供基本转换的代码,但是上面概述了基本逻辑,并且算法存在于整个互联网上(可能是针对不同的基础,但你需要改变的只是部门的基础) .