我一直在处理我们的教练给我们的练习,即返回输入数字的" 基数9 ".
输入的数字是:231085,
返回号码是:382871.
我不知道他怎么想出那个所谓的"基础9"等价物.
我试着寻找关于如何在网络上获得基础9等价的公式,但是我很难理解,加上我在数学和代数方面很弱的事实.
我尝试使用模数和除法来解决它并且没有得到任何东西(当然,我的公式是错误的).
我真的对这个问题傻眼了,我很感激,如果有人能告诉我解决它的公式.
或者答案或问题本身都错了?
干杯!
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的整数分解为其数字,则应遵循以下模式:
因此,对于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的表示相反.
这个答案实际上并没有为你提供基本转换的代码,但是上面概述了基本逻辑,并且算法存在于整个互联网上(可能是针对不同的基础,但你需要改变的只是部门的基础) .
归档时间: |
|
查看次数: |
278 次 |
最近记录: |