先复习一个等比数列的公式:
此题的答案是:k( x -1 ) + 1 + i
我的解法:
解这一道题的关键是充满想象力,
k叉树是自相似的。也就是说:你只需要把每一层乘以k(也就是"放大"k倍)就得到也是一个k叉树,只不过没有根,而且是每层都是原k叉树向下平移了一层。
每一层的下面一层,相当于把每一层放大k倍,也就是平移到下面一层了。
所以,在这道题目中,我要想得到下一层X编号节点所在的那个位置的编号,只需要把k (X - 1) 就得到
放大后的k叉树
X的那个位置之前的点数总和,最后再+1,因为刚才没算根。
这里有个问题,怎么利用上刚才的等比数列求和公式的结论呢?
因为:这个k叉树
每层的元素个数都满足等比数列,第n层有k^(n-1)个元素,
前n层有Sn=1+k+……+k^(n-1)个元素
所以原始的k叉树的编号X-1,就表示编号X节点之前的元素和(X-1 = X节点之前元素S(n))
所以: S(n+1) = q S(n) + 1 S(n+1)的解释:当前第n层的下一层的和
q => k, S(n)=>x-1: k (x-1) +1
最后再加上i表示第i个孩子了
即可得答案