  We present a simple randomized algorithm that approximates the number of
satisfying assignments of Boolean formulas in conjunctive normal form. To the
best of our knowledge this is the first algorithm which approximates #k-SAT for
any k >= 3 within a running time that is not only non-trivial, but also
significantly better than that of the currently fastest exact algorithms for
the problem. More precisely, our algorithm is a randomized approximation scheme
whose running time depends polynomially on the error tolerance and is mildly
exponential in the number n of variables of the input formula. For example,
even stipulating sub-exponentially small error tolerance, the number of
solutions to 3-CNF input formulas can be approximated in time O(1.5366^n). For
4-CNF input the bound increases to O(1.6155^n).
  We further show how to obtain upper and lower bounds on the number of
solutions to a CNF formula in a controllable way. Relaxing the requirements on
the quality of the approximation, on k-CNF input we obtain significantly
reduced running times in comparison to the above bounds.
