Bilinen matematiksel sembollerimizi kullanarak: +, x, parantez ve herhangi bir rasyonel sayı, istenen sayıları değerlendiren ifadeler oluşturmak kolaydır. Örneğin: 1+(2x3)=7, (1+2)+(3x6.5)=22.5ve bu kadar. Yeterince sıkıcı.
Bu meydan okuma, biz yeni operatörünü kullanacağız: ±. ±Bir ifadede kullanılması , ifadesini değiştirerek ifadeyi değerlendirmeniz gerektiği anlamına gelir ±.+ veya -tüm yollarla tüm olası değer kümesini döndürmeniz . Örneğin:
1±2±3 = {-4,0,2,6}Çünkü1±2±3herhangi biri olabilir1+2+3,1+2-3,1-2+3ve1-2-3onların değerlerini ve vardır6,0,2,-4sırasıyla.(±2)x(2±3) = {-10,-2,2,10}benzer nedenlerden dolayı.
Olarak çıkıyor Şimdi, ayrı gerçek sayıların herhangi seti önüne alındığında, bu bir ifade oluşturmak mümkündür +, x, (,) , ±, ve gerçek sayılar göz önüne alındığında kümesine değerlendirir.
Görev
Göreviniz (liste / dizi / uygun herhangi bir biçimi) bir diziyi alır seçtiğiniz bir dilde bir program veya fonksiyon yazmaktır tamsayılar oluşan (bir karakter dizisi) bir ifade ve çıkışlar +, x, (, ), ±, ve rasyonel sayılar verilen sayılar kümesini değerlendirir.
- Tam karakter olduğunu unutmayın
±önemli olmadığını ; Kullanmakta olduğunuz diğer karakterlerden ayırt edilebilir olduğu sürece istediğiniz herhangi bir karakteri kullanabilirsiniz. Ancak gönderiminizde hangi karakteri kullandığınızı belirtmelisiniz. - Girdi, kullanılan rasyonel sayıların ondalık değerlerinden (makul hassasiyete kadar) oluşmasına izin verilir.
- Giriş ve çıkış, standart yollardan biriyle alınabilir.
- Standart boşluklar yasaktır.
- Verilen tam sayıların farklı olacağını ve artan sırayla sağlandığını varsayabilirsiniz.
- Çıktı boşluk ve yeni satırlar içerebilir.
Kazanan Kriter
Bu kod golf , bayt cinsinden en kısa kod kazanır.
Örnekler
Giriş | Olası çıkış ------------- + ----------------------------- [1,2,3] | 2 ± 0.5 ± 0.5 [-7, -3,1,21] | (1 ± 2) x (3 ± 4)
Şehirlerin Turnuvası'ndaki bir sorudan alınan fikir , 2015 Sonbaharında .