Регулярные выражения и парсинг полиномов

Код находится здесь https://github.com/vic78/polynomials.

Для работы требуется php7.2.

Использование:

php7.2 start.php test.txt

Файл test.txt может быть таким:

-5*6*x^19*2.4*x^7 + 65 * x ^ 3     ;
0 ;
56.2  ;
0.23*x^12+7*x^0  ;
asdjfl;aks
;alskdjf;laksd
a;sldkjf;laskdf
;laskjdfl;a
qoweiuroqwe
qwjf;laksjdf
a;lskdjf;l a
5*x^2*x^3 + 12.003*x^5 + x^12 - 12*2*x^9*x^5  ; asdkjf 
;alskdjf 
a;lskdjf ;as
a;lskdjf 
asl;d kjas;d
;a klsd;f
5*x^2 + 4*x + 1 ;

Points (-8, -14.02,   0.123, 0.442, 355   , 1 );gsert wertwertwertwre
sdfkjasld;kjfal;skjdfalskjdf Points (-12, 4,   0.1, 442, 17    );

x + x + x;

Тогда получим такой вывод:

Polynomials:

0)  -72*x^26+65*x^3
1)  0
2)  56.2
3)  0.23*x^12+7
4)  -24*x^14+x^12+17.003*x^5
5)  5*x^2+4*x+1
6)  3*x

Points:

0)  -8
1)  -14.02
2)  0.123
3)  0.442
4)  355
5)  1
6)  -12
7)  4
8)  0.1
9)  442
10)  17


 Quotient:
5*x+9
 Reminder:
10

В этом примере полином $ 5x^2+4x+1$ делится с остатком на линейный полином $x-1$:
$$
5x^2+4x+1 = (5x+9)(x-1) + 10.
$$

vedro-compota's picture

ну неплохо было бы тут выложить комментарий и показать магическую регулярку. которая делает это)

_____________
матфак вгу и остальная классика =)