我有一个任务是解决旅行推销员问题。我不会撒谎,我现在正在做的部分实际上我并不完全理解他们在问,如果我奇怪地表达这个问题,很抱歉。我有点明白,但不完全。
我们正在计算推销员的大致距离。我们需要创建一个二维数组,我相信比特集?无论如何以二进制形式存储值。0代表未访问过,1代表已访问过。
我们得到了一个有很大帮助的算法,如果这里有人可以帮助第一步,我应该能够完成它:
Create memoisation table [N][(1 << N)]
(其中 N = 城市数)。我知道 1 << N 意味着将城市数量(例如 5)转换为二进制,然后将集合向左移动一个位置。
我的主要问题是:
- 将 N 转换为二进制(我认为这是我需要做的?)
- 将集合向左移动一位
- 实际上创建这些大小的二维数组......
我在这里可能是错的,事实上这很可能......任何帮助表示赞赏,谢谢!