Buat kalkulator Gematria dua arah, untuk setiap urutan karakter Unicode yang diberikan sebagai alfabet.
Gematri-Apa?
Gematria adalah sistem yang menetapkan nilai numerik pada simbol, yang dikembangkan oleh orang Yunani kuno dan diadopsi oleh orang Yahudi kuno. Ini dengan cara seperti ASCII atau Unicode, itu hanya non-linear ... Lihat tabel berikut (tabel lengkap tersedia di tautan di atas):
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
...
Nama-nama huruf tidak penting, hanya indeks mereka di "Array" dari alfabet dan nilai numerik masing-masing. Alfabet Ibrani hanya memiliki 22 huruf (tidak termasuk huruf "akhir"), sehingga nilai maksimum yang tersedia adalah 400.
Jika kita meminjam sistem ini ke alfabet Inggris (AZ) kita akan berakhir dengan A = 1, B = 2 ... L = 30 ... U = 300 ... Z = 800.
Dua hal yang perlu kita ketahui.
Salah satu fitur terpenting dalam sistem ini adalah menghitung "Nilai Gematria" suatu kata , dengan merangkum nilai hurufnya. (Beberapa mengatakan ada hubungan mistik antara kata, atau frasa (ketika nilai ruang adalah nol) - yang memiliki Nilai Gematria yang sama).
Setiap Integer non-negatif dapat direpresentasikan dalam simbol. Misalnya (dan mari kita tetap menggunakan alfabet bahasa Inggris untuk saat ini) nilai 32 adalah LB (L = 30 + B = 2). Nilai 1024 adalah ZTKD (800 + 200 + 20 + 4. Perhatikan bahwa ZSSKD juga 1024, tetapi itu bukan representasi hukum, karena dapat dipadatkan).
Tantangan
Tulis program / fungsi / potongan kode dalam bahasa pilihan Anda, yang pertama-tama diatur dengan alfabet (lihat API di bawah) dan kemudian terima argumen. Argumen itu bisa berupa Integer, atau kata / frasa. Jika itu adalah Integer - program Anda harus menampilkan / mengembalikan representasinya dalam simbol alfabet - yang paling padat (lihat (2) di atas). Jika itu kata atau frasa, program Anda harus menampilkan / mengembalikan Nilai Gematria (dengan merangkum nilai simbol, tidak menghitung spasi putih, lihat (1) di atas).
API
Program / fungsi Anda harus menerima 3 argumen. Anda bisa mendapatkannya dari STDIN, atau sebagai argumen fungsi, Anda bahkan dapat menganggap mereka adalah variabel yang diinisialisasi secara terprogram sebelum pemanggilan fungsi Anda.
- Argumen pertama - karakter pertama (dalam Unicode) dari alfabet.
- Argumen kedua - karakter terakhir (dalam Unicode) dari alfabet.
- Argumen ketiga - Integer, untuk diwakili dalam simbol, ATAU frase yang dibuat oleh alfabet yang diberikan.
Nilai Output / Pengembalian: Tergantung pada argumen ketiga, seperti yang dijelaskan di atas.
Asumsi
- Dua argumen pertama akan selalu panjang masing-masing satu karakter, dan yang kedua akan selalu lebih besar dari yang pertama.
- Urutan (pertama sampai terakhir, inklusif) tidak akan pernah menyertakan nilai 30-39 (yang mewakili angka 0-9), jika tidak maka akan membuat argumen ketiga menjadi ambigu. EDIT: Ini tidak akan mengandung spasi juga, karena dalam frasa spasi dihitung sebagai nol.
- Argumen ketiga, jika itu adalah frasa, hanya boleh berisi spasi dan huruf dari alfabet yang diberikan. String kosong bukan input yang valid (Anda dapat menganggap itu tidak kosong). Jika itu adalah Integer, Anda dapat menganggap itu adalah Integer positif.
Contohnya
Input Output
A Z CODE GOLF 175
a s 512 sssssjb
A B 7 BBBA
≐ ⊐ ≤≫ ≥ 1700
Mencetak gol
Score = upvotes - length/100.0
Kode Anda harus pendek, tetapi yang lebih penting populer. Skor negatif juga dapat dimainkan. Pemenang akan menjadi jawaban dengan skor tertinggi dalam seminggu dari sekarang, 2014-11-29 19:20:00 UTC.