ข้อความรส
สต็อก esolang Underloadมีความสัมพันธ์ที่น่าสนใจกับการเขียนโปรแกรมการทำงาน หนึ่งในนั้นคือการรักษาประเภทข้อมูลที่เป็นตัวเลข - เช่นแคลคูลัสแลมบ์ดาคุณเป็นตัวแทนของจำนวนธรรมชาติ N โดยฟังก์ชั่นที่ดำเนินการแอ็คชั่น N ครั้ง
เพื่อให้ง่ายขึ้นเราจะพิจารณาเฉพาะชุดย่อยของคำสั่ง Underload เท่านั้น:
- :- คำสั่งนี้ทำซ้ำรายการบนสุดในสแต็ก
- *- คำสั่งนี้ต่อสองไอเท็มบนสุดของสแต็กเข้ากับไอเท็มเดี่ยว
เรากำหนดUnderload numeral Nเป็นสตริง:และ*เมื่อดำเนินการใช้รายการบนสุดในสแต็กและสร้างสำเนา N ของรายการนั้นต่อกัน ตัวอย่างบางส่วน:
- ไม่มีตัวเลข Underload 0, -1, 1/2, π
- สตริงว่างคือ Underload ตัวเลข 1 เนื่องจากปล่อยให้สแต็กไม่ถูกแตะต้อง
- :*เป็น underload เลข 2 เพราะมันซ้ำรายการด้านบนแล้วเชื่อมทั้งสองเล่มด้วยกันเป็นรายการเดียว:- (A):*= =- (A)(A)*- (AA)
- ::**เป็น underload เลขที่- (A)::**3:- (A)(A):**=- (A)(AA)*=- (AAA)=
- :::***เป็น Underload ตัวเลข 4
- :*:*นอกจากนี้ยังเป็น underload เลขที่- (A):*:*4:- (AA):*=- (AA)(AA)*=- (AAAA)=
โดยทั่วไปแล้วคุณจะพบว่าหากMและNเป็น Underload numerals M และ N ก็:N*จะเป็นตัวเลข N + 1 และMNเป็นตัวเลข M × N
ความท้าทาย
งานของคุณคือการเขียนโปรแกรมที่สั้นที่สุด (รับอินพุตบน STDIN) หรือฟังก์ชั่น (รับอินพุตผ่านอาร์กิวเมนต์) ซึ่งสร้างการแสดงที่สั้นที่สุดของตัวเลข Underload สำหรับอินพุตเป็นสตริง กล่าวคือถ้าอินพุตเป็นจำนวนธรรมชาติบวก N> 1 คุณต้องสร้างตัวเลข Underload N ที่มีความยาวเป็นอักขระน้อยกว่าหรือเท่ากับของตัวเลขอื่น ๆ Underload N ทั้งหมด
ตัวอย่างอินพุตและเอาต์พุต: ("อินพุต - OUTPUT.")
- 1 - .
- 2 :*-
- 5 - ::*:**(2 × 2 + 1)
- 7 - ::*::***(2 × 3 + 1) หรือ:::**:**(3 × 2 + 1)
- 33 - ::*:*:*:*:**(2 × 2 × 2 × 2 × 2 + 1)
- 49 - ::*:*:*:*::***(16 × 3 + 1, ความยาว 14) แต่ไม่::*::***::*::***(7 × 7, ความยาว 16)
หากอินพุตไม่ใช่จำนวนบวกคุณมีอิสระที่จะส่งคืนข้อผิดพลาดสร้างพฤติกรรมที่ไม่ได้กำหนดหรือแม้แต่ล้มเหลวในการยกเลิก คำอธิบายเกี่ยวกับวิธีการของการส่งคำตอบในการค้นหาคำตอบนั้น
ข้อ จำกัด ช่องโหว่มาตรฐานใช้: ไม่มีการป้อนข้อมูลเพิ่มเติมไม่มีคำขอเว็บค่าส่งออก / คืนจะต้องเป็นคำตอบที่แน่นอนและไม่กระแสสุ่มที่ไม่มีที่สิ้นสุดของ:และ*อื่น ๆ
xคือ2*A117498(x)ที่A117498ให้การผสมผสานที่ดีที่สุดของวิธีการแบบไบนารีและปัจจัยสำหรับการค้นหาสายโซ่นอกจากนี้