三十二次访问,中了多少次
手边有,还是得跑一趟
手边有
得去取
运行下面这段程序,填写它打印出来的结果。
BLK = 4
LINES = 4
def sim(addrs, ways=1):
sets = LINES // ways
tags = [[None] * ways for _ in range(sets)]
order = [[] for _ in range(sets)]
hit = 0
miss = 0
for a in addrs:
b = a // BLK
s = b % sets
if b in tags[s]:
hit = hit + 1
order[s].remove(b)
order[s].append(b)
else:
miss = miss + 1
if None in tags[s]:
tags[s][tags[s].index(None)] = b
else:
old = order[s].pop(0)
tags[s][tags[s].index(old)] = b
order[s].append(b)
return hit, miss
hit, miss = sim(range(32))
print(str(hit) + "/" + str(miss))
全部评论