Définitions
Résidus quadratiques
Un nombre entier est appelé un résidu quadratique modulo s'il existe un entier tel que:
L'ensemble des résidus quadratiques modulo peut être simplement calculé en regardant les résultats de x ^ 2 \ bmod n pour 0 \ le x \ le \ lfloor n / 2 \ rfloor .0 ≤ x ≤ ⌊ n / 2 ⌋
La séquence du défi
Nous définissons comme le nombre minimum d'occurrences de la même valeur pour toutes les paires de résidus quadratiques modulo .
Les 30 premiers termes sont:
C'est l' A316975 (soumis par moi-même).
Exemple:
Les résidus quadratiques modulo sont , , , , et .
Pour chaque paire de ces résidus quadratiques, nous calculons , ce qui conduit au tableau suivant (où est à gauche et est en haut):
Le nombre minimum d'occurrences de la même valeur dans le tableau ci-dessus est de (pour , , et ). Donc .
Ta tâche
Vous pouvez soit:
- prendre un entier et imprimer ou retourner (indexé 0 ou indexé 1)
- prendre un entier et imprimer ou retourner le premiers termes de la séquence
- ne prenez aucune entrée et imprimez la séquence pour toujours
- Votre code doit pouvoir traiter l'une des 50 premières valeurs de la séquence en moins d'une minute.
- Avec suffisamment de temps et de mémoire, votre code doit théoriquement fonctionner pour tout entier positif pris en charge par votre langage.
- C'est du code-golf .
la source
+n
intérieur(...)mod n
n'a-t-il pas d'effet? Si c'est le cas, c'est très bizarre qui fait partie de la définition.(some_potentially_negative_value + n) mod n
.) Je pense que c'est mieux de l'avoir dans un défi de programmation, car le signe du résultat dépend du langage .a_p = round(p/4)
, ce qui nous donne les valeurs de tous les nombres sans carré. Mais la situation semble compliquée sur les puissances des nombres premiers, et les 3 cas mod 4 et 1 cas mod 4 doivent être traités séparément.Réponses:
MATL , 14 octets
Essayez-le en ligne! Ou vérifiez les 30 premières valeurs .
Explication
la source
Japt
-g
,2220 octetsJ'ai passé trop de temps à comprendre en quoi consistait le défi, a manqué de temps pour continuer à jouer au golf: \
Génère le
n
e terme dans la séquence. Commence à se débattre lors de la saisie>900
.Essayez-le ou vérifiez les résultats pour 0-50
Explication
la source
Gelée ,
1310 octets-1 grâce à Dennis (forçant l'interprétation dyadique avec un interligne
ð
)-2 plus aussi grâce à Dennis (puisque les paires peuvent être dédoublées on peut éviter un
R
et un2
)Un lien monadique acceptant un entier positif qui donne un entier non négatif.
Essayez-le en ligne! Ou consultez les 50 premiers termes .
Comment?
la source
05AB1E ,
22201513 octets-2 octets grâce à @Mr. Xcoder .
Essayez-le en ligne ou vérifiez les 99 premiers cas de test (en environ 3 secondes) . (REMARQUE: la version héritée de Python est utilisée sur TIO au lieu de la nouvelle réécriture d'Elixir. Elle est environ 10 fois plus rapide, mais nécessite une fin
¬
(tête) car.m
renvoie une liste au lieu d'un seul élément, que j'ai ajouté au pied de page.)Explication:
la source
Ýns%ÙãÆI%D.m¢
. (pas dans l'héritage, dans la nouvelle version)Dâ
place deã
..>.> Et je ne savais pas que cela.m
agissait différemment dans la réécriture d'Elixir. J'avais à l'origine la nouvelle version, mais je suis passé à l'héritage après avoir remarqué que cela¥
ne fonctionnait pas (que vous avez corrigé avec leÆ
). J'utilise toujours l'héritage sur TIO, car c'est beaucoup plus rapide pour ce défi.C (gcc) ,
202200190188187186 octetsdeuxdouzequatorzequinze octets grâce au plafond .Essayez-le en ligne!
la source
Python 2 , 97 octets
Essayez-le en ligne!
la source
K (ngn / k) , 29 octets
Essayez-le en ligne!
{
}
fonction avec argumentx
!x
entiers de0
àx-1
i:
affecter ài
x!
modx
?
uniquer:
affecter àr
-\:
soustraire de chaque gaucher-\:r
matrice de toutes les différencesx!
modx
,/
concaténer les lignes de la matrice=
groupe, renvoie un dictionnaire de valeurs uniques à des listes d'indices d'occurrence#:'
longueur de chaque valeur dans le dictionnaire&/
le minimumla source
Wolfram Language (Mathematica) , 64 octets
Essayez-le en ligne!
la source
Rubis , 88 octets
Essayez-le en ligne!
la source
APL (Dyalog Unicode) ,
2824 octetsEssayez-le en ligne!
Fonction directe de préfixe. Utilise
⎕IO←0
.Merci à Cows Quack pour 4 octets!
Comment:
la source
2*⍨
→×⍨
,r←¨⊂r
→∘.-⍨
,{≢⍵}
→⊢∘≢