ฉันกำหนดผู้ประกอบการต่อไปนี้:
Manhattan Addition a + M b สำหรับตัวเลขหลักเดียวเป็นผลมาจากการต่อ b เข้ากับ a ดังนั้น + M b = 10a + b ดังนั้นตัวดำเนินการทั่วไป + Mจึงถูกกำหนดดังนี้:
a + M b = 10a + b
การลบแมนฮัตตัน a - M b สำหรับตัวเลขหลักเดียวเป็นผลมาจากการลบ b สุดท้ายออกจาก ดังนั้นโอเปอเรเตอร์ - Mถูกกำหนดไว้ใน pseudocode:
a - M b = a ลบล่าสุด
การคูณแมนฮัตตัน a × M b เป็นผลลัพธ์ของการแทนที่อินสแตนซ์ทั้งหมดของ b ใน a ด้วย b อินสแตนซ์ของ b Ergo, × Mถูกกำหนดใน pseudocode เป็น:
a × M b = a -> s / b / <b สำเนา b> / g
แผนกแมนฮัตตัน a ÷ M b ถูกกำหนดในแง่ของ× M :
1 ÷ M b = อักขระตัวแรกของ b a ÷ M b = a × M (1 ÷ M b)
เมื่อนึกถึงทั้งหมดนี้ให้สร้างล่ามที่จะประเมินนิพจน์มัดที่ใช้ตัวดำเนินการต่อไปนี้ (เช่นa + b
ไม่ใช่a b +
หรือ+ a b
)
+ Addition
- Subtraction
/ Division
* Multiplication
*M Manhattan Multiplication
/M Manhattan Division
+M Manhattan Addition
-M Manhattan Subtraction
ผู้ประกอบการแมนฮัตตันแต่ละรายมีลำดับความสำคัญสูงกว่าคู่ปกติ
กรณีทดสอบ:
> 5 +M 10 + 3
63 // 5*10 + 10 + 3 => 60 + 3
> 10 *M 2
10 // no 2s in 10
> 10 *M 1
10 // one 1 in 10 replaced once
> 23 *M 3
2333 // 23 has one 3, which is replaced with three 3s
> 23 *M 2
223 // 23 has one 2, which is replaced with two 2s
> 232 *M 2
22322 // 232 has two 2s, which are replaced with two 2s
> 232 *M 23
23...(23 times)...232 // ...
> 123 *M 2 * 3
3669 // 1223 * 3 => 3669
> 5 + 3 +M 2
37 // 5 + (3 +M 2) => 5 + 32 => 37
> 150 /M 3
150 // 150 ÷M 3 => 150 ×M 3 => 150
> 150 /M 53
1555550 // 150 ÷M 53 => 150 ×M 5 => 1555550
> 50 -M 0
5
> 500 -M 0
50
> 5234 -M 5
234
> 12 +M 633 *M 3
6333453 // = 12 +M 6333333 = 120 + 6333333 = 6333453
นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ
ลีดเดอร์
นี่เป็นตัวอย่างข้อมูลเพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
# Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวได้ ตัวอย่างเช่น
# Ruby, <s>104</s> <s>101</s> 96 bytes
หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของสองไฟล์หรือคุณต้องการแสดงรายการการลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:
# Perl, 43 + 2 (-p flag) = 45 bytes
นอกจากนี้คุณยังสามารถตั้งชื่อภาษาให้เป็นลิงค์ซึ่งจะปรากฏในตัวอย่างกระดานแต้มนำ:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
232 ×M 23
เท่ากัน23232
? ไม่ควรเท่ากับ 23 สำเนา23
ตามด้วย2
?
×
และ÷
แทน ASCII*
และ/
?