Здравствуйте. Нашел задачку в сети, почему-то захотелось ее решить.
Звучит след образом:
Quote
2. Решить систему уравнений {ax+by=с и kx+ny=m.
На бумаге аналитически вывел формулы, получил решение:
Code
var a = prompt('a'), b = prompt('b'), c = prompt('c'), k = prompt('k'), n = prompt('n'), m = prompt('m'), x, y;
//var a = 2, b = 4, c = 34, k = 3, n = 1, m = 21, x, y;
//var a = 1, b = 1, c = 7, k = 3, n = 5, m = 29, x, y;
//alert('a: '+a+'\nb: '+b+'\nc: '+c+'\nk: '+k+'\nn: '+n+'\nm: '+m);
y = (m-k*c/a)/(-b*k/a+n);
x = (c-b*y)/a;
alert('x: '+x+'\ny: '+y);
Но дело в том, что если вводить данные через prompt() то x и y считаются не верно, а если данные задать сразу - верно.
Вторая и третья строчка закомментированы. Если ввести их данные через prompt() то посчитается неправильно, а если закомментировать первую и разкомментировать вторую/третью - то ответ будет правильным (5 и 6, или 3 и 4). Для примера системы уравнений в 2 и 3 строчках такие:
Quote
2x + 4y = 34;
3x + y = 21;
// x = 5
// y = 6
Quote
x + y = 7;
3x + 5y = 29;
// x = 3
// y = 4
Кто-нить может объяснить природу этого бага?
Пробовал через parseInt прогонять вводимые числа и после этого считать - не помогло. на всякий случай ссылка на быстрый тестер: http://w3schools.com/js/tryit.asp?filename=tryjs_intro