Masalah
Saya punya program baru HEBAT yang akan mengubah cara kita berpikir tentang matematika dalam komputasi, mengambil serangkaian fungsi aljabar dan melakukan hal-hal LUAR BIASA bersama mereka! Satu-satunya masalah, adalah bahwa saya hanya dapat menguraikan aljabar tertentu, jika tidak alam semesta terlipat menjadi dirinya sendiri, yang buruk. Untungnya, saya hanya perlu beberapa operasi dasar dalam input program baru yang menakjubkan ini, tetapi saya masih membutuhkannya diperluas!
Aturan
Sebuah jawaban harus dapat menyederhanakan ungkapan berikut
2+2harus dikurangi menjadi4(5+x)+6harus dikurangi menjadix+11(x+2)^2harus dikurangi menjadix^2+4*x+4(x-5)*(3+7*x)harus dikurangi menjadi7*x^2-32*x-155*x+9*xharus dikurangi menjadi14*x(2*x^2)*x^3harus dikurangi menjadi2*x^5
Jawaban harus sepenuhnya dapat menghapus tanda kurung, yang menyiratkan bahwa semua distribusi harus dilakukan.
Jawaban harus dapat menangani semua operator dan token standar berikut:
+(Fungsi tambahan)-(Fungsi pengurangan)*(Fungsi multiplikasi)((Tanda kurung kiri, digunakan untuk menunjukkan grup))(Tanda kurung kanan, digunakan untuk menunjukkan akhir dari grup yang dimulai terakhir)x(Variabel standar)[0-9]+(angka non negatif asli)
Jawaban harus mampu setidaknya mengkuadratkan, menggunakan notasi expr ^ 2, termasuk (expr) ^ 2 secara rekursif, karena (expr) sendiri merupakan ekspresi;)
Suatu solusi harus dalam notasi infix standar, tidak ada yang omong kosong RPN!
Tidak ada fungsi perpustakaan seperti Mathematica
Simplifyuntuk melakukan ini untuk Anda.Solusi harus merupakan fungsi yang mengambil argumen tunggal dan mengembalikan versi yang diperluas
Karena ini adalah kode-golf, jawaban dengan pukulan paling sedikit (kunci) menang, 1 minggu dari OP.
Catatan
Tidak ada ruang di dunia matematika ini, tentu saja! Hanya tanda kurung.
Jadi tidak ada divisi yang diperlukan untuk menyelamatkan dari anjak piutang
Pesanan operasi standar berlaku.
Saya sadar bahwa sebagian dari apa yang saya minta adalah penyederhanaan (misalnya 2+2=4) di mana bagian lain sebenarnya sebaliknya, seperti memperluas (x+1)^2untuk menjadi x^2+2x+1. Ini disengaja. :)
-25 guratan untuk solusi yang dapat melakukan (expr) ^ n bukan hanya (expr) ^ 2
-15 guratan untuk solusi yang dapat mengevaluasi perkalian disandingkan, seperti 4x+5x== 9x, atau 4(x+1)=4x+4
-5 guratan untuk solusi yang dapat menangani banyak variabel (variabel yang tepat satu karakter alfabet huruf kecil)
-5 guratan untuk solusi yang dapat menghilangkan 0's terkemuka ( 007hanya 7[Tidak hari ini, Bond!] [Ya ampun sekarang aku merasa seperti sedang menulis Lisp])