Complex Roots of Quadratics Every red pixel corresponds to a complex root of a quadratic $ax^2 + bx + c$ with natural coefficients $0 \leq a,b,c < 100$. The 3 largest black discs are centred at $-1$, $-1/2$ and $0$, and it seems each real rational has its own disc of arbitrary size. What are the radii of these discs?

 A: So I performed a little bit of investigation of the complex roots, given the constraints of $a,b,c \in \mathbb{N}$ and $0 \le a,b,c \le 100$.
Here are some observations right off the bat:
For $a = 0$ or $c =0$ the roots will always be real, so there is no need to consider or compute those cases.
Since $b \ge 0$ and $a > 0$, the average of the roots, $\dfrac{-b}{2a}$, for any of the quadratics will be negative, so only the left hand plane needs to be considered.
Since $a,b \in \mathbb{N}$, the average of the roots, $\dfrac{-b}{2a}$, will always be rational.  This creates structure along the real axis for where roots can appear in the case the complex roots: the complex roots can never have an irrational real part.  Additional structure along the real axis is created by the limited set of values of $a$ and $b$: many rational numbers can never be the real part of the complex roots either.
For the case of complex roots, the roots always come in complex conjugate pairs, so only the upper half of the left half plane needs to be considered.
For the case of complex roots, the roots for any one quadratic are given by:
$$x = \dfrac{-b}{2a} \pm i\sqrt{\dfrac{c}{a} - \left(\dfrac{-b}{2a}\right)^2}\quad\mathrm{for}\quad \dfrac{c}{a} - \left(\dfrac{-b}{2a}\right)^2 > 0$$
So the imaginary parts of the roots can be irrational, but there is still structure introduced in the imaginary part due to the limited set of values for $a$, $b$, and $c$.
I used this GNU Octave (MatLab clone) script to investigate and plot the roots:
amax = 100;
bmax = 100;
cmax = 100;
a = [1:amax]; % cases with a = 0 only have real roots
b = [0:bmax];
c = [1:cmax]; % cases with c = 0 only have real roots

% Build all possible triples (a,b,c)
m = repelems(a, [[1:length(a)]; length(b)*length(c)*ones(1,length(a))]);
n = repelems(b, [[1:length(b)]; length(c)*ones(1,length(b))]);
m(2,:) = repmat(n, 1, length(a));
m(3,:) = repmat(c, 1, length(a)*length(b));
m = m.';

% Compute the average of the roots of ax^2+bx+c, -b/2a
m(:,4) = -m(:,2)./(2*m(:,1));

% Compute the magnitude of the imaginary part of all the complex roots
M = length(a)*length(b)*length(c);
for i = [1:M]
  m(i,5) = abs(imag(roots(m(i,[1:3]))(1)));
endfor

% Make a copy with the cases with real roots removed (mostly)
n = m;
n(m(:,5)==0,:) = [];
graphics_toolkit("fltk");
%plot(n(:,4), n(:,5), '.');

% Highlight the smallest imaginary part for each real part
s = sortrows(n, [4 5]);
s2 = s;
s2([0==1; diff(s(:,4)) ==0],:) = [];
plot(n(:,4), n(:,5), '.', s2(:,4), s2(:,5), '.');

Zoomed all of the way out on the plotted roots, shows that the plot of the complex roots definitely has a self-similar structure (fractal?) and also has large scale quadratic (elliptic or parabolic?) structure.
After zooming in and out on the plotted points and checking with the gridlines on, the "circles" are not really circular, at least the ones "centered" at the integral values on the real axis.  They appear lop-sided, with the negative real side being slightly larger.
That's all I have for you.
TL;DR


*

*The structure is really there.

*The structure is due to the limited set of values allowed for $a$, $b$, and $c$.

*The "circles" aren't circles.  The question needs to be restated.
