import math
#网络最大深度L
L=3
#父节点拥有的孩子节点的最大数目C
C=7
#父亲节点拥有的孩子节点中路由器的最大数目R
R=4
#计算间隔值
def Cskip(d):
skip = 0
if R==1:
skip = 1 + C * (L - d - 1)
else:
fenzi = 1 + C - R - C * (R**(L-d-1))
fenmu = 1 - R
skip = fenzi / fenmu
skip = int(skip)
print("skip is " + str(skip))
return int(skip)
#计算非终端节点地址
def solve1(parentadress,d,num):
s = (num-1) * Cskip(d)
return int(parentadress + 1 + s)
#计算终端节点地址
def solve2(parentadress,d,num):
return int(parentadress + Cskip(d) * R + num - R)
#计算(父节点地址,父节点深度,父节点的第num个节点)
def solve(parentadress,d,num):
s = 0
if num > R:#是终端节点
s = solve2(parentadress,d,num)
else:
s = solve1(parentadress,d,num)
s = int(s)
return hex(s)
#只需要调用solve函数即可
OK