Étant donné un entier, émettez une valeur véridique si elle est la même à l'envers (rotation de 180 °) ou une valeur fausse sinon.
0
,, 1
et 8
ont une symétrie de rotation. 6
devient 9
et vice versa.
Séquence de nombres produisant des résultats véridiques: OEIS A000787
0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, ...
Cette question est inspirée de ma propre réputation au moment de l' affichage: 6009
.
code-golf
number
sequence
decision-problem
code-golf
string
parsing
c
code-golf
sorting
integer
code-golf
number
sequence
rational-numbers
graphical-output
atomic-code-golf
assembly
box-256
code-golf
geometry
tips
python
code-golf
number
sequence
arithmetic
number-theory
code-golf
ascii-art
kolmogorov-complexity
geometry
code-golf
graphical-output
code-golf
math
code-golf
grid
cellular-automata
game-of-life
code-golf
string
subsequence
code-golf
arithmetic
rational-numbers
code-golf
tips
dc
code-golf
ascii-art
kolmogorov-complexity
date
code-golf
string
primes
code-golf
string
natural-language
conversion
code-golf
sequence
code-golf
number-theory
primes
base-conversion
code-golf
math
primes
base-conversion
code-golf
ascii-art
fractal
code-golf
matrix
code-golf
math
tips
geometry
python
string
code-challenge
keyboard
code-golf
graphical-output
code-golf
string
code-golf
number
sequence
cops-and-robbers
number
sequence
cops-and-robbers
mbomb007
la source
la source
raw_input
, l'utilisateur a entré un entier, qui deviendrait une chaîne dans les coulisses. C'est très bien.Réponses:
05AB1E ,
22161514 octetsCode:
Essayez-le en ligne!
Code précédent:
Pour savoir si la chaîne est symétrique en rotation, il suffit de transliter
69
avec96
, d'inverser la chaîne et de vérifier si elles sont égales. L'autre chose que nous devons savoir est si le nombre ne contient que les chiffres0
,1
,8
,6
et9
. C'est exactement ce que nous allons faire:La
„vd•
partie convertit en fait la chaînevd
de la base 190 en base 10 . Vous pouvez l'essayer ici .Utilise l' encodage CP-1252 .Essayez-le en ligne!
la source
Python 2, 50 octets
La méthode
'01xxxx9x86'.find
prend un caractère numérique à son nombre à l'envers, avec n'importe quel chiffre non flippable-1
. Cette fonction est mappée à la chaîne numérique inversée, produisant une liste de chiffres.Ceci est converti en une chaîne avec l'
[1::3]
astuce , sauf qu'il est inversé à la place en faisant[-2::-3]
(merci à Dennis pour cela, économisant 4 octets), et comparé à la chaîne numérique d'origine. N'importe-1
lequel à partir de chiffres inviolables désalignera la conversion, ce qui la fera échouer.56 octets:
Vérifie si la chaîne de nombres inversée est la même que pour les remplacements à l'envers. Les chiffres qui ne peuvent pas être inversés sont remplacés par
'x'
pour toujours donner la mauvaise réponse.Le remplacement se fait
translate
sur une chaîne de 256 caractères, en remplaçant les valeurs ASCII correspondantes. Seules les 10 valeurs48
à la57
matière, mais je rembourrées à la longueur 16 pour rendre la longueur totale soit 256. Je me demande s'il y a un moyen plus court.Quelques autres approches (longueurs 59, 60, 60):
la source
Rubis,
5446 octetsJe ne sais pas, les fonctions anonymes comme celle-ci sont-elles autorisées ou non
Fondamentalement, la même idée que la réponse Python2. Si l'entrée n'est pas un entier, agissez mal (c.-à-d.
aba
Donnetrue
)la source
JavaScript (ES6), 56 octets
la source
split``
. Voir Un tableau plus puissant littéralPerl,
2926 octetsComprend +1 pour
-p
Exécutez avec l'entrée sur STDIN:
rotation.pl
:la source
Gelée,
1615 octetsEssayez-le en ligne!
Comment ça marche
la source
Rétine,
5749 octets8 octets économisés grâce à @Martin Büttner .
1610880191
->61088019
->108801
->0880
->88
-> (vide).1
si seulement0
,1
,8
ou (vide) est à gauche.0
contraire.Essayez-le en ligne!
la source
sh,
4033 octetsEntrée via l'argument de ligne de commande, sortie via le code de sortie. Générez tous les cas de test:
la source
TSQL, 122 octets
Je suis nouveau dans le code du golf, donc je ne sais pas trop comment compter les personnages. Le compter comme 1 ici car le nombre utilisé dans ce cas est 8
Cela retournera 1 lorsque la valeur inversée correspondra et rien si elle ne correspond pas:
Lisible par l'homme:
la source
Rétine ,
403833 octetsEssayez-le en ligne!
Explication
Cela utilise une approche complètement différente de l'autre réponse Retina. Au lieu de supprimer toutes les parties symétriques, nous effectuons simplement la transformation de l'inversion de la chaîne et de l'échange
6
et de9
s, puis comparons pour l'égalité. Pour nous assurer qu'aucun chiffre non symétrique n'apparaisse, nous les transformons également en9
s dans une moitié.Nous dupliquons l'entrée en faisant correspondre la fin de la chaîne et en l'insérant
;
suivie de l'entrée entière.Cela effectue une translittération des caractères uniquement sur la seconde moitié en la faisant correspondre avec
;.+
. Les deux ensembles de translittération s'étendent jusqu'à:Parce que
2-7
dénote une plage et que l'ensemble cible est complété par le dernier caractère pour correspondre à la longueur de l'ensemble source. Par conséquent, la scène troque6
et9
transforme également le tout23457
en9
art.À plusieurs reprises (
+
), supprimez une paire de caractères identiques autour du;
. Cela se poursuivra jusqu'à ce qu'il ne;
reste que le ou jusqu'à ce que les deux caractères autour du;
ne soient plus identiques, ce qui signifierait que les chaînes ne sont pas l'inverse l'une de l'autre.Vérifiez si le premier caractère est
;
et imprimez0
ou en1
conséquence.la source
Pyth - 21 octets
Suite de tests .
la source
X_zK
fait le même travail queX_z_KK
. Le 3e paramètre est facultatif.Pyth, 17 octets
Testez-le dans le compilateur Pyth .
Comment ça marche
la source
Visual Basic pour Applications,
150111 octetsUtilisable en console ou en UDF.
Amélioré en tirant parti des conversions de types implicites et en effectuant un échange en trois étapes au lieu de deux étapes de chaque côté de l'équation. Le compte comprend
Function
et lesEnd Function
déclarations.la source
GNU sed, 84 octets
(dont +1 pour le
-r
drapeau)Si la ligne se termine par une rotation de son caractère de début, coupez les deux extrémités par une. Répétez jusqu'à ce qu'il n'y ait pas de correspondance. Tenez compte d'un seul caractère symétrique, puis s'il reste quelque chose, l'entrée n'était pas symétrique et nous renvoyons false; sinon retourne vrai.
la source
C, 82 octets
Étendu
Explication
Nous inversons les chiffres de l'
x
utilisation de l'arithmétique modulo-10, en remplaçant 6 et 9 par leurs réflexions au fur et à mesure. Nous remplaçons les chiffres à rotation asymétrique par des zéros (notez que nous pouvons gérer les cinq et / ou les deux symétriques en changeant simplement la table de remplacements
). Si le nouveau nombre est égal à l'original (enregistré en «z»), alors il est symétrique en rotation.Programme de test
Ceci imprime la liste des nombres symétriques donnée dans la question.
la source
MATL,
252122 octetsEssayez-le en ligne!
Explication
la source
Sérieusement, 23 octets
Essayez-le en ligne!
Il s'agit essentiellement d'un portage de la solution Python 2 de xnor .
Explication:
la source
Kotlin, 69 octets
Cela prend le nombre, le convertit en chaîne, le fait pivoter, puis le compare à l'original en tant que chaîne pour l'égalité. Les chiffres non rotatifs sont simplement convertis en
0
Testez-le ici!
la source