Étant donné une fraction au format m/n
(où m et n sont des entiers premiers), affichez la fraction Unicode correspondante. Votre programme / fonction ne sera pas censé accepter une entrée qui ne correspond pas à un caractère Unicode. Les tableaux, par exemple [2, 3]
par opposition à 2/3
, sont acceptés. m / n
par opposition à m/n
est également très bien. Deux entrées distinctes m
et n
sont également valides.
Les fractions Unicode qui doivent être traitées sont les suivantes:
½, ⅓, ⅔, ¼, ¾, ⅕, ⅖, ⅗, ⅘, ⅙, ⅚, ⅐, ⅛, ⅜, ⅝, ⅞, ⅑, ⅒
Ainsi, les entrées possibles sont les suivantes:
1/2, 1/3, 2/3, 1/4, 3/4, 1/5, 2/5, 3/5, 4/5, 1/6, 5/6, 1/7, 1/8, 3/8, 5/8, 7/8, 1/9, 1/10
Les points de code Unicode des caractères sont les suivants:
188 ¼
189 ½
190 ¾
8528 ⅐
8529 ⅑
8530 ⅒
8531 ⅓
8532 ⅔
8533 ⅕
8534 ⅖
8535 ⅗
8536 ⅘
8537 ⅙
8538 ⅚
8539 ⅛
8540 ⅜
8541 ⅝
8542 ⅞
Cas de test
1/2 -> ½
1/3 -> ⅓
2/3 -> ⅔
1/4 -> ¼
3/4 -> ¾
3/8 -> ⅜
1/10 -> ⅒
Faites votre code aussi court que possible; c'est le golf de code.
code-golf
kolmogorov-complexity
unicode
0WJYxW9FMN
la source
la source
188 ¼, 189 ½, 190 ¾, 8528 ⅐, 8529 ⅑, 8530 ⅒, 8531 ⅓, 8532 ⅔, 8533 ⅕, 8534 ⅖, 8535 ⅗, 8536 ⅘, 8537 ⅙, 8538 ⅚, 8539 ⅛, 8540 ⅜, 8541 ⅝, 8542 ⅞
Réponses:
JavaScript (Node.js) ,
7877 octets1 octet enregistré grâce à @HermanLauenstein
Prend une entrée dans la syntaxe de curry
(m)(n)
.Essayez-le en ligne!
la source
String.fromCharCode()
, mais je m'attends à un nombre d'octets similaire.Perl 6 ,
4843 octetsEssayez-le
Essayez-le
Étendu:
Notez que la recherche doit être divisée afin qu'elle ne renvoie pas d'autres caractères Unicode qui ont le même unival. (sinon ce serait
(1..*)
)la source
UnicodeData.txt
. Par exemple, U + 109BCMEROITIC CURSIVE FRACTION ELEVEN TWELFTHS
a la propriété de caractèrenv=11/12
. Il y a environ 1 500 points de code avec des valeurs numériques non vides - un peu plus que ce petit défi demande à résoudre. Ce sont des nombres entiers ou des rationnels.JavaScript (ES6),
8886848179 octetsSauvegardé 2 octets grâce à @Arnauld
Pas aussi court que l'autre réponse JS, mais c'était amusant de calculer mathématiquement le point de code de chaque fraction.
Extrait de test
Afficher l'extrait de code
Ancienne méthode (82 octets):
Sauvegardé 4 octets sur celui-ci grâce à @Arnauld.
la source
-~'3 1'[n-6]
APL (Dyalog) ,
8864 octetsEssayez-le en ligne!
-3 merci à dzaima .
Utilisation de l'approche 84 octets d'ETHproductions.
L'
f←
inclus sur TIO n'est pas compté, car il est mis là juste pour pouvoir tester la fonction.la source
SOGL V0.12 , 51 octets
Essayez-le ici!
utilise la cartographie
(m + n*5)%33%22
Explication:
la source
Clojure, 127 octets
Une fonction anonyme qui accepte l'entrée
"1/2"
et renvoie le caractère correspondant.Un mappage direct d'un Clojure
Ratio
à un caractère de fraction.comp
, et le fait que les cartes Clojure soient des fonctions vraiment utiles ici. J'avais besoin de passer la chaîneread-string
pour l'évaluer en tant que type de rapport, car cela me permet de supprimer toutes les citations de ballonnement dans la carte.comp
permettez-moi de le faire sans point, ce qui était bien. Le code "complet" serait:Après avoir regardé les autres réponses, j'ai réalisé que cette approche était assez naïve. Je cherche des moyens de l'améliorer.
la source
Swift ,
10682 octetsPort de @Arnaulds Réponse JavaScript
24 octets enregistrés grâce à @ Mr.Xcoder
Essayez-le en ligne!
la source
var f=
dans le nombre d'octets)Fusain ,
774846 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Edit: enregistré
2931 octets en mappant des caractères ASCII aux caractères multi-octets. Explication:la source
Python 3 , 87 octets
Essayez-le en ligne!
ou
Essayez-le en ligne!
la source
Python 3, 97 octets
la source
[n-2][m-1]
place.Script Vim, 67 octets
La fonction fonctionne avec les digraphes de Vim qui sont entrés après leur démarrage.
ctrl-k.
Apparemment, lectrl-k
caractère pertinent après leexe'norm
n'est pas rendu dans le bloc de code ci-dessus.la source