Một đa thức đối xứng là một đa thức không thay đổi dưới hoán vị của các biến của nó.
Nói cách khác, một đa thức f(x,y)
là đối xứng khi và chỉ khi f(x,y) = f(y,x)
; một đa thức g(x,y,z)
là iff đối xứng g(x,y,z) = g(x,z,y) = g(y,x,z) = etc
.
Ví dụ, x^2+2xy+y^2
, xy
và x^3+x^2y+xy^2+y^3
là đa thức đối xứng, nơi 2x+y
và x^2+y
không.
Các thách thức
Bạn sẽ được cung cấp một đa thức và chương trình của bạn sẽ đưa ra các giá trị trung thực / giả, tùy thuộc vào việc đa thức đã cho có phải là đa thức đối xứng hay không.
Các định dạng đầu vào được cho phép theo hai cách. Một chuỗi và một mảng, như ["x^2","2xy","y^2"]
, trong đó đa thức là tổng của từng phần tử.
Thí dụ
x^2+2xy+y^2 => true
xy => true
xy+yz+xz-3xyz => true
(x+y)(x-y) => false
2x+y => false
x^2+y => false
x+2y+3 => false
Thông số kỹ thuật
Các hoạt động có đơn đặt hàng, giống như trong toán học bình thường. thứ tự là như thế này:
() => ^ => * => +-
quy tắc golf-golf áp dụng.
Tất cả các ký tự trong bảng chữ cái ( a~z
) được chấp nhận là biến, mọi thứ khác đều là số.
Đa thức đã cho sẽ có 2 biến trở lên.
Phép nhân không yêu cầu toán tử *, Bạn chỉ cần phát hiện vị trí kề nhau. (phát hiện bởi juxtap vị trí không phải là cần thiết, sử dụng tùy chọn tốt hơn)
() => ^ => */ => +-
nhưng ví dụ của bạn không hiển thị tất cả những điều này. Tôi có thể tưởng tượng chúng ta có thể mong đợi -
nhưng không /
. Như bạn đã đề cập, ()
chúng tôi dự kiến sẽ xử lý trong định dạng (-1+x)(-y-3)
?