Algorithm 金字塔算法
我试图找到一个算法,在这个算法中,我可以通过一个数字金字塔,从金字塔的顶部开始,继续通过下一行中的相邻数字,每个数字都必须加到最后的和中。问题是,我必须找到返回最高结果的路径 我已经试着在下一行中通过较高的相邻编号,但这不是答案,因为它并不总是得到最佳路线 即 如果我通过最高相邻编号,它是: 34+43+89+51+32=249 但如果我去: 34+42+68+78+49=269 在第二种情况下,结果会更高,但我是手工完成的,我不能用一种算法在所有情况下都能得到最高的结果 谁能帮我一把吗Algorithm 金字塔算法,algorithm,math,Algorithm,Math,我试图找到一个算法,在这个算法中,我可以通过一个数字金字塔,从金字塔的顶部开始,继续通过下一行中的相邻数字,每个数字都必须加到最后的和中。问题是,我必须找到返回最高结果的路径 我已经试着在下一行中通过较高的相邻编号,但这不是答案,因为它并不总是得到最佳路线 即 如果我通过最高相邻编号,它是: 34+43+89+51+32=249 但如果我去: 34+42+68+78+49=269 在第二种情况下,结果会更高,但我是手工完成的,我不能用一种算法在所有情况下都能得到最高的结果 谁能帮我一把吗 请告诉
请告诉我,如果我没有很好地表达自己从底部一行一行开始,将每个元素下两个值中的最高值添加到该元素 例如,对于树,05将被max72,25+05=77替换。稍后,将该值的最大值和51元素的新值添加到67 最顶端的节点将是最大和
为了不破坏您的所有乐趣,我将把实现留给您,或者如果需要,将获取实际路径的详细信息留给您。从底部一行一行开始,将每个元素下两个值中的最高值添加到该元素中 例如,对于树,05将被max72,25+05=77替换。稍后,将该值的最大值和51元素的新值添加到67 最顶端的节点将是最大和
为了不破坏您所有的乐趣,我将把实现交给您,或者如果需要,交给您获取实际路径的详细信息。从最下面一行开始。当你从左到右时,考虑两个相邻的数字。现在往上走一行,将上面一行中两个数字上面的数字之和与下面每一个数字进行比较。选择较大的总和 基本上,您看到的是由底部一行和上面一行组成的三角形。对于你原来的三角形
34
43 42
67 89 68
05 51 32 78
72 25 32 49 40
左下角的三角形看起来像
05
72 25
所以你要加上72+05=77,因为这是72+05和25+05之间的最大总和
同样地
51
25 32
将给你51+32=83
如果对每两个相邻的数字和上面的数字继续此方法,则可以放弃底部的行,并用计算出的和替换上面的行
因此,在本例中,倒数第二行变为
77 83 81 127
你的新金字塔是
34
43 42
67 89 68
77 83 81 127
继续这样做,你的金字塔开始缩小,直到你有一个数字,这是你所追求的数字
34
43 42
150 172 195
最后,剩下一个数字271。从最下面一行开始。当你从左到右时,考虑两个相邻的数字。现在往上走一行,将上面一行中两个数字上面的数字之和与下面每一个数字进行比较。选择较大的总和 基本上,您看到的是由底部一行和上面一行组成的三角形。对于你原来的三角形
34
43 42
67 89 68
05 51 32 78
72 25 32 49 40
左下角的三角形看起来像
05
72 25
所以你要加上72+05=77,因为这是72+05和25+05之间的最大总和
同样地
51
25 32
将给你51+32=83
如果对每两个相邻的数字和上面的数字继续此方法,则可以放弃底部的行,并用计算出的和替换上面的行
因此,在本例中,倒数第二行变为
77 83 81 127
你的新金字塔是
34
43 42
67 89 68
77 83 81 127
继续这样做,你的金字塔开始缩小,直到你有一个数字,这是你所追求的数字
34
43 42
150 172 195
最后,您只剩下一个数字271。这个问题似乎离题了,因为它是关于数学的。@MitchWheat数学怎么样?这是关于一个算法的,不是吗?正如图灵所证明的,所有的算法都是数学的。我想我们应该合并到这些网站上。让我们不要变得不必要的迂腐;关键是这个问题不是离题。在加权有向无环图中搜索最长路径。这个问题似乎离题了,因为它是关于数学的。@MitchWheat它是关于数学的吗?这是关于一个算法的,不是吗?正如图灵所证明的,所有的算法都是数学的。我想我们应该合并到这些网站上。让我们不要变得不必要的迂腐;重点是这个问题不是离题。在加权有向无环图中搜索最长路径。嘿,谢谢!它可以工作,我可以编写它,它工作得很完美。这个算法有名字吗?嘿,谢谢!它可以工作,我可以编写它,它工作得很完美。这个算法有名字吗?