13
$\begingroup$

I wonder if anybody can help me with this problem.

I'm trying to compute the Mertens function for large $n$. The most obvious algorithm is just to compute all primes up to $\sqrt{n}$ and then to sieve. That takes at least an order of $n\log n$ operations, and really even more.

The most recent article that I could find that discusses methods to compute the function directly is dated 1994, and it proposes to do exactly that.

Are there any known algorithms that let you compute Mertens faster than by sieving? I know that $\pi(n)$ can be computed in $O(n^{2/3})$, I looked into that algorithm but it does not seem to be easily adaptable to my task.

Alternatively, I could use an algorithm to compute $M(n+dn)-M(n)$ for $dn\ll n$ (say $dn\sim \sqrt{n}$ ) in $O(\sqrt{n})$ time or less.

$\endgroup$
1
  • $\begingroup$ the simplest algorithm is computing $M(\lfloor n/k \rfloor)$ for $k \le n$ so only $M(k)$ and $M(\lfloor n/k \rfloor)$ for $k \le \sqrt{n}$, exploiting $\sum_{k=1}^n M(\lfloor n/k \rfloor) = 1$ $\endgroup$
    – reuns
    Feb 29, 2016 at 23:29

4 Answers 4

11
$\begingroup$

This article presents an algorithm to compute Mertens function in $O(x^{2/3}(\log \log x)^{1/3})$ time and $O(x^{1/3}(\log \log x)^{2/3})$ space, I wonder if it is the same one you are referring to. On the other hand people sometimes make use of certain recursions such as the results in this paper to compute things about the Mertens function. This paper seems to claim that these algorithms haven't been improved upon.

$\endgroup$
3
  • 1
    $\begingroup$ Thank you, it should be interesting, I'm going to work through it now. It's not the same article I was referring to, that was <a href="walter.lioen.com/papers/LL94.pdf"> this one</a>. $\endgroup$
    – Nameless
    Aug 22, 2010 at 6:39
  • $\begingroup$ Hrm, isn't this web site supposed to allow 'a' HTML tags? $\endgroup$
    – Nameless
    Aug 22, 2010 at 6:40
  • $\begingroup$ It think it doesn't work in the comments section. $\endgroup$ Aug 22, 2010 at 6:49
6
$\begingroup$

Not to toot my own horn (joint with L. Thompson), but in https://arxiv.org/pdf/2101.08773.pdf we give an elementary algorithm running in time $O_\epsilon(x^{3/5} (\log x)^{3/5+\epsilon})$.

$\endgroup$
4
$\begingroup$

As I indicate in the answer Mertens' function in time $O(\sqrt x)$, there is a method in Lagarias-Odlyzkos 1987 paper "Computing $\pi(x)$ an analytic method" (which I sketch in that answer) that calculates $M(x)$ on $O(x^{1/2+\epsilon})$ time. The Kotnik-Van de Lune paper that Gjergji Zaimi cites indeed also cites this paper. While the methods that depend on values of the Riemann zeta-function (like the Lagarias-Odlyzko method) might be asymtotically faster, the combinatorial identities are simpler to implement, and might also be faster depending on the ranges of $x$ considered.

$\endgroup$
2
$\begingroup$

Perhaps the simplest sub-linear method is to rewrite the identity $$\sum_{k=1}^n M \left( \left\lfloor \frac n k \right\rfloor \right) = 1$$

in the form

$$M(n) = 1 - \sum_{k=2}^n M \left( \left\lfloor \frac n k \right\rfloor \right)$$

The observation is that $\lfloor n/k\rfloor$ is constant for many values of large $k$, in particular $k > \sqrt n$, so we can use the technique I describe in my math.SE post about computing the totient summatory function in sub-linear time: $$M(n) = 1 - \sum_{k=2}^{\sqrt n} M \left( \left\lfloor \frac n k \right\rfloor \right) - \sum_{k=1}^{\sqrt n} \left( \left\lfloor \frac n k \right\rfloor - \left\lfloor \frac n {k+1} \right\rfloor \right) M(k)$$

adjusting the summation bounds if $\lfloor \sqrt{n} \rfloor = \left \lfloor \frac{n}{\lfloor \sqrt{n} \rfloor} \right\rfloor$.

This formula has time complexity $O(n^{3/4})$, and with some pre-computing tables as described in Deléglise, Marc; Rivat, Joöl. Computing the summation of the Möbius function. Experiment. Math. 5 (1996), no. 4, 291--295. we get an almost $O(n^{2/3})$ algorithm.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.