Mathemania รายละเอียด:
ชิ้นส่วนของรหัส Mathemania 2ทุกคนเริ่มออกด้วยหมายเลข จาก2, คุณสามารถทำการดำเนินการต่อไปนี้:
e: การยกกำลัง ค่าเริ่มต้นของคำสั่งนี้กำลังสองจำนวนf: แฟคทอเรียล ค่าเริ่มต้นของคำสั่งนี้ใช้แฟคทอเรียลเดียวกับหมายเลข (using f on 2 = 2! = 2)r: รูต ค่าเริ่มต้นของคำสั่งนี้คือการรูทแบบตัวเลขc: ฟังก์ชั่นเพดานlฟังก์ชั่นชั้น
เพื่อสร้างตัวเลขใน Mathemania 2คุณต้องร่วมกันสตริงคำสั่งเหล่านี้ซึ่งจะดำเนินการจากซ้ายไปขวาบนจำนวน
ตัวอย่าง:
ef = (2^2)! = 4! = 24
rl = floor(sqrt(2)) = floor(1.4...) = 1
er = sqrt(2^2) = sqrt(4) = 2
efrrc = ceil(sqrt(sqrt((2^2)!)))
      = ceil(sqrt(sqrt(24)))
      = ceil(sqrt(4.89...))
      = ceil(2.21...)
      = 3
e, fและrคำสั่งที่สามารถเปลี่ยนแปลงได้โดยคำสั่ง Mathemania พิเศษ (ซึ่งเริ่มต้นด้วยการ2เป็นจำนวนของ "ฐาน") เพื่อสร้าง exponentiations ที่แตกต่างกัน factorials และรากโดยการวางวงเล็บหลังจากที่ฟังก์ชั่นที่มีการเปลี่ยนแปลงและการวางคำสั่ง Mathemania ภายในนั้น
ตัวอย่างเช่นหากต้องการลูกบาศก์ตัวเลขแทนการยกกำลังสองคุณสามารถใส่คำสั่ง3หลังจากeนั้น:
e(efrrc) -> cube a number, "efrrc" = 3
หมายเหตุ: สำหรับวัตถุประสงค์ของเราคำสั่งแฟกทอเรียล ( f) เริ่มต้นด้วย2แฟคทอเรียล ดังนั้นถ้าคุณทำเช่นf(efrrc)นั้นจะได้รับการประเมินเป็นแฟคทอเรียลสองเท่าไม่ใช่แฟคทอเรียล
สำหรับn-factorials (เช่น double factorials = 2-factorial, triple factorial = 3-factorial ฯลฯ ) หมายเลขฐานจะถูกคูณด้วยจำนวนที่nน้อยกว่านั้นและnน้อยกว่านั้นและจนกว่าจะถึงหมายเลขสุดท้ายจะไม่สามารถ ลบออกโดยnไม่กลายเป็น0หรือลบ
ตัวอย่างเช่น:
7!! = 7 * 5 * 3 * 1 = 105 (repeatedly subtract 2, 1 is the last term as
                           1 - 2 = -1, which is negative)
9!!! = 9 * 6 * 3 = 162 (repeatedly subtract 3, 3 is the last term as
                        3 - 3 = 0, which is 0)
สำหรับข้อมูลเพิ่มเติมโปรดดูที่นี่
คุณสามารถแทรกได้ทุกที่และมันจะได้รับการปฏิบัติโดย Mathemania เป็นฟังก์ชั่นเดียว:
e(efrrc)rc = ceil(sqrt(2^3))
           = ceil(2.82...)
           = 3
คุณยังได้รับอนุญาตให้ซ้อนสิ่งเหล่านี้ในกันและกัน:
e(e(e)) = e(4th power)
        = (2^4)th power
        = 16th power
สำหรับล่ามของรหัส Mathemania คลิกที่นี่ (ไชโย @ BradGilbertb2gills!)
งาน:
งานของคุณคือการสร้างโปรแกรมที่เมื่อได้รับเป็นจำนวนเต็มบวกnเป็น input สร้างโปรแกรม Mathemania nว่าเมื่อดำเนินการส่งกลับ
อย่างไรก็ตามโปรแกรม Mathemania ที่คุณสร้างจะต้องเป็นขนาดเล็ก (แข็งแรงเล่นกอล์ฟ) เป็นไปได้และคะแนนสุดท้ายของคุณจะถูกกำหนดโดยผลรวมของจำนวนไบต์ในการสร้างโปรแกรม Mathemania ของกลุ่มตัวอย่างซึ่งเป็นจำนวนเต็มที่จะ10,000 10,100คะแนนต่ำสุดชนะ
กฎและข้อกำหนด:
- โปรแกรมของคุณจะต้องส่งออกโปรแกรม Mathemania ที่ถูกต้องสำหรับจำนวนเต็มบวกใด ๆ แต่จะมีเพียงตัวเลขระหว่าง
10,000และ10,100จะถูกทดสอบ - คุณไม่ได้รับอนุญาตให้แสดงผลโปรแกรม Mathemania ที่ไม่ได้เป็นจำนวนเต็ม หากคุณทำเช่นนั้นโปรแกรมของคุณจะถูกตัดสิทธิ์
 - สำหรับคำสั่ง
e,fและrรหัส Mathemania ภายในฟังก์ชันเหล่านั้น (เช่นe(efrrc)ที่efrrcเป็นรหัสภายในฟังก์ชั่น)2จะต้องประเมินเป็นจำนวนเต็มบวกดังกล่าวข้างต้น หากโปรแกรมของคุณไม่ปฏิบัติตามกฎนี้ก็จะถูกตัดสิทธิ์เช่นกัน - โปรแกรมของคุณต้องส่งคืนโปรแกรม Mathemania สำหรับหนึ่งในจำนวนเต็ม 101 ทดสอบใน 30 นาทีในแล็ปท็อปที่ทันสมัย
 - โปรแกรมของคุณจะต้องส่งคืนโซลูชันเดียวกันสำหรับจำนวนเต็มใด ๆ ทุกครั้งที่เรียกใช้ ตัวอย่างเช่นเมื่อโปรแกรมได้รับอินพุต
5และเอาต์พุตefrcมันจะต้องเอาต์พุตที่ทุกครั้งที่อินพุต5ถูกกำหนด - คุณไม่สามารถเขียนโค้ดวิธีแก้ปัญหาสำหรับจำนวนเต็มบวกใด ๆ
 - เพื่อเพิ่มศักยภาพการเล่นกอล์ฟอย่างเต็มที่ในผลลัพธ์ของคุณโปรแกรมของคุณควรจะสามารถจัดการกับจำนวนเต็มขนาดใหญ่โดยพลการ มันไม่ใช่ข้อกำหนด แต่โชคดีถ้าภาษาของคุณไม่รองรับสิ่งนี้
 
นี่คือmetagolfดังนั้นคะแนนต่ำสุดจึงชนะ!
efตัวอย่างเช่นรหัสอนุญาตให้ "ข้าม" และเพียงแค่แสดงผลลัพธ์ก่อนefดำเนินการหรือไม่