Well, I don't really have the time to explain this right now and I did it so long ago, that I'm not sure that I could anyway. The ideas are explained here:
http://mathworld.wolfram.com/BowlofIntegers.html
d[A_, B_] := Sqrt[(A - B).(A - B)];
tangentCircle[{Circle[{x1_, y1_}, r1_],
Circle[{x2_, y2_}, r2_], Circle[{x3_, y3_}, r3_]}] :=
Module[{sols, x, y, r},
sols = NSolve[{
(x - x1)^2 + (y - y1)^2 == (r - r1)^2,
(x - x2)^2 + (y - y2)^2 == (r + r2)^2,
(x - x3)^2 + (y - y3)^2 == (r + r3)^2}, {x, y, r}];
Circle[{x, y}, r] /. sols] /;
r1 == r2 + r3 && r1 > d[{x1, y1}, {x2, y2}];
tangentCircle[{Circle[{x1_, y1_}, r1_],
Circle[{x2_, y2_}, r2_], Circle[{x3_, y3_}, r3_]}] :=
Module[{a2, b2, c2, d2, a3, b3, c3, d3,
x, y, r, sign},
If[r1 > d[{x1, y1}, {x2, y2}], sign = -1, sign = 1];
a2 = 2 (x1 - x2); b2 = 2 (y1 - y2); c2 = 2 (sign r1 - r2);
d2 = (x1^2 + y1^2 - r1^2) - (x2^2 + y2^2 - r2^2);
a3 = 2 (x1 - x3); b3 = 2 (y1 - y3); c3 = 2 (sign r1 - r3);
d3 = (x1^2 + y1^2 - r1^2) - (x3^2 + y3^2 - r3^2);
x = (b3 d2 - b2 d3 - b3 c2 r + b2 c3 r)/(a2 b3 - b2 a3) // N;
y = (-a3 d2 + a2 d3 + a3 c2 r - a2 c3 r)/(a2 b3 - a3 b2) // N;
r = Min[
Abs[r /. Solve[(x - x1)^2 + (y - y1)^2 == (r + sign r1)^2, r]]];
Circle[{x, y}, r]];
tangentCircles[{Circle[{x1_, y1_}, r1_],
Circle[{x2_, y2_}, r2_], Circle[{x3_, y3_}, r3_]}] :=
Module[{a2, b2, c2, d2, a3, b3, c3, d3,
x, y, r, sign},
If[r1 > d[{x1, y1}, {x2, y2}], sign = -1, sign = 1];
a2 = 2 (x1 - x2); b2 = 2 (y1 - y2); c2 = 2 (sign r1 - r2);
d2 = (x1^2 + y1^2 - r1^2) - (x2^2 + y2^2 - r2^2);
a3 = 2 (x1 - x3); b3 = 2 (y1 - y3); c3 = 2 (sign r1 - r3);
d3 = (x1^2 + y1^2 - r1^2) - (x3^2 + y3^2 - r3^2);
x = (b3 d2 - b2 d3 - b3 c2 r + b2 c3 r)/(a2 b3 - b2 a3) // N;
y = (-a3 d2 + a2 d3 + a3 c2 r - a2 c3 r)/(a2 b3 - a3 b2) // N;
Circle[{x, y}, Abs[r]] /.
Solve[(x - x1)^2 + (y - y1)^2 == (r + sign r1)^2, r]
];
triplets[{a_, b_, c_}, d_] :=
{{a, b, d}, {a, c, d}, {b, c, d}};
triplets[{a_, b_, c_Circle}, l_List] :=
triplets[{a, b, c}, #] & /@ l;
apollonianStep[{a_Circle, b_, c_}] :=
triplets[{a, b, c}, tangentCircle[{a, b, c}]];
apollonianStep[l_List] := apollonianStep /@ l;
{circ1, circ2, circ3, circ4} = {
Circle[{0, 0}, 1/6],
Circle[{1/6 - 1/11, 0}, 1/11],
Circle[{-8/105, -2/35}, 1/14],
Circle[{-3/50, 2/25}, 1/15]};
init = {{circ1, circ2, circ3}, {circ1, circ2, circ4},
{circ1, circ3, circ4}, {circ2, circ3, circ4}};
circs = TimeConstrained[
Union[Flatten[init //. {a_, b_, Circle[p_, r_]} :>
apollonianStep[{a, b, Circle[p, r]}] /; r > .01]], 10];
moreCircs = Union[Flatten[init //. {a_, b_, Circle[p_, r_]} :>
apollonianStep[{a, b, Circle[p, r]}] /; r > .0005]];
number[Circle[c_, r_]] :=
Text[Style[Round[1/r], FontSize -> 1400 r], c];
Graphics[{circs, moreCircs,
Map[number, DeleteCases[circs, Circle[{0, 0}, _]]]},
ImageSize -> 700]

Solve[Abs[x - a] - k Abs[x - b] == 0, x]? – belisarius Sep 24 '12 at 11:55Solvetreat x as Real not Complex. – chyx Sep 24 '12 at 11:58Solve[Abs[x - (ar + I ai)] - k Abs[x - (br + I bi)] == 0, x]... why do you say thatSolvetreat them as Reals? – belisarius Sep 24 '12 at 12:01