返回Base 9等效公式

时间:2011-11-08 14:47:16

标签: language-agnostic

我一直在处理由我们的教练给我们的练习,即返回相当于输入数字的“ base 9 ”。

输入数字为: 231085 和 退货号码为: 382871

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

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

我真的对这个问题傻眼了,如果有人能帮我解决这个问题,我会很感激。

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

干杯!

2 个答案:

答案 0 :(得分: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系统中,a.k.a。十进制编号系统。但是在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的算法,首先看看Converting a decimal number into binary,它从base-10转换为base-2。唯一的区别在于你除以9的幂,而不是这个问题的2的幂。

按照链接问题中的示例,

            [231085]  [53938]   [1450]   [721]   [73]   [1]  
             ÷59049    ÷6561     ÷729     ÷81     ÷9    ÷1
              [3]       [8]       [1]     [8]     [8]   [1] 

如果你想系统地将基数为10的整数分解为数字,你可以遵循以下模式:

  1. 将数字除以10(基数)。
  2. 除法的其余部分将是下一个最低位数。
  3. 重复使用新的分数(即步骤1的除法的商),直到商达到0。
  4. 因此,对于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
    

    如您所见,每一步中的剩余部分是数字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
    

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

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

答案 1 :(得分:1)