पार-वर्णिक वर्ण


17

पृष्ठभूमि

मैंने विकिपीडिया पर यह बहुत दिलचस्प वेन आरेख देखा: https://simple.wikipedia.org/wiki/Alphabet#/media/File:Venn_diagram_gr_la_ru.svg

यह विभिन्न वर्णमाला में अक्षरों (भौतिक आकृतियों) को दिखाता है जो रूसी, ग्रीक और लैटिन वर्णमाला के बीच आम हैं।

चुनौती

दिखाए गए तीन लिपियों में से किसी से वर्णों के इनपुट स्ट्रिंग को देखते हुए (जैसे कि कैपिटल ग्रीक, सिरिलिक या लैटिन अक्षर), प्रत्येक भाषा से मेल खाने वाले स्ट्रिंग का एक प्रतिशत आउटपुट करते हैं। बार-बार पत्र गिनना हर बार।

उदाहरण के लिए, FFLURSसभी लैटिन-केवल वर्ण हैं, इसलिए आउटपुट है FFLURS is 100% Latin, 0% Cyrillic and 0% Greek

इसके विपरीत, TOX BEAM PHPतीनों भाषाओं में दिखाई देने वाले वर्णों से पूरी तरह बनता है, इसलिए आउटपुट है TOX BEAM PHP is 100% Cyrillic, 100% Greek and 100% Latin

तालिकाओं को देखो

वेन आरेख नीचे दिए गए अक्षरों का स्रोत है:

लैटिन केवल:

J,G,S,D,Q,U,V,W,F,L,R

लैटिन और सिरिलिक:

C, С

लैटिन और ग्रीक:

I,Ι, N,Ν, Z,Ζ

ग्रीक और सिरिलिक

Φ,Ф, Π,П, Γ,Г, Λ,Л

सभी तीन:

A,B,E,O,M,K,T,X,Y,H,P (and equivalents in greek and cyrillic), (space)

बाकी ... केवल ग्रीक या सिरिलिक हैं।

महत्वपूर्ण लेख

यूनिकोड परिभाषित करता है (उदाहरण के लिए) "ए" में (कम से कम) तीन अलग-अलग तरीके - प्रत्येक भाषा के लिए। जो भी इनपुट में प्रयोग किया जाता है (& # 0391, और # 0410 या & # 0041), प्रोग्राम को इसे सभी तीन भाषाओं के मेल के रूप में समझना चाहिए। तो, A(लैटिन), Α(ग्रीक अल्फा) और А(सिरिलिक) सभी को 100% Cyrillic, 100% Greek and 100% Latinजवाब के रूप में देना चाहिए ।

इनपुट प्रारूप

कोई भी स्ट्रिंग विशेष रूप А-Яसे Α-Ω, A-Zऔर (स्थान)। इन वर्णों को स्ट्रिंग के भीतर कई बार दोहराया जा सकता है।

आउटपुट स्वरूप

आउटपुट किसी भी प्रारूप में हो सकता है, बशर्ते फ़ंक्शन लगातार परिणाम उत्पन्न करता है। मैं अपने उदाहरणों में दिखाए गए प्रारूप में आउटपुट देखना चाहूंगा ( FFLURS is 100% Latin, 0% Cyrillic and 0% Greek), लेकिन चुनौती को किसी के लिए भी अधिक खुला बनाने के लिए मैं प्रतिशत / अनुपात के सरणियों / तारों को स्वीकार करने में प्रसन्न हूं:

[100,0,0],

100 0 0

[1.0 0.0 0.0]

जब तक यह हमेशा स्पष्ट है कि कौन सी संख्या किस भाषा की है - इसलिए आउटपुट सुसंगत होना चाहिए।

कुछ और परीक्षण मामले

CINEMATICS -> CINEMATICS is 100% Latin, 70% Greek and 60% Cyrillic

ЩJЩFЩLΞRΞVΞW -> ЩJЩFЩLΞRΞVΞW is 50% Latin, 25% Cyrillic and 25% Greek

-> is 100% Cyrillic, 100% Greek and 100% Latin

ΨΩTESTINGЯЮ -> ΨΩTESTINGЯЮ is 63.6% Greek, 63.6% Latin and 45.5% Cyrillic

जीत का मानदंड

सामान्य नियम और बहिष्करण लागू होते हैं; सबसे छोटा जवाब (बाइट्स) जीतता है।

(सैंडबॉक्स लिंक: https://codegolf.meta.stackexchange.com/a/14984/62289 )

संदेह से बचने के लिए, इनपुट में मान्य केवल यूनिकोड वर्ण हैं:

  • 0020, 0041-005A (लैटिन वर्णमाला)
  • 0020, 0391-03A9 (ग्रीक वर्णमाला)
  • 0020, 0401, 0410-042F (सिरिलिक वर्णमाला)

लेकिन जैसा कि लुकअप टेबल में दिखाया गया है, वर्ण क्रॉस-अल्फाबेटिक हो सकते हैं।

टिप्पणियों से जोनाथन एलन की तालिका जोड़ना:

                                                 Latin  Greek  Cyrillic
U+0020     Space                                 1      1      1
U+0041  A  Latin capital letter A                1      1      1
U+0042  B  Latin capital letter B                1      1      1
U+0043  C  Latin capital letter C                1      0      1
U+0044  D  Latin capital letter D                1      0      0
U+0045  E  Latin capital letter E                1      1      1
U+0046  F  Latin capital letter F                1      0      0
U+0047  G  Latin capital letter G                1      0      0
U+0048  H  Latin capital letter H                1      1      1
U+0049  I  Latin capital letter I                1      1      0
U+004A  J  Latin capital letter J                1      0      0
U+004B  K  Latin capital letter K                1      1      1
U+004C  L  Latin capital letter L                1      0      0
U+004D  M  Latin capital letter M                1      1      1
U+004E  N  Latin capital letter N                1      1      0
U+004F  O  Latin capital letter O                1      1      1
U+0050  P  Latin capital letter P                1      1      1
U+0051  Q  Latin capital letter Q                1      0      0
U+0052  R  Latin capital letter R                1      0      0
U+0053  S  Latin capital letter S                1      0      0
U+0054  T  Latin capital letter T                1      1      1
U+0055  U  Latin capital letter U                1      0      0
U+0056  V  Latin capital letter V                1      0      0
U+0057  W  Latin capital letter W                1      0      0
U+0058  X  Latin capital letter X                1      1      1
U+0059  Y  Latin capital letter Y                1      1      1
U+005A  Z  Latin capital letter Z                1      1      0

U+0391  Α  Greek capital letter Alpha            1      1      1
U+0392  Β  Greek capital letter Beta             1      1      1
U+0393  Γ  Greek capital letter Gamma            0      1      1
U+0394  Δ  Greek capital letter Delta            0      1      0
U+0395  Ε  Greek capital letter Epsilon          1      1      1
U+0396  Ζ  Greek capital letter Zeta             1      1      0
U+0397  Η  Greek capital letter Eta              1      1      1
U+0398  Θ  Greek capital letter Theta            0      1      0
U+0399  Ι  Greek capital letter Iota             1      1      0
U+039A  Κ  Greek capital letter Kappa            1      1      1
U+039B  Λ  Greek capital letter Lambda           0      1      1
U+039C  Μ  Greek capital letter Mu               1      1      1
U+039D  Ν  Greek capital letter Nu               1      1      0
U+039E  Ξ  Greek capital letter Xi               0      1      0
U+039F  Ο  Greek capital letter Omicron          1      1      1
U+03A0  Π  Greek capital letter Pi               0      1      1
U+03A1  Ρ  Greek capital letter Rho              1      1      1

U+03A3  Σ  Greek capital letter Sigma            0      1      0
U+03A4  Τ  Greek capital letter Tau              1      1      1
U+03A5  Υ  Greek capital letter Upsilon          1      1      1
U+03A6  Φ  Greek capital letter Phi              0      1      1
U+03A7  Χ  Greek capital letter Chi              1      1      1
U+03A8  Ψ  Greek capital letter Psi              0      1      0
U+03A9  Ω  Greek capital letter Omega            0      1      0

U+0401  Ё  Cyrillic capital letter Io            0      0      1

U+0410  А  Cyrillic capital letter A             1      1      1
U+0411  Б  Cyrillic capital letter Be            0      0      1
U+0412  В  Cyrillic capital letter Ve            1      1      1
U+0413  Г  Cyrillic capital letter Ghe           0      1      1
U+0414  Д  Cyrillic capital letter De            0      0      1
U+0415  Е  Cyrillic capital letter Ie            1      1      1
U+0416  Ж  Cyrillic capital letter Zhe           0      0      1
U+0417  З  Cyrillic capital letter Ze            0      0      1
U+0418  И  Cyrillic capital letter I             0      0      1
U+0419  Й  Cyrillic capital letter Short I       0      0      1
U+041A  К  Cyrillic capital letter Ka            1      1      1
U+041B  Л  Cyrillic capital letter El            0      1      1
U+041C  М  Cyrillic capital letter Em            1      1      1
U+041D  Н  Cyrillic capital letter En            1      1      1
U+041E  О  Cyrillic capital letter O             1      1      1
U+041F  П  Cyrillic capital letter Pe            0      1      1
U+0420  Р  Cyrillic capital letter Er            1      1      1
U+0421  С  Cyrillic capital letter Es            1      0      1
U+0422  Т  Cyrillic capital letter Te            1      1      1
U+0423  У  Cyrillic capital letter U             1      1      1
U+0424  Ф  Cyrillic capital letter Ef            0      1      1
U+0425  Х  Cyrillic capital letter Ha            1      1      1
U+0426  Ц  Cyrillic capital letter Tse           0      0      1
U+0427  Ч  Cyrillic capital letter Che           0      0      1
U+0428  Ш  Cyrillic capital letter Sha           0      0      1
U+0429  Щ  Cyrillic capital letter Shcha         0      0      1
U+042A  Ъ  Cyrillic capital letter hard sign     0      0      1
U+042B  Ы  Cyrillic capital letter Yeru          0      0      1
U+042C  Ь  Cyrillic capital letter soft sign     0      0      1
U+042D  Э  Cyrillic capital letter E             0      0      1
U+042E  Ю  Cyrillic capital letter Yu            0      0      1
U+042F  Я  Cyrillic capital letter Ya            0      0      1

1
PPCG में आपका स्वागत है! यह एक अच्छी पहली चुनौती है। :) आपके UTF-8 नोट पर एक नोट: यह UTF-8 नहीं है जो इन वर्णों के कई संस्करणों को परिभाषित करता है, लेकिन यूनिकोड (और UTF-8 यूनिकोड कोड बिंदुओं को एनकोड करने के लिए सिर्फ एक विशिष्ट तरीका है)। इसके अलावा, चूंकि यह हिस्सा सही होने के उत्तरों के लिए महत्वपूर्ण है, इसलिए आप उन सभी यूनिकोड वर्णों की स्पष्ट सूची को शामिल करना चाह सकते हैं जिन्हें सही तरीके से संभालने की आवश्यकता है।
मार्टिन एंडर

@ हाँ, धन्यवाद।
simonalexander2005

@JonathanAllan, ngn: मैं सहमत हूं, मेरा इरादा सिर्फ उन अक्षरों से है जो वेन आरेख में हैं - लेकिन उन अक्षरों के सभी निरूपण मान्य हैं - जैसे मैं प्रश्न में कहना चाहता हूं, "ए" के कई यूनिकोड निरूपण हैं, उदाहरण के लिए
सिमोनलेक्सेन्डर2005

सिरिलिक "एल" वास्तव में ग्रीक "लैम्बडा" है। सिरिलिक "पे" ग्रीक "पाई" है।
सिमोनलेक्जेंडर 2005

@JonathanAllan फ़ॉन्ट के आधार पर, सिरिलिक लेस बिल्कुल ग्रीक athan की तरह लग सकता है। The जैसी आकृति उसी अक्षर की एक और शैलीगत भिन्नता है।
ngn

जवाबों:


4

जेली , 56 बाइट्स

A हैश अच्छी तरह से छोटा हो सकता है।

O:⁹:2;ON©œị“ŒḂI4ƥƒⱮıtɱN¦“¤COṙṚ¹`“ÑṂḄẈɼ]ġÐ’b4¤+4Bṙ®Ḣµ€S÷L

ऑर्डर, अंग्रेजी, ग्रीक, रूसी में अनुपात मात्रा की एक सूची लौटाने वाला एक विवादास्पद लिंक।

इसे ऑनलाइन आज़माएं!
... या पूरी तरह से स्वरूपित आउटपुट देखें (एक दशमलव स्थान पर निहित गोलाई सहित)

कैसे?

हम चाहते हैं कि कोड हो, जो प्रत्येक संभावित चरित्र का एक ट्रिपल और शून्य का प्रतिनिधित्व करता है कि क्या वे प्रत्येक अक्षर से संबंधित हैं (जहां प्रश्न में तालिका की तरह बहुत कुछ Cहै 1 0 1)। एक बार जो किया जाता है, हम इन पर योग कर सकते हैं और अनुपात (शून्य और एक समावेशी के बीच) प्राप्त करने के लिए लंबाई से विभाजित कर सकते हैं - यह सिर्फ S÷L(कोड के दाईं ओर देखा जाता है) है।

किसी भी दिए गए चरित्र के लिए, हम जानते हैं कि यदि अध्यादेश 256 से कम अंग्रेजी के रूप में गिना जाता है, यदि यह 1024 से अधिक है, तो यह रूसी के रूप में गिना जाता है, और अगर यह 256 और 1024 के बीच में ग्रीक के रूप में गिना जाता है। जैसे कि ऑर्डिनल और पूर्णांक को 256 से विभाजित करना और फिर पूर्णांक 0को अंतरिक्ष और लैटिन वर्णों के लिए दो पैदावार (अंग्रेजी के रूप में गणना), 1हेलेनिक (ग्रीक के रूप में गणना) और 2सिरिलिक (रूसी के लिए गणना ) के लिए परिणाम को विभाजित करना । यह सिर्फ O:⁹:2जेली में है (कोड के बाईं ओर देखा गया है)।

यदि हम बिट्स के त्रिभुज को घुमाते हैं जैसे कि प्राकृतिक वर्णमाला बिट * सबसे महत्वपूर्ण है तो हम निम्न दो बिट्स (शून्य और तीन समावेशी के बीच मान) को तीन पंक्तियों के साथ एक लुक-अप तालिका में एन्कोड कर सकते हैं और फिर दाईं ओर घुमा सकते हैं। ऊपर मिले नंबर।

जब हम ऐसा करते हैं तो दो बातें ध्यान देने योग्य होती हैं - 1. जेली में रोटेट-लेफ्ट बाय एटम रोटेट-राइट-बाय बाय नहीं होता है; 2. लुक-अप तालिका की हेलेनिक पंक्ति एक शून्य से शुरू होगी (चूंकि Ξकेवल ग्रीक है), एक सरल आधार -4 एन्कोडिंग को विफल करना (चूंकि अग्रणी शून्य एन्कोडेबल नहीं हैं)। (1) को कम करने के लिए, हम नकारात्मक मान द्वारा घुमाए जा सकते हैं और कम करने के लिए (2) हम अपनी राशियों को रिवर्स में इंडेक्स कर सकते हैं और नकारात्मक राशि के साथ उन्हें अनुक्रमणित कर सकते हैं। इस तरह हम एक ही बाइट ( N) के साथ पंक्ति और कॉलम इंडेक्स दोनों को नकार सकते हैं क्योंकि हमारी पंक्ति और कॉलम इंडेक्स की गणना की जा सकती है O:⁹:2;ON

ध्यान दें कि अब जेली में बहुआयामी अनुक्रमण परमाणु है œị

तालिका तीन बड़ी संख्याओं से बनाई गई है, जो एक बार बेस चार में बदल जाती हैं, क्रमशः सिरिलिक, ग्रीक और लैटिन (+ स्पेस) के लिए आवश्यक कम बिट्स देते हैं। वे न्यूनतम लंबाई के होते हैं जैसे कि नकारात्मक क्रमिक मूल्यों द्वारा मॉड्यूलर अनुक्रमण संभव है - 47, 25, और 30 क्रमशः ( .अप्रयुक्त अनुक्रमित पर हैं):

1: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 3 3 2 3 1 3 3 3 1 3 0 0 0 0 3 0 1 3 0 3 0 0 0 0 0 0
   . . . . . . . . . Я Ю Э Ь Ы Ъ Щ Ш Ч Ц Х Ф У Т С Р П О Н М Л К Й И З Ж Е Д Г В Б А Ё . . . . .

2: 3 2 3 1 0 3 1 3 0 2 3 3 0 0 3 2 3 3 0 0 3 2 3 0 1
   Μ Λ Κ Ι Θ Η Ζ Ε Δ Γ Β Α Ω Ψ Χ Φ Υ Τ Σ . Ρ Π Ο Ξ Ν

3: 3 3 0 0 0 3 0 0 0 3 3 2 3 0 3 0 2 3 0 0 3 0 1 3 3 0 0 3 0 2
   Y X W V U T S R Q P O N M L K J I H G F E D C B A . .   . Z

एक उदाहरण के रूप में यूनिकोड बिंदु पर वर्ण Φ पर विचार करें U + 03A6 (जो उपज होना चाहिए [0,1,1]) इसका क्रमिक मूल्य है (3 × 16 (+ 10 × 16 + 6 =) 934। ( O:⁹:2मतलब 934 // 256 // 2 = 1) हेलेनिक ब्लॉक के हिस्से के रूप में इसकी पहचान करना। ;Oक्रमसूचक हमें दे रही है संयोजित [1,934]और Nफिर हमें दे रही है दोनों मूल्यों को नकारता [-1,-934]। चूंकि जेली इंडेक्सिंग 1-आधारित और मॉड्यूलर दोनों है और तीन पंक्तियों में तीन पंक्तियों के -1दूसरे संदर्भ हैं (उपरोक्त कोड-ब्लॉक में पंक्ति 2), चूंकि मध्य पंक्ति में -934संदर्भ की लंबाई 25 % है (-934%) 25 =) उस पंक्ति में 16 वीं प्रविष्टि, जो है 2। कोड तब चार (सबसे महत्वपूर्ण बिट) जोड़ता है 6जो हमें बाइनरी में परिवर्तित करता है[1,1,0]। कोड इसके बाद बायीं ओर घूमता है [-1,-934]और सिर को पकड़ लेता है (यानी रोटेशन को -1 से छोड़ा जाता है, दाईं ओर एक घुमाव) [0,1,1]आवश्यक होने पर उपज देता है।

* अंतरिक्ष के लिए अंग्रेजी क्योंकि यह लैटिन वर्णों के साथ समूहीकृत है


टिप्पणी कोड

O:⁹:2;ON©œị“...“...“...’b4¤+4Bṙ®Ḣµ€S÷L - Link: list of characters        e.g.: "СЯ"
                                 µ€    - for €ach character:                С       Я
O                                      -   cast to ordinal               1057    1071
  ⁹                                    -   literal 256
 :                                     -   integer division                 4       4
   :2                                  -   integer divide by 2              2       2
      O                                -   cast to ordinal               1057    1071
     ;                                 -   concatenate                  [2,1057] [2,1071]
       N                               -   negate                     [-2,-1057] [-2,-1071]
        ©                              -   copy to register for later
                          ¤            -   nilad followed by link(s) as a nilad:
           “...“...“...’               -     list of integers encoded in base 250 = [4951760157204492290900832256, 1043285073970097, 1081712651052809266]
                        b4             -     convert to base 4                    = [[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,2,3,1,3,3,3,1,3,0,0,0,0,3,0,1,3,0,3,0,0,0,0,0,0],[3,2,3,1,0,3,1,3,0,2,3,3,0,0,3,2,3,3,0,0,3,2,3,0,1],[3,3,0,0,0,3,0,0,0,3,3,2,3,0,3,0,2,3,0,0,3,0,1,3,3,0,0,3,0,2]]
         œị                            -   index into                       2       0                   ^--[-2,-1071]   [-2,-1057]--^
                           +4          -   add four                         6       4
                             B         -   convert to binary             [1,1,0] [1,0,0]
                               ®       -   recall from register       [-2,-1057] [-2,-1071]
                              ṙ        -   rotate left         [[1,0,1],[0,1,1]] [[0,0,1],[1,0,0]]
                                Ḣ      -   head                          [1,0,1] [0,0,1]
                                   S   - sum                                 [1,0,2]
                                     L - length                                 2
                                    ÷  - divide                            [0.5,0,1]
                                       -   i.e.: 50.0% Latin, 0% Greek, 100% Russian

लगता है कि आपके पास कुछ शब्दावली है ... क्या "हैश" का मतलब निर्माण जैसा है (keys)iị(values)Ʋ?
एर्ग आउटफोलर

मेरा मतलब है कि कुछ गणितीय हेरफेर से चाबियों का एक अलग सेट बनाना ताकि मूल्यों की एक सूची में सूचकांक कर सकें, हाँ। तो जैसे ...ị“...या संभवत: ...ṃ“...(मेरे द्वारा गठित मोनैडिक श्रृंखला को कड़ाई से बोलना एक हैश फ़ंक्शन है )
जोनाथन एलन

@ एन एम एम केबर्ड एकिंग है
जोनाथन एलन

ओह, मुझे पता है कि कैसे ठीक करना है! अपने कीबोर्ड को फिर से कॉन्फ़िगर करें और "y" और "o" के बजाय सिरिलिक "YOU" और "о" टाइप करें: D
ngn

मैंने इतना लंबा जेली जवाब कभी नहीं देखा ... बहुत अच्छा काम!
simonalexander2005

5

जावास्क्रिप्ट (ईएस 6), 197 179 बाइट्स

[0..1] में 3 अनुपातों की एक सरणी देता है।

s=>[...s].map(_=>(x='b;C6cC6%c>b^[<$]_3--_c_acC-----$+aKHbKK[`H`H]'[(p=s[a='charCodeAt'](l++)%202%116%89)>>1][a]()-36,x/=p&1||8,L+=x/4&1,G+=x/2&1,C+=x&1),l=L=G=C=0)&&[L/l,G/l,C/l]

इसे ऑनलाइन आज़माएं!

कैसे?

हम % 202 % 116 % 89प्रत्येक वर्ण कोड को [0..88] में इंडेक्स में बदलने के लिए (बल्कि अक्षम) हैश फ़ंक्शन का उपयोग करते हैं । संबंधित लुकअप तालिका में 3-बिट प्रविष्टियाँ होती हैं, जहाँ बिट # 2 = लैटिन, बिट # 1 = ग्रीक और बिट # 0 = सिरिलिक। दशमलव अंकों का उपयोग, यह देता है:

76273722773722017732767267300071731711117377737577371111111111000775474476474767744474447

हम एक अतिरिक्त संलग्न 1एन प्रविष्टियों की भी संख्या हो और सीमा [37..99] (में प्रिंट योग्य ASCII वर्ण के साथ इस बिट स्ट्रीम एन्कोड करने के लिए %करने के लिए cचरित्र प्रति पेलोड डेटा 6 बिट्स के साथ,)।

यह निम्नलिखित स्ट्रिंग की ओर जाता है:

b;C6cC6%c>b^[<$]_3--_c_acC-----$+aKHbKK[`H`H]

ऑफ़सेट को पात्रों से बचने के लिए चुना गया था जैसे \कि भागने की आवश्यकता होगी।


3

रूबी , 165 बाइट्स

->s{(0..2).map{|x|s.chars.map{|c|o=c.ord;(o<33?7:"ĝ]ē¯]÷W59WUė½ñĝĕ×ßoĝėÏė55#{?!*15}"[o-[913,1040,65][y=o>>7<=>7]].ord+226>>3*-~y)[x]*1.0}.sum/s.size}}

इसे ऑनलाइन आज़माएं!

संपादित करें: महत्वपूर्ण रूप से कोड को गोल्फ, और सबसे महत्वपूर्ण बात, एक UTF-8 स्ट्रिंग में 3 अनुवाद अनुक्रम निचोड़। तर्क की बेहतर पठनीयता और स्पष्टीकरण के लिए मूल लंबे कोड को नीचे रखा गया है।

रूबी, 211 बाइट्स

->s{(0..2).map{|x|s.chars.map{|x|o=x.ord;o<33?7:o<91?"77517117317173771117111773"[o-65]:o<938?"7762737237673276702776722"[o-913]:"74764744444767776757767#{?4*15}"[o-1040]}.inject(0.0){|y,z|y+=z.to_i[x]}/s.size}}

इसे ऑनलाइन आज़माएं!

सबसे कुशल दृष्टिकोण नहीं हो सकता है, लेकिन काम करता है। संख्या के बिट्स (क्रम में: लैटिन, ग्रीक, रूसी) द्वारा कूटबद्ध अलग-अलग लिपियों में चरित्र घटना के साथ प्रत्येक वर्णमाला के लिए एक अनुवाद तालिका का उपयोग करता है। आउटपुट एक ही क्रम में प्रतिशत का एक सरणी है।

बाहरी Ёमामले को ठीक करने के लिए मैंने वर्णमाला के अंत में 10 पदों से रूसी-केवल 4-ब्लॉक को 15 तक बढ़ा दिया। इस तरह, Ёनकारात्मक सूचकांक के साथ सही ढंग से उठाया जाता है (और हमें अक्षरों की तुलना में निचले अक्षरों को संभालने की आवश्यकता नहीं है। ये अतिरिक्त सूचकांक)।


1

रेटिना 0.8.2 , 230 बाइट्स

.+
$&¶$&¶$&¶$&
T`ΓΔΘΛΞΠΣΦΨΩЁБГДЖ-ЙЛПФЦ-Я`_`.+(?=¶.+¶.+$)
T`CDFGJ\LQRSUVWЁБДЖ-ЙС-Я`_`.+(?=¶.+$)
T`DFGIJ\LNQRSUVWZΔΖΘΙΝΞΣΨΩ`_`.+$
¶(.*)
¶$.1$*
1
100$*
.
1
(1+)¶(\1)*1*¶(\1)*1*¶(\1)*1*
$#2 $#3 $#4

इसे ऑनलाइन आज़माएं! लिंक में परीक्षण के मामले शामिल हैं। नोट: आउटपुट एक पूर्णांक तक कम हो गया है, क्योंकि सटीक बढ़ने से स्क्रिप्ट बहुत धीमी हो गई है और यह TIO से समाप्त हो गई है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.