การใช้สัญลักษณ์ทางคณิตศาสตร์ที่คุ้นเคยของเรา: +, x, วงเล็บ, และจำนวนตรรกยะใด ๆ ทำให้ง่ายต่อการสร้างนิพจน์ที่ประเมินค่าไปยังหมายเลขที่ต้องการ ตัวอย่างเช่น1+(2x3)=7
, (1+2)+(3x6.5)=22.5
และอื่น ๆ น่าเบื่อพอสมควร
±
ในความท้าทายนี้เราจะใช้ผู้ประกอบการใหม่: การใช้±
นิพจน์หมายความว่าคุณจำเป็นต้องประเมินนิพจน์โดยแทนที่±
ของด้วย+
หรือด้วย-
วิธีที่เป็นไปได้ทั้งหมดและส่งคืนชุดของค่าที่เป็นไปได้ทั้งหมด ตัวอย่างเช่น:
1±2±3 = {-4,0,2,6}
เพราะ1±2±3
สามารถใด ๆ ของ1+2+3
,1+2-3
,1-2+3
และ1-2-3
และค่านิยมของพวกเขา6,0,2,-4
ตามลำดับ(±2)x(2±3) = {-10,-2,2,10}
ด้วยเหตุผลที่คล้ายกัน
ตอนนี้มันจะเปิดออกให้ชุดของตัวเลขจริงที่แตกต่างใด ๆ ก็เป็นไปได้ที่จะสร้างการแสดงออกด้วย+
, x
, (
, )
, ±
และตัวเลขจริงที่ประเมินชุดที่กำหนด
งาน
งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นในภาษาที่คุณเลือกที่จะใช้ลำดับ (รายชื่อ / อาร์เรย์ / รูปแบบที่สะดวกใด ๆ ) ของจำนวนเต็มและผลการแสดงออก (เป็นสตริง) ประกอบด้วย+
, x
, (
, )
, ±
และตัวเลขเหตุผลที่ประเมินถึงชุดของตัวเลขที่กำหนด
- โปรดทราบว่าตัวละครที่แน่นอน
±
ไม่สำคัญ คุณสามารถใช้ตัวละครอื่นที่คุณต้องการตราบใดที่มันสามารถแยกแยะได้จากตัวละครอื่นที่คุณกำลังใช้ แต่คุณต้องพูดถึงตัวละครที่คุณใช้ในการส่งของคุณ - อินพุตได้รับอนุญาตให้ประกอบด้วยการประมาณทศนิยม (ขึ้นอยู่กับความถูกต้องตามสมควร) ของจำนวนตรรกยะที่ใช้
- สามารถนำเข้าและส่งออกได้หลายวิธี
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- คุณสามารถสมมติว่าจำนวนเต็มที่ระบุจะแตกต่างกันและจะถูกจัดเรียงตามลำดับที่เพิ่มขึ้น
- ผลลัพธ์อาจมีช่องว่างและบรรทัดใหม่
เกณฑ์การชนะ
นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
ตัวอย่าง
อินพุต | ผลลัพธ์ที่เป็นไปได้ ------------- + ----------------------------- [1,2,3] | 2 ± 0.5 ± 0.5 [-7, -3,1,21] | (1 ± 2) x (3 ± 4)
ความคิดที่นำมาจากคำถามในการแข่งขันของเมือง, ฤดูใบไม้ร่วง 2015