ES - Editorial



Author: Full name
Tester: Full name
Editorialist: Oleksandr Kulkov






You have to calculate \sum\limits_{k=1}^n \lfloor k\cdot e\rfloor with n \leq 10^{4000}.


See the pictures below for n=6.


Geometrically, we have to count lattice points with 0 < y \leq ex. Let’s add to the answer points below y=\lfloor e\rfloor x = 2x. There are \lfloor e \rfloor \cdot \dfrac{n(n+1)}{2}=n(n+1) of them. Now there is one to one correspondence between remaining points and points below y=(e-\lfloor e \rfloor)x. Let’s transform plane in such a way that (n, \lfloor(e-\lfloor e \rfloor)n\rfloor) point will move to (0,0). Now we have to count lattice points below y=\dfrac{x+(e-\lfloor e \rfloor)n-\lfloor(e-\lfloor e \rfloor)n\rfloor}{e-\lfloor e \rfloor}, thus we returned to the task of counting points below y=kx+b with k>1. Let’s see how it works for n=6 and proceed to the formal algorithm.

alt text alt text alt text alt text alt text

Now assume we want to count lattice (x;y) such that 0 \le x < n and 0 < y \le kx+b. Which is \sum\limits_{x=0}^{n-1}\lfloor kx+b \rfloor.

  1. If k>1 or b>1, we can count points with y\le\lfloor k\rfloor x + \lfloor b\rfloor which is \sum\limits_{t=0}^{n-1} \lfloor k \rfloor t + \lfloor b \rfloor=\dfrac{(\lfloor k\rfloor (n-1) + 2 \lfloor b \rfloor)n}{2}. Now we have to count points in \lfloor k \rfloor x + \lfloor b \rfloor < y\leq kx+b which is same as counting points in 0< y\leq (k-\lfloor k \rfloor)x+(b-\lfloor b \rfloor). Thus k'=k-\lfloor k \rfloor < 1, b' = b-\lfloor b \rfloor < 1.
  2. If k < 1 and b < 1 then considering that there are no lattice points in x< 0, 0< y\le kx+b because b < 1 and in x< n, \lfloor k n + b \rfloor < y\le kx+b, we can rotate the trapezium in such way that new origin is situated in (n;\lfloor k n + b \rfloor), y-axis moves to the left and x-axis moves to the bottom, as you may see on the picture: alt text
    One can see that now we deal with 0\leq x < \lfloor kn+b\rfloor and 0< y\le \dfrac{x+(kn+b)-\lfloor kn+b\rfloor}{k} which refers us to the case 1 since k'>1.

Let’s do some complexity analysis now. We assume b to be negligible compared to kn since we can get b< 1 at the first step of case 1. In that case there are at most \dfrac{kn(n-1)}{2} points we have to count and we getting rid of \dfrac{\lfloor k \rfloor n(n-1)}{2} of them. So part of removed points is at least \dfrac{\lfloor k \rfloor}{k}\geq \dfrac 1 2. Thus this solution works in O(\log n) steps. You have to calculate euler’s number with high precision in this problem which is possible using continued fractions or series e=\sum\limits_{n=0}^\infty\dfrac{1}{n!}. Please observe the details in the following link.

Another solution based on Beatty theorem can be found here. And another one solution is based on this article.


Author’s solution can be found here.
Tester’s solution can be found here.


@admin This XML file does not appear to have any style information associated with it. The document tree is shown below.