1. 程式人生 > >數根(digital root)公式的推導

數根(digital root)公式的推導

題目:給定一個數字,求其數根,例如給定38,3+8=11,1+1=2,則2就是其數根

推導:假定十進位制數n,表示式寫為

x=i=0n1ai10i
其中ai 表示從低到高的每一位,因為10i1i1(mod9) ,那麼
xi=0n1ai(mod9)
也就是說

一個數和他各位數之和的模9同餘

我們使

f(x)=i=0n1ai
也就是
f(x)x(mod9)
則有
f(f(x))f(x)x(mod9)
就是說每次累加模9的操作對於原數直接取模9是一樣的,但只適用於x0(mod9)

完整的公式為

dr(n)=0,9,nmod9,
if n=0if n0,n0(mod9)if n0(mod9)

最後推匯出

digital root = 1 + ((num - 1) % 9)