Contexte
J'ai vu ce diagramme de Venn très intéressant sur wikipedia: https://simple.wikipedia.org/wiki/Alphabet#/media/File:Venn_diagram_gr_la_ru.svg
Il montre les lettres (formes physiques) dans différents alphabets communs aux alphabets russe, grec et latin.
Le défi
Étant donné une chaîne d'entrée de caractères provenant de l'un des trois scripts présentés (c.-à-d. Lettres grecques, cyrilliques ou latines en majuscules), affichez un pourcentage de la chaîne correspondant à chaque langue. Les lettres répétées comptent à chaque fois.
Par exemple, FFLURS
tous les caractères sont uniquement latins, donc la sortie est FFLURS is 100% Latin, 0% Cyrillic and 0% Greek
.
En revanche, TOX BEAM PHP
est complètement formé de caractères qui apparaissent dans les trois langues, donc la sortie est TOX BEAM PHP is 100% Cyrillic, 100% Greek and 100% Latin
.
Tables de recherche
Le diagramme de Venn est à l'origine des lettres ci-dessous:
Latin uniquement:
J,G,S,D,Q,U,V,W,F,L,R
Latin et cyrillique:
C, С
Latin et grec:
I,Ι, N,Ν, Z,Ζ
Grec et cyrillique
Φ,Ф, Π,П, Γ,Г, Λ,Л
Tous les trois:
A,B,E,O,M,K,T,X,Y,H,P (and equivalents in greek and cyrillic), (space)
Le reste ... est uniquement grec ou cyrillique.
NOTE IMPORTANTE
Unicode définit (par exemple) "A" de (au moins) trois façons distinctes - une pour chaque langue. Quel que soit celui utilisé dans l'entrée (& # 0391, & # 0410 ou & # 0041), le programme doit le comprendre comme correspondant aux trois langues.
Donc, A
(latin), Α
(grec alpha) et А
(cyrillique) devraient tous donner 100% Cyrillic, 100% Greek and 100% Latin
comme réponse.
Format d'entrée
Toute chaîne contenant exclusivement А-Я
, Α-Ω
, A-Z
et (espace). Ces caractères peuvent être répétés plusieurs fois dans la chaîne.
Format de sortie
La sortie peut être dans n'importe quel format, à condition que la fonction produise des résultats cohérents. Je tiens à voir la sortie au format que je montre dans mes exemples ( FFLURS is 100% Latin, 0% Cyrillic and 0% Greek
), mais pour rendre le défi plus ouvert à tous ceux que je suis heureux d'accepter que des tableaux / chaînes de pourcentages / rapports:
[100,0,0]
,
100 0 0
[1.0 0.0 0.0]
tant qu'il est toujours clair quel numéro est quelle langue - donc la sortie doit être cohérente.
Quelques cas de test supplémentaires
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
Critères gagnants
Les règles et exclusions habituelles s'appliquent; la réponse la plus courte (octets) l'emporte.
(lien sandbox: https://codegolf.meta.stackexchange.com/a/14984/62289 )
Pour éviter tout doute, les seuls caractères Unicode valides dans l'entrée sont:
- 0020, 0041-005A (alphabet latin)
- 0020, 0391-03A9 (alphabet grec)
- 0020, 0401, 0410-042F (alphabet cyrillique)
Mais comme indiqué dans les tableaux de recherche, les caractères peuvent être inter-alphabétiques.
Ajout du tableau de Jonathan Allan à partir des commentaires:
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