สร้างเครื่องคิดเลข Gematria แบบสองทิศทางสำหรับลำดับของอักขระ Unicode ที่กำหนดเป็นตัวอักษร
Gematri อะไร?
Gematriaเป็นระบบการกำหนดค่าตัวเลขให้กับสัญลักษณ์ที่พัฒนาโดยชาวกรีกโบราณและเป็นลูกบุญธรรมของชาวยิวโบราณ มันเป็นแบบ ASCII หรือ Unicode มันเป็นแบบไม่เชิงเส้น ... ดูตารางต่อไปนี้ (ตารางเต็มมีอยู่ในลิงค์ด้านบน):
Index Letter Letter name Value
--------------------------
0 א "Alef" 1
1 ב "Bet" 2
...
8 ט "Tet" 9
9 י "Yud" 10
10 כ "Kaf" 20
...
17 צ "Tsady" 90
18 ' "Kuf" 100
19 ר "Resh" 200
...
ชื่อของตัวอักษรไม่สำคัญเฉพาะดัชนีของพวกเขาใน "Array" ของตัวอักษรและค่าตัวเลขที่เกี่ยวข้อง ตัวอักษรฮิบรูมีเพียง 22 ตัวอักษร (ไม่รวมตัวอักษร "สุดท้าย") ดังนั้นค่าสูงสุดที่มีคือ 400
ถ้าเรายืมระบบนี้เป็นตัวอักษรภาษาอังกฤษ (AZ) เราจะได้ A = 1, B = 2 ... L = 30 ... U = 300 ... Z = 800
สองสิ่งที่เราต้องรู้
หนึ่งในคุณสมบัติที่สำคัญที่สุดในระบบนี้คือการคำนวณ "ค่า Gematria" ของคำโดยรวมค่าของตัวอักษร (บางคนบอกว่ามีการเชื่อมต่อลึกลับระหว่างคำหรือวลี (เมื่อค่าของพื้นที่เป็นศูนย์) - ที่ใช้ร่วมกันมูลค่า Gematria เดียวกัน)
จำนวนเต็มที่ไม่ใช่ลบใด ๆ สามารถแสดงเป็นสัญลักษณ์ได้ ตัวอย่างเช่น (และอยู่กับตัวอักษรภาษาอังกฤษก่อน) ค่า 32 คือ LB (L = 30 + B = 2) ค่า 1024 คือ ZTKD (800 + 200 + 20 + 4 โปรดทราบว่า ZSSKD ยังเป็น 1024 แต่นั่นไม่ใช่ตัวแทนทางกฎหมายเนื่องจากสามารถกระชับได้)
ความท้าทาย
เขียนโปรแกรม / ฟังก์ชั่น / ตัวอย่างโค้ดในภาษาที่คุณเลือกซึ่งตั้งค่าด้วยตัวอักษรเป็นครั้งแรก (ดู API ด้านล่าง) จากนั้นยอมรับการโต้แย้ง อาร์กิวเมนต์นั้นอาจเป็นจำนวนเต็มหรือคำ / วลี ถ้ามันเป็นจำนวนเต็ม - โปรแกรมของคุณควรส่งออก / คืนค่าการเป็นตัวแทนในสัญลักษณ์ตัวอักษร - ตัวที่ถูกบีบอัดมากที่สุด (ดู (2) ด้านบน) หากเป็นคำหรือวลีโปรแกรมของคุณควรส่งออก / คืนค่า Gematria (โดยการสรุปค่าของสัญลักษณ์ไม่นับจำนวนช่องว่างให้ดู (1) ด้านบน)
API
โปรแกรม / ฟังก์ชั่นของคุณควรยอมรับ 3 ข้อโต้แย้ง คุณสามารถรับได้จาก STDIN หรือเป็นอาร์กิวเมนต์ของฟังก์ชันคุณยังสามารถสันนิษฐานได้ว่ามันเป็นตัวแปรที่กำหนดค่าเริ่มต้นโดยทางโปรแกรมก่อนการเรียกใช้ฟังก์ชันของคุณ
- อาร์กิวเมนต์แรก - อักขระตัวแรก (เป็น Unicode) ของตัวอักษร
- อาร์กิวเมนต์ที่สอง - อักขระตัวสุดท้าย (เป็น Unicode) ของตัวอักษร
- อาร์กิวเมนต์ที่สาม - จำนวนเต็มที่จะแสดงเป็นสัญลักษณ์หรือวลีที่สร้างขึ้นโดยตัวอักษรที่กำหนด
มูลค่าส่งออก / คืน: ขึ้นอยู่กับอาร์กิวเมนต์ที่สามตามที่อธิบายไว้ข้างต้น
สมมติฐาน
- ข้อโต้แย้งสองข้อแรกจะมีความยาวอักขระหนึ่งตัวเสมอและตัวที่สองจะเป็นตัวขูดมากกว่าตัวแรกเสมอ
- ลำดับ (ก่อนถึงสุดท้ายรวมทุกอย่าง) จะไม่รวมค่าใด ๆ 30-39 (ซึ่งแสดงถึงตัวเลข 0-9) มิฉะนั้นจะทำให้อาร์กิวเมนต์ที่สามไม่ชัดเจน แก้ไข:มันจะไม่มีช่องว่างเช่นกันเนื่องจากในช่องว่างวลีจะนับเป็นศูนย์
- อาร์กิวเมนต์ที่สามในกรณีที่เป็นวลีอาจมีช่องว่างและตัวอักษรของตัวอักษรที่กำหนด สตริงว่างไม่ใช่อินพุตที่ถูกต้อง (คุณสามารถถือว่าเป็นสตริงที่ว่างเปล่า) ในกรณีที่เป็นจำนวนเต็มคุณสามารถสมมติว่าเป็นจำนวนเต็มบวก
ตัวอย่าง
Input Output
A Z CODE GOLF 175
a s 512 sssssjb
A B 7 BBBA
≐ ⊐ ≤≫ ≥ 1700
เกณฑ์การให้คะแนน
Score = upvotes - length/100.0
รหัสของคุณควรสั้น แต่สำคัญกว่านั้นเป็นที่นิยม คะแนนลบสามารถเล่นได้ ผู้ชนะจะได้คำตอบด้วยคะแนนสูงสุดในหนึ่งสัปดาห์จากนี้ 2014-11-29 19:20:00 UTC