Menggunakan simbol matematika yang kita kenal: +, x, tanda kurung, dan bilangan rasional apa pun, mudah untuk membuat ekspresi yang mengevaluasi sejumlah bilangan yang diinginkan. Sebagai contoh: 1+(2x3)=7
, (1+2)+(3x6.5)=22.5
dan sebagainya. Cukup membosankan.
Dalam tantangan ini, kita akan menggunakan operator baru: ±
. Penggunaan ±
dalam ekspresi berarti Anda perlu mengevaluasi ekspresi dengan mengganti ±
dengan +
atau -
dengan semua cara yang mungkin, dan mengembalikan set semua nilai yang mungkin. Sebagai contoh:
1±2±3 = {-4,0,2,6}
karena1±2±3
dapat salah satu dari1+2+3
,1+2-3
,1-2+3
dan1-2-3
dan nilai-nilai mereka6,0,2,-4
masing-masing.(±2)x(2±3) = {-10,-2,2,10}
untuk alasan yang sama.
Sekarang, ternyata, diberi himpunan bilangan real yang berbeda, itu mungkin untuk membuat ekspresi dengan +
, x
, (
, )
, ±
, dan bilangan real yang mengevaluasi ke set yang diberikan.
Tugas
Tugas Anda adalah untuk menulis sebuah program atau fungsi dalam bahasa pilihan Anda, yang mengambil berurutan (daftar / array / format nyaman) dari bilangan bulat dan output ekspresi (sebagai string) yang terdiri dari +
, x
, (
, )
, ±
, dan bilangan rasional yang mengevaluasi ke himpunan angka yang diberikan.
- Perhatikan bahwa karakter yang tepat
±
tidak masalah; Anda dapat menggunakan karakter lain pilihan Anda selama itu dapat dibedakan dari karakter lain yang Anda gunakan. Tetapi Anda harus menyebutkan karakter yang Anda gunakan dalam kiriman Anda. - Input diperbolehkan terdiri dari perkiraan desimal (hingga akurasi yang masuk akal) dari bilangan rasional yang digunakan.
- Input dan output dapat diambil dengan salah satu cara standar.
- Celah standar dilarang.
- Anda dapat mengasumsikan bilangan bulat yang diberikan akan berbeda, dan disediakan dalam urutan yang meningkat.
- Output mungkin berisi spasi dan baris baru.
Kriteria Kemenangan
Ini adalah kode-golf , jadi kode terpendek dalam byte menang.
Contohnya
Masukan | Output yang mungkin ------------- + ----------------------------- [1,2,3] | 2 ± 0,5 ± 0,5 [-7, -3,1,21] | (1 ± 2) x (3 ± 4)
Ide diambil dari pertanyaan di Turnamen Towns, Musim Gugur 2015 .