On vous donne un tableau A de n entiers strictement positifs, avec n ≥ 2 .
Votre tâche consiste à mapper chaque entrée A i pour:
- 1 si A j mod A i est impair pour chaque j tel que 1 ≤ j ≤ n et j ≠ i
- 2 si A j mod A i est pair pour chaque j tel que 1 ≤ j ≤ n et j ≠ i
- 0 sinon (parités mixtes)
Exemple
Pour A = [73, 50, 61] , nous avons:
- 50 mod 73 = 50 , 61 mod 73 = 61 → mixte
- 73 mod 50 = 23 , 61 mod 50 = 11 → tous impairs
- 73 mod 61 = 12 , 50 mod 61 = 50 → tout pair
Par conséquent, la sortie attendue est [0, 1, 2] .
Règles
- Vous pouvez utiliser trois valeurs distinctes (de tout type) au lieu de 0 , 1 et 2 tant qu'elles sont cohérentes. Veuillez spécifier votre mappage si vous n'utilisez pas celui décrit dans le défi.
- En cas de doute, zéro est pair .
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte!
Cas de test
[ 1, 2 ] --> [ 2, 1 ]
[ 3, 4 ] --> [ 1, 1 ]
[ 1, 2, 3 ] --> [ 2, 1, 0 ]
[ 4, 4, 4 ] --> [ 2, 2, 2 ]
[ 73, 50, 61 ] --> [ 0, 1, 2 ]
[ 941, 459, 533 ] --> [ 1, 0, 0 ]
[ 817, 19, 928, 177 ] --> [ 1, 2, 1, 1 ]
[ 312, 463, 336, 729, 513 ] --> [ 0, 2, 0, 0, 0 ]
[ 53, 47, 33, 87, 81, 3, 17 ] --> [ 0, 0, 0, 1, 0, 2, 0 ]
[1]
,[0, 1]
et le[1, 1]
travail?Réponses:
Python 2 ,
686766 octets-1 octet grâce à Mr. Xcoder
-1 octet grâce à ovs
Essayez-le en ligne!
Renvoie à la
1,0,2
place0,1,2
.la source
(k<1)
par0**k
-1 octet.Gelée , 9 octets
Renvoie [1, 1], [0, 1], [1] au lieu de 0, 1, 2 .
Essayez-le en ligne!
Comment ça fonctionne
la source
‘ṬUḄ
parQ€Ḅ
pour enregistrer un octet?Q€
pourrait revenir[0, 1]
ou[1, 0]
.[1]
,[1,1]
et[0,1]
sont trois valeurs distinctes, donc%þœ-€0Ḃ‘Ṭ
devraient être acceptables pour 9. EDIT - ah je vois que vous avez posé cette question exacte :)¹-Ƥ%"%2‘Ṭ
MATL , 12 octets
Cette utilisation
0
,-1
, au1
lieu de0
,1
,2
respectivement.Essayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
la source
C (gcc) ,
118114979291 octetsquatrevingt et un octets grâce à Peter Cordes ; suggérant d'utiliser un mappage de valeur de sortie différent;[0 1 2] ~ [3 2 1]
.[0 1 2] ~ [ ]
.for(i=0;i<n;i++,putchar...
au golffor(i=~0;++i<n;putchar...
.Essayez-le en ligne!
la source
f(I,7)
écrase le premier élément deI[]
(A[]
dans f ()) avec l'un des arguments que vous utilisez en tant que sections locales.f()
suppose que l'argument a été passé sur la pile par l'appelant, mais l'appelant ne le savait pas, et ce qui se trouve réellement sur la pile au-dessus de l'adresse de retour estA[0]
. (c'est-à-dire que cette UB a provoquét
etA[0]
avoir la même adresse). Quoi qu'il en soit, ce n'est que UB dans votre fonction de test sur TIO.execlp("/usr/bin/objdump", "objdump", "-drwC", "-Mintel", argv[0], 0);
à main pour obtenir l'asm du gcc 7.2.1 de TIO, qui ne correspondait pas exactement à mon gcc Arch Linux Linux 7.2.1. Après avoir reconverti ce désassemblage en source asm pour la fonction appelante, j'ai pu le reprocher localement dans gdb et confirmer exactement ce qui se passait.o|=1<<(A[j]%A[i]%2)
sans avoir besoin de décodage sophistiquéo
.o|=1<<...
au lieu de quelque chose dans le sens deo|=1<<(t=...
.Mathematica,
574948 octetsCela renvoie:
False.True
pour 0 (mixte)True.True
pour 1 (tous impairs)False.False
pour 2 (tous pairs)Essayez-le en ligne!
Voici une alternative légèrement plus longue (49 octets):
Celui-ci renvoie:
1
pour 0 (mixte)-1
pour 1 (tous impairs)0
pour 2 (tous pairs)Essayez-le en ligne!
la source
Rouge , 101 octets
Essayez-le en ligne!
Retourne
1 0
pour mixte,1
pour impair et0
pour pairla source
JavaScript (ES6), 46 octets
Renvoie -1 (pair), 1 (impair) et 0 (mixte).
Comment ça fonctionne:
L'
d
accumulateur sera:!a[d+1]
== faux,!d
== 1,false - 1
== -1 )!a[d+1]
== true,!d
== 0,true - 0
== 1 )!a[d+1]
== faux,!d
== 0,false - 0
== 0 )Cas de test:
Afficher l'extrait de code
la source
J ,
2720 octetsEssayez-le en ligne!
Utilise [1 0] [1] [0] au lieu de 0 1 2
Explication:
|/~
- fait un tableau avec des restes:2|
impair ou pair? :<@~.@}:@\:"1
- trier, supprimer le dernier élément (toujours un zéro), conserver les éléments ùnique et encadrer chaque ligne:la source
2/:~@:|"1]|1]\.]
retour d'une liste de paires.Rubis ,
5856 octetsRenvoie [0, 1], [1], [0] au lieu de 0, 1, 2 (c'est-à-dire [0] pour tous pairs, [1] pour tous impairs et [0, 1] pour mixte).
Essayez-le en ligne!
la source
Perl, 38 octets
Comprend
+3
pour-p
Sorties 1 pour tous pairs, 2 pour tous impairs, 3 pour mixtes
la source
Nettoyer ,
956563 octetsEssayez-le en ligne!
En tant que lambda, prenant
[Int]
et retournant[Int]
, mappant sur:0
: mixte1
: tous même-1
: tout impairla source
Perl 5 ,
7169 + 1 (-a
) = 70 octetsEssayez-le en ligne!
la source
Pari / GP , 42 octets
Renvoie
[0, 0], [0, 1], [1, 0]
au lieu de0, 1, 2
.Essayez-le en ligne!
la source
Java 8,
9189 octetstruetrue
au lieu de2
pour mêmefalsefalse
au lieu de1
pour impairtruefalse
au lieu de0
pour mixteExplication:
Essayez-le en ligne.
la source
Clojure, 82 octets
Un exemple complet avec conversion de sortie:
la source