Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Solves the non linear system:
- // a² + b² = 45
- // b² + c² = 40
- // Where a, b and c are integers
- function o(x)
- {
- return Math.abs(x[0]*x[0] + x[1]*x[1] - 45) +
- Math.abs(x[1]*x[1] + x[2]*x[2] - 40);
- }
- function mutate(x)
- {
- var x2 = x.slice(0); // clone
- for (var i = 0; i < x.length; i++)
- {
- var r = Math.random();
- x2[i] += r < 1/3 ? -1 : r < 2/3 ? 0 : 1;
- }
- return x2;
- }
- var x = [10, 10, 10];
- var u = o(x);
- var count = 0;
- while (u != 0)
- {
- var x2 = mutate(x);
- var n = o(x2);
- if (n <= u)
- {
- u = n;
- x = x2;
- }
- count++;
- if (count == 1000)
- {
- break;
- }
- }
- WScript.Echo(x + ' (' + count + ' iterations)');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement