命中和试验矩阵是否可以在递归函数中进行而无需创建多个副本?

时间:2011-09-01 16:35:39

标签: c++ recursion backtracking

我有一个矩阵,需要通过命中和试验方法进行更改,评估,如果不符合要求,则需要重新分配值。我在链式假设的递归函数中这样做。这可以在不创建多个副本的情况下完成吗?

我可以在回溯时恢复矩阵吗?

1 个答案:

答案 0 :(得分:2)

你问:“我可以在回溯时恢复矩阵吗?”我问同样的问题 - 你呢?如果修改很容易逆转,那么你一定可以。

void f()
{
    foreach (possibilty)
        modify ();
        f();
        unmodify();  
}

如果unmodify并非微不足道,那么你最好用

void f(matrix m)
{
   foreach (possibilty)
        matrix tmp = m;
        modify (tmp);
        f(tmp);
}