【问题标题】:Return Base 9 equivalent formula返回 Base 9 等效公式
【发布时间】:2011-11-09 04:38:17
【问题描述】:

我一直在处理我们的教练给我们的一个练习,即返回与输入数字等效的“base 9”。

输入数字是:231085
返回编号为:382871

我不知道他是如何想出所谓的“base 9”等价物的。
我尝试在网络上寻找如何获得以 9 为基数的公式,但它们对我来说很难理解,而且我在数学和代数方面很弱。

我尝试使用模数和除法来解决它,但一无所获(当然,我的公式是错误的)。

我真的对这个问题感到目瞪口呆,如果有人能告诉我解决这个问题的公式,我将不胜感激。

或者也许答案或问题本身都是错误的?

干杯!

【问题讨论】:

    标签: language-agnostic


    【解决方案1】:

    base-9 编号系统是使用九位数字表示数字的系统。也就是说,

    231,085 =    2 × 105
    + 3 × 104
    + 1 × 103
    + 0 × 102
    + 8 × 101
    + 5 × 100

    在 base-10 系统中,也就是十进制编号系统。但是在以 9 为底的系统中,您将其写成 9 的幂的整数倍,而不是如上所示的 10 的幂:

    381,881 =    3 × 95
    + 8 × 94
    + 1 × 93   (顺便说一句,您的教练给了您错误的数字。它是 381,881 而不是 382,​​871)
    + 8 × 92
    + 8 × 91
    + 1 × 90

    请注意,以 10 为底的表示形式(即 2、3、1、0、8 和 5)中 10 的幂的系数始终是十进制数字之一(从零到九)。同样,以 9 为底的表示形式(3、8、1、8、8、1)中 9 的幂的系数始终是九个十进制数字之一(从零到八)。再多的话,你就必须把它带过去,就像你在小学学习的多位数加法一样。

    现在,对于将 base-10 表示转换为 base-9 的算法,首先看一下从 base-10 转换为 base-2 的 Converting a decimal number into binary。唯一的区别是你会除以 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。

    所以,对于 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 为底的表示形式相反。

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

    【讨论】:

      【解决方案2】:

      你的导师的回答不正确。

      http://www.wolframalpha.com/input/?i=231085+in+base+9

      【讨论】:

      • 这是真的,但如果是这样,请尝试提供一些解释,说明为什么它是不正确的。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多