Polinomial simetris adalah polinomial yang tidak berubah berdasarkan permutasi variabel-variabelnya.
Dengan kata lain, polinomial f(x,y)
adalah simetris jika dan hanya jika f(x,y) = f(y,x)
; polinomial g(x,y,z)
adalah iff simetris g(x,y,z) = g(x,z,y) = g(y,x,z) = etc
.
Sebagai contoh, x^2+2xy+y^2
, xy
dan x^3+x^2y+xy^2+y^3
adalah polinomial simetris, di mana 2x+y
dan x^2+y
tidak.
Tantangan
Anda akan diberi polinomial, dan program Anda harus menampilkan nilai kebenaran / kepalsuan, tergantung pada apakah polinomial yang diberikan adalah polinomial simetris.
Format input diperbolehkan dengan dua cara. String, dan array, seperti ["x^2","2xy","y^2"]
, di mana polinomial adalah jumlah dari setiap elemen.
Contoh
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
Spesifikasi
Operasi memiliki perintah, seperti dalam matematika normal. urutannya seperti ini:
() => ^ => * => +-
aturan kode-golf berlaku.
Semua karakter dalam alfabet ( a~z
) diterima sebagai variabel, yang lainnya adalah angka.
Polinomial yang diberikan akan memiliki 2 variabel atau lebih.
Perkalian tidak memerlukan operator *, Anda hanya perlu mendeteksi penjajaran. (mendeteksi dengan penjajaran tidak perlu, gunakan opsi yang lebih baik)
() => ^ => */ => +-
tetapi contoh Anda tidak menunjukkan semua ini. Saya akan membayangkan kita bisa berharap -
tetapi tidak /
. Seperti yang telah Anda sebutkan, ()
apakah kami diharapkan menangani dalam format (-1+x)(-y-3)
?