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
ดำเนินการหรือไม่