最近才开始跟随学习B站课程,在阅读稀疏数据结构的taichi_logo代码时有一些读不懂。
并且还没有在网上搜到解答,所以在社区请教一下各位同学几个问题:
① 这一堆整除的目的是什么呀?
res = n + n // 4 + n // 16 + n // 64
② scatter里面的整除又是什么呢?
@ti.func
def scatter(i):
return i + i // 4 + i // 16 + i // 64 + 2
③这里的t是一堆bool的相加吗,最后的除以4又是什么意思呀?
@ti.kernel
def paint():
for i, j in ti.ndrange(n, n):
t = x[i, j]
block1_index = ti.rescale_index(x, block1, [i, j])
block2_index = ti.rescale_index(x, block2, [i, j])
block3_index = ti.rescale_index(x, block3, [i, j])
t += ti.is_active(block1, block1_index)
t += ti.is_active(block2, block2_index)
t += ti.is_active(block3, block3_index)
img[scatter(i), scatter(j)] = 1 - t / 4
感觉问题实在有点小白,路过的同学有兴趣解答一下呗~
(或者说能推荐一些其他学习这种小白问题的渠道嘛?我就不在这里耽误大家时间,争取下次问点有技术含量的问题嘿嘿嘿)