public double GetExpectedValue(SatProblem problem)
 {
     return(problem.Select(clause => clause.Count == 0 ? 1 : 1 - 1.0 / (1 << clause.Count)).Sum());
 }