Annulation anormale (de Wolfram Alpha):
L'annulation anormale est une "annulation" des chiffres de a et b dans le numérateur et le dénominateur d'une fraction a / b qui se traduit par une fraction égale à l'original. Notez que s'il existe des comptages multiples mais différents d'un ou plusieurs chiffres dans le numérateur et le dénominateur, il y a ambiguïté sur les chiffres à annuler, il est donc plus simple d'exclure de tels cas de la considération. Lien
En termes simples, disons que vous avez une fraction a / b
. Si vous pouvez annuler les chiffres de la fraction pour créer une autre fraction c / d
égale à l'original ( a / b = c / d
), une annulation anormale peut être utilisée pour simplifier la fraction.
Votre défi consiste à créer un programme ou une fonction qui saisit une chaîne de fraction sous la forme a/b
et génère ou renvoie une valeur vraie si la fraction peut être simplifiée à l'aide d'une annulation anormale, et une valeur fausse dans le cas contraire. a
et b
seront toujours des entiers positifs non nuls. a
et b
aura toujours deux ou plusieurs chiffres. De plus, tous les chiffres de l'un a
ou de l'autre b
ne seront pas annulés (vous n'obtiendrez pas l'entrée 12/21
), au moins un chiffre de a
et b
sera annulé à chaque fois (vous n'obtiendrez pas l'entrée 43/21
), et le résultat final ne sera jamais 0
pour l'un ou l'autre a
ou b
. Votre programme doit annuler tous les chiffres communs entre a
et b
(c.-à-d. Dans1231/1234
, vous devez annuler a 1
, a 2
et a 3
). S'il y a plusieurs possibilités d'annulation, choisissez d'abord le chiffre le plus à gauche (515/25 devient 15/2 et non 51/2).
Exemples:
Input Output Why
1019/5095 true Remove the 0 and the 9 from both sides of the fraction to get 11/55, which is equivalent.
16/64 true Remove the 6 from both sides, and get 1/4.
14/456 false Remove the 4s. 14/456 is not equal to 1/56.
1234/4329 false Remove the 2s, 3s, and 4s. 1234/4329 is not equal to 1/9.
515/25 false Remove the first 5 from each side. 15/2 is not equal to 515/25.
C'est le code-golf , donc le code le plus court en octets gagne!
la source
Réponses:
Pyth,
2219 octetsMerci à @isaacg pour trois octets!
Explication:
Essayez-le ici .
la source
m.-Fd
peut être joué au golf.-M
. De même,mcFsMd
peut être joué au golfcMsMM
..-FM
ne fonctionnait pas.M
Splats donc automatiquement sur des fonctions non monadiques?𝔼𝕊𝕄𝕚𝕟, 17 caractères / 34 octets
Try it here (Firefox only).
Explication
la source
Rubis,
9576 octetsExplication
Un grand merci à Doorknob pour avoir joué au golf à 19 octets.
la source
TeaScript, 22 octets
Maintenant que tous les bogues ont été résolus dans TeaScript 3, cela fonctionne bien
Essayez-le en ligne
Suite de tests
la source
E is not defined
.MATL , 35 octets
Exemples
Explication
la source
Javascript ES6, 73 octets
la source