Diberikan persamaan linear mx+n
, return n
dan m
. Namun, persamaannya mungkin dalam salah satu format berikut:
5x+2 -> 5 2
5x-2 -> 5 -2
5x -> 5 0
-2 -> 0 -2
x -> 1 0
Berikut adalah format, di mana masing-masing ?
singkatan dari bilangan bulat positif ditulis tanpa nol memimpin
?x+?
?x-?
-?x+?
-?x-?
x+?
x-?
?
-?
?x
-?x
x
Semua kasus ini harus ditangani.
Spesifikasi:
- Anda dapat mengasumsikan bahwa persamaan tersebut dalam salah satu format di atas, yaitu cocok dengan regex
^(-?[123456789]\d*)?x([+-][123456789]\d*)?|-?[123456789]\d*$
.
Kasus uji:
-2x+3 -> -2 3
44x -> 44 0
-123 -> 0 -123
x -> 1 0
-1x -> -1 0
1 +2
akan menjadi output yang valid untuk1x+2
?L
ke akhir angka jika mereka menjadi terlalu besar. Haruskah ini dibiarkan?7x
apakah output sebagai7 0
tetapi7
apakah output itu adil7
?Jawaban:
Python 2 , 55 byte
Cobalah online!
Menggunakan evaluasi kode bawaan Python. Input diformat seperti bilangan kompleks dengan mengganti
x
denganj
, unit kompleks Python. Karena hanya literal seperti2j
yang dikenali, tetapi tidakj
atau-j
, variabelj
ditugaskan1j
untuk mencakup mereka.Sayangnya, Python tampaknya tidak memiliki built-in untuk mengonversi bilangan kompleks menjadi sepasang real.
sumber
Mathematica, 16 byte
Terinspirasi oleh xnor's Python 2 jawaban :
Mengambil input sebagai ekspresi literal (bukan string), dan mengembalikan sepasang angka. Ia bekerja dengan membuat
x
bilangan kompleks kemudian mengambil bagian-bagian nyata dan imajiner - satu-satunya bit yang tidak jelas adalah mengalikan dengan i untuk memulainya, untuk mendapatkan output dalam urutan yang benar.Kita juga bisa menggunakan
untuk 14 byte (diikat dengan Jelly!), tetapi pengaturan
x
ke -i yang sama sebelum mengambil input, alih-alih hanya menggantix
setelahnya, terasa seperti curang…sumber
ReIm
fungsi, saya selalu lakukan{Re[#],Im[#]}&
. Anda telah banyak membantu di sana.ReIm
hanya diperkenalkan di versi 10.1, jadi mungkin saja salinan Mathematica Anda tidak memilikinya.JavaScript (ES6),
5348 byteUji kasus
Tampilkan cuplikan kode
sumber
-x
mencoba regex saya-x
bukan input yang valid.sed ,
4442 byteCobalah online!
I / O: satu per baris.
-2 byte berkat @KritixiLithos.
sumber
t
dan:
alih-alih menggunakana
labelJelly ,
1814 byteTest suite di Coba online!
Bagaimana?
sumber
PHP, 73 Bytes
Cobalah online!
PHP, 91 Bytes
bekerja juga dengan
-x
Cobalah online!
sumber
Mathematica, 23 byte
Cobalah online
salin dan tempel dengan ctrl-v kode ini
dan tekan shift + enter untuk menjalankan
sumber
Python 2 , 71 byte
Cobalah online!
sumber
Mathematica, 33 byte
Fungsi murni mengambil ekspresi dalam format yang diharapkan (catatan: bukan string, tetapi ekspresi murni seperti
-2x+3
), dan mengembalikan pasangan bilangan bulat yang dipesan dengan koefisien konstan yang muncul terlebih dahulu (misalnya,-2x+3
pengembalian{3,-2}
).The builtin
CoefficientList
(yang berfungsi untuk polinomial tingkat apa pun) melakukan pengangkatan berat; perilaku default-nya adalah mengembalikan konstanta sebagai daftar panjang-1, sehingga/.{a_}:>{a,0}
mengesampingkannya dan membuat0
koefisienx
muncul secara eksplisit.sumber
Retina , 38 byte
Pasti bisa diperbaiki.
Mungkin meregangkan bagaimana kita diizinkan untuk memformat output. Ini hanya menghasilkan persamaan lengkap, seperti dalam
n
danm
dipisahkan olehx+
Cobalah online!
sumber
x-1
[^+-]*
dengan\w*
Oktaf , 45 byte
Cobalah online!
Mengevaluasi ekspresi, dengan
x
digantikan oleh kompleksj
. Oktaf sangat fleksibel ketika datang ke ekspresi kompleks, denganj
,1j
,i
dan1i
semua setara (dengan keuntungan yang1j
dan1i
tidak dapat ditimpa oleh variabel, tapi itu tidak relevan untuk tantangan ini). Ekspresi sebaris digunakan untuk membuat daftar[imag(u) real(u)]
denganu
bilangan kompleks.Saya awalnya ingin mencoba pendekatan yang lebih idiomatis, menggunakan built-in
sym2poly
. Misalnya (sudah di 47 byte untuk memastikan0*x
ditangani):Namun yang satu ini gagal pada kasus
x
tanpa koefisien. Pada akhirnya setup nyata / kompleks sepertixnor
ternyata menjadi optimal.sumber
MATL , 12 byte
Cobalah online!
Port jawaban Octave saya, tetapi tentu saja disesuaikan untuk kekompakan dalam MATL. Penjelasan:
sumber
C (gcc) ,
145138112 byteCobalah online!
Pasti bisa dipersingkat, tapi jangan melihatnya sekarang!
sumber
char *s
2. Tidak bisakah Anda menghapus spasi putih?printf("%d %d",s[i]-'x'?:a,s[i=L?L-s:i]-'x'?a:b);
alih-alihif(L!=0)i=(int)(L-s);printf("%d %d",s[i]=='x'?a:0,s[i]=='x'?b:a);
danindex()
bukannyastrchr()