<script language="JavaScript">
var grenze=1E-15,nmax=10000;
var faktor=0.1;
/*Eingabe*/
var s1,s2,s3,s4;
s1=prompt("linke Seite der 1.Gleichung:","x+y");
s2=prompt("rechte Seite der 1.Gleichung:","1");
s3=prompt("linke Seite der 2.Gleichung:","3*x-3*y");
s4=prompt("rechte Seite der 2.Gleichung:","9");
document.write(s1+' = '+s2,'<br>');
document.write(s3+' = '+s4,'<br>');
/*Verarbeitung*/
function dist(x,y)
{ return Math.abs(eval(s1) - eval(s2)) + Math.abs(eval(s3) - eval(s4)) };
function runde(x,n)
{ var f=1; for (i=1;i<=n;i++) {f=f*10}; x=Math.round(x*f)/f; return x };
var n=0;
var xa,ya,xn,yn,da,dn;
xa = (Math.random()-0.5)*20; ya = (Math.random()-0.5)*20; da = dist(xa,ya);
do
{ n++; xn = xa + (Math.random()-0.5)*da;
yn = ya + (Math.random()-0.5)*da; dn = dist(xn,yn);
if (dn < da) { xa = xn; ya = yn; da = dn } ; }
while ((dn > grenze) && (n < nmax))
/*Ausgabe*/
if (n>=nmax)
{document.write('Nach ',n,' Versuchen keine Lösung gefunden, eventuell L = {}.')}
else
{document.write(n,' Versuche, L = {',runde(xn,10),';',runde(yn,10),'}')};
</script>
|