Tạo một máy tính Gematria hai chiều, cho bất kỳ chuỗi ký tự Unicode đã cho nào dưới dạng bảng chữ cái.
Gematri-Cái gì?
Gematria là một hệ thống gán các giá trị số cho các biểu tượng, được phát triển bởi người Hy Lạp cổ đại và được người Do Thái cổ đại chấp nhận. Theo cách tương tự như ASCII hoặc Unicode, nó chỉ là phi tuyến tính ... Xem bảng sau (bảng đầy đủ có sẵn trong liên kết ở trên):
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
...
Tên của các chữ cái không quan trọng, chỉ có chỉ mục của chúng trong "Mảng" của bảng chữ cái và giá trị số tương ứng. Bảng chữ cái tiếng Do Thái chỉ có 22 chữ cái (không bao gồm chữ cái "cuối cùng"), vì vậy giá trị tối đa có sẵn là 400.
Nếu chúng tôi mượn hệ thống này vào bảng chữ cái tiếng Anh (AZ), chúng tôi sẽ kết thúc với A = 1, B = 2 ... L = 30 ... U = 300 ... Z = 800.
Hai điều chúng ta cần biết.
Một trong những tính năng quan trọng nhất trong hệ thống này là tính toán "Giá trị Gematria" của một từ , bằng cách tóm tắt các giá trị chữ cái của nó. (Một số người nói rằng có một mối liên hệ bí ẩn giữa các từ hoặc cụm từ (khi giá trị của không gian bằng 0) - có chung Giá trị Gematria).
Bất kỳ số nguyên không âm có thể được biểu diễn trong các ký hiệu. Ví dụ: và bây giờ hãy ở lại với bảng chữ cái tiếng Anh), giá trị của 32 là LB (L = 30 + B = 2). Giá trị của 1024 là ZTKD (800 + 200 + 20 + 4. Lưu ý rằng ZSSKD cũng là 1024, nhưng đó không phải là đại diện hợp pháp, vì nó có thể được nén).
Các thách thức
Viết chương trình / chức năng / đoạn mã theo ngôn ngữ bạn chọn, lần đầu tiên được thiết lập với một bảng chữ cái (xem API bên dưới) và sau đó chấp nhận một đối số. Đối số đó có thể là một số nguyên hoặc một từ / cụm từ. Nếu đó là một số nguyên - chương trình của bạn sẽ xuất / trả lại biểu diễn của nó trong các ký hiệu bảng chữ cái - biểu tượng được nén nhất (xem (2) ở trên). Nếu đó là một từ hoặc cụm từ, chương trình của bạn sẽ xuất / trả về Giá trị Gematria (bằng cách tóm tắt các giá trị của biểu tượng, không tính khoảng trắng, xem (1) ở trên).
API
Chương trình / chức năng của bạn nên chấp nhận 3 đối số. Bạn có thể lấy chúng từ STDIN hoặc làm đối số hàm, thậm chí bạn có thể giả sử chúng là các biến được khởi tạo theo chương trình trước khi gọi hàm của bạn.
- Đối số đầu tiên - ký tự đầu tiên (bằng Unicode) của bảng chữ cái.
- Đối số thứ hai - ký tự cuối cùng (bằng Unicode) của bảng chữ cái.
- Đối số thứ ba - Một số nguyên, được biểu thị bằng các ký hiệu, HOẶC một cụm từ được tạo bởi bảng chữ cái đã cho.
Giá trị đầu ra / trả về: Tùy thuộc vào đối số thứ ba, như đã giải thích ở trên.
Giả định
- Hai đối số đầu tiên sẽ luôn là một ký tự dài, và đối số thứ hai sẽ luôn luôn hơn so với đối số thứ nhất.
- Chuỗi (đầu tiên cho đến cuối cùng, bao gồm) sẽ không bao giờ bao gồm bất kỳ giá trị 30-39 nào (đại diện cho các chữ số 0-9), nếu không, nó sẽ làm cho đối số thứ ba trở nên mơ hồ. EDIT: Nó cũng sẽ không chứa không gian, vì trong cụm từ, không gian được tính là số không.
- Đối số thứ ba, trong trường hợp đó là cụm từ, chỉ có thể chứa khoảng trắng và chữ cái của bảng chữ cái đã cho. Chuỗi rỗng không phải là đầu vào hợp lệ (bạn có thể cho rằng nó không trống). Trong trường hợp đó là một Số nguyên, bạn có thể cho rằng đó là một Số nguyên dương.
Ví dụ
Input Output
A Z CODE GOLF 175
a s 512 sssssjb
A B 7 BBBA
≐ ⊐ ≤≫ ≥ 1700
Chấm điểm
Score = upvotes - length/100.0
Mã của bạn nên ngắn, nhưng quan trọng hơn là phổ biến. Điểm số âm cũng có thể chơi cùng. Người chiến thắng sẽ là câu trả lời với số điểm cao nhất trong một tuần kể từ bây giờ, 2014-11-29 19:20:00 UTC.