program HN_NH;
{
Brute Force with Seven Point Stars
==================================
}
function pow(x,r : double) : double;
{
x^r
}
begin
pow := exp(r\*ln(x));
end;
procedure test(veel : integer);
var
i,j,k,ken : integer;
a,b,c,d,f,min,max : double;
procedure vertex(x,y,z : integer);
var
a,b,c,h : double;
begin
a := (2\*i+x)\*d; b := (2\*j+y)\*d; c := (2\*k+z)\*d;
h := pow(a,a)\*pow(b,b)\*pow(c,c);
if h < 1 then ken := ken\*2 else ken := ken\*2+1;
end;
begin
{ Verify maximum (a,b,c)-value < 1.6 }
Writeln(exp(2/exp(1)),' <',pow(1.6,1.6));
d := 1.6/veel/2; { half voxel size }
min := 3; max := 0; { initialize }
for i := 1 to veel-1 do
begin
for j := 1 to veel-1 do
begin
for k := 1 to veel-1 do
begin
ken := 0; { Binary number for collecting <> }
{ Each vertex of a 7-point star }
vertex(-1,0,0); vertex(+1,0,0);
vertex(0,-1,0); vertex(0,+1,0);
vertex(0,0,-1); vertex(0,0,+1);
if (ken = 0) or (ken = 63) then Continue;
{ Midpoint of star is near a^a\*b^b\*c^c = 1 }
a := 2\*i\*d; b := 2\*j\*d ; c := 2\*k\*d;
f := sqr(a)\*b + sqr(b)\*c + sqr(c)\*a;
if f < min then min := f;
{ Determine maximum of f(a,b,c) }
if f > max then max := f;
end;
end;
end;
Writeln(min,' < f(a,b,c) <',max);
end;
begin
test(200);
end.
And now we are curious, of course, what the maximum is (it's the last number in this output):
2.08706522863453E+0000 < 2.12125057109759E+0000 9.12537600000000E-0003 < f(a,b,c) < 3.00026265600000E+0000Well, anyway better than the previous (Brute Force with Voxels) attempt. To be convincing, though, a decent error analysis is still needed :-(
Note. Explaining the estimate $\{a,b,c\} < \{1.6\}$ in the program: $$ f(x) = x^x = e^{x\ln(x)} \quad \Longrightarrow \quad f'(x) = [1+\ln(x)]e^{x\ln(x)} = 0 \quad \Longrightarrow \quad x=1/e \\ \Longrightarrow \quad f(1/e) = e^{-1/e} $$ This means that the maximum $x$ of each one of the coordinates in the product $a^ab^bc^c=1$ is: $$x^x = e^{2/e} < (1.6)^{1.6}$$ Therefore each of the coordinates $\;x < 1.6\,$ (or $\,1.58892154635044$ , to be double precise).