动态规划 - 给定 num K,从 (0,0) 到 (x,y) 有多少种方法?

问题描述 投票:0回答:1

一个机器人根据他开始之前附在他身上的计划在(x~y)坐标系中移动。 机器人总是从 (0, 0) 开始并且只理解 4 个命令 - 西 - (x-1, y) SUD - (x, y-1) 原声 - (x+1, y) 北 - (x, y+1) 每个命令都让机器人在选定的方向上移动一个单位。 机器人的附加计划由一系列这些命令组成。

给定 (x, y) 的随机坐标和自然数 K,我们想要计算 K 长度内的不同计划的数量,这些计划将使机器人从 (0, 0) 到 (x, y)。

除了解释,我还需要一个算法和它的伪代码 最好在 C

到目前为止,我唯一能想到的是主要条件是 K 不能小于 abs(x+y),在这种情况下我需要返回 0,因为 K 长度为零的序列将让我到达 (x,y),或者更准确地说,我永远无法通过 K 步到达那里。

algorithm recursion coordinates dynamic-programming random-walk
1个回答
0
投票

使用具有以下观察的动态规划:f(x, y, K) = f(x - 1, y, K - 1) + f(x + 1, y, K - 1) + f(x, y - 1, K - 1) + f(x, y + 1, K - 1)

© www.soinside.com 2019 - 2024. All rights reserved.