gpt4 book ai didi

algorithm - 什么是计算 3 维 i-j-k 网格图中边数的递归算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:42 25 4
gpt4 key购买 nike

最终解等于(i-1)jk + (k-1)ij + (j-1)ki。我的想法是创建一个函数来计算平行于任一轴 i, j, k 的边数。假设我们通过calc_i调用函数来计算平行于轴i的边。

calc_i(i,j,k):

if(k==1)
return i(j-1)+j(i-1)

return calc_i(i,j,k-1)+calc_i(i,j,1)

我们可以通过简单地将 i,j,k 输入参数更改为函数 calc_i 并由另一个函数 calc_total 调用它来调用其他计算平行于轴 j 和 k 的边的函数

calc_total(i,j,k):

return (calc_i(i,j,k) + calc_i(j,k,i) + calc_i(k,i,j))/2

然后,在调用三个函数后我们将得到结果 k(i(j-1)+j(i-1)) + j(i(k-1)+k(i-1)) +i(j(k-1)+k(j-1))。将最终结果除以二,我们最终会得到想要的答案。

问题:是否有可能将这三个函数 calc_i ,calc_j ,calc_k 组合成一个简洁的递归函数,从而得到与上述相同的结果?

最佳答案

为了回答你的问题,我必须说是的,你可以用这样的东西:

calc(i,j,k)

if(i == 1)
return k(j-1)+j(k-1)
if(j == 1)
return k(i-1)+i(k-1)
if(k == 1)
return i(j-1)+j(i-1)

a = calc(i,j,k-1)+calc(i,j,1)
b = calc(i,j,k-1)+calc(i,j,1)
c = calc(i,j,k-1)+calc(i,j,1)

return a+b+c

但我根本没有发现你的方法!

关于algorithm - 什么是计算 3 维 i-j-k 网格图中边数的递归算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29665338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com