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)
sumber
() => ^ => */ => +-
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)
?Jawaban:
Maxima, 40 byte
Cobalah secara Online!
Fungsi yang mengambil polinomial sebagai input dan mengembalikan true jika simetris yang lain mengembalikan false
sumber
Mathematica, 43 byte
Fungsi tanpa nama mengambil input polinomial dalam format yang diberikan (kecuali bahwa variabel yang disandingkan harus dipisahkan oleh spasi) dan mengembalikan
True
atauFalse
.Variables@#
mendeteksi variabel yang muncul dalam input (dan dengan demikian input dapat berisi semua jenis nama variabel aneh, bukan hanya huruf tunggal).SymmetricReduction
mengembalikan pasangan polinomial yang dipesan, di mana yang pertama adalah simetris dan dua jumlah ke polinomial aslinya; oleh karena itu kita dapat mendeteksi apakah input simetris dengan melihat apakah polinomial kedua identik0
.sumber
TI-Basic, 46 byte
Pada dasarnya, cara kerjanya adalah polinomial dimasukkan ke dalam tipe variabel (dua-byte) yang dievaluasi secara dinamis. Kemudian, kita menukar nilai X dan Y cukup kali untuk melihat apakah fungsinya simetris.
sumber
*
operator, dan output1
untuk true dan0
false.