Définitions:
- Un triangle est considéré comme un triangle rectangle si l'un des angles intérieurs est exactement à 90 degrés.
- Un nombre est considéré comme rationnel s'il peut être représenté par un rapport d'entiers, c'est-à-dire
p/q
où les deuxp
etq
sont des entiers. - Un nombre
n
est un nombre congru s'il existe un triangle rectangle de surfacen
où les trois côtés sont rationnels. - Il s'agit d'OEIS A003273 .
Défi
Il s'agit d'un problème de décision-problème . Étant donné un numéro d'entrée,, x
affichez une valeur distincte et cohérente si x
est un nombre congru, et une valeur distincte distincte et cohérente si x
n'est pas un nombre congru. Les valeurs de sortie ne doivent pas nécessairement être véridiques / falsey dans votre langue.
Règle spéciale
Aux fins de ce défi, vous pouvez supposer que la conjecture de Birch et Swinnerton-Dyer est vraie. Alternativement, si vous pouvez prouver la conjecture de Birch et Swinnerton-Dyer, allez réclamer votre prix Millenium de 1000000 $. ;-)
Exemples
(Utilisation True
pour des nombres congrus et False
autrement).
5 True
6 True
108 False
Règles et clarifications
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- Vous pouvez imprimer le résultat dans STDOUT ou le renvoyer en tant que résultat de fonction. Veuillez indiquer dans votre soumission les valeurs que la sortie peut prendre.
- Un programme complet ou une fonction sont acceptables.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) gagne.
code-golf
decision-problem
number-theory
AdmBorkBork
la source
la source
Réponses:
R,
179173142141137 137135134 octetsEn utilisant les mêmes arguments basés sur le théorème de Tunnell , renvoie un
0
sin
n'est pas congru et1
sinon. (Il m'a fallu un certain temps pour repérer la contrainte sur la condition s'appliquant uniquement aux entiers sans carré .)Essayez-le en ligne
Améliorations apportées par Arnaud et Giuseppe (le code final est principalement celui de Guiseppe!), Avec -3 grâce à Robin
Analyse syntaxique:
avec le théorème de Tunnell indiquant que n est congru si et seulement si le nombre de solutions entières à 2x² + y² + 8z² = n est deux fois plus que le nombre de solutions entières à 2x² + y² + 32z² = n si n est impair et le nombre de solutions entières à 8x² + y² + 16z² = n est deux fois plus que le nombre de solutions entières à 8x² + y² + 64z² = n si n est pair.
la source
@[username]
... Je suppose que vous avez été entraîné dans le golf de code par Robin Ryder ??-n:n
? Je n'ai pas lu le théorème de Tunnel, mais il me semble quen:0
cela fonctionnerait aussi bien pour -1 octet ... Aussi, astuce de pro, si vous appuyez sur le bouton "lien" en haut de TIO, vous serez bien formats pour copier et coller dans PPCG :-) EDIT: Je vois, il y a des cas oùn:0
ça ne marche pas.Rouille - 282 octets
Voir également:
corrigé pair / impair, merci @Level River St
la source
C ++ (gcc) ,
251234 bytesMerci à @arnauld d'avoir signalé une faute de frappe stupide de ma part.
-17 octets grâce à @ceilingcat.
Essayez-le en ligne!
Renvoie 1 si
n
est congru, 0 sinon.la source
JavaScript (ES7), 165 octets
Tout comme la réponse de @ NeilA. , Cela est basé sur le théorème de Tunnell et suppose donc que la conjecture de Birch et Swinnerton-Dyer est vraie.
Renvoie une valeur booléenne.
Essayez-le en ligne!
Comment?
la source
Rubis , 126 octets
Essayez-le en ligne!
trouvé un endroit pour initialiser
t=1
et élargir la liste des carrés en un triplet au lieu d'utiliserq
pour faire des copies supplémentaires.Rubis , 129 octets
Essayez-le en ligne!
Utilise le théorème de Tunnell comme les autres réponses. J'utilise une seule équation comme suit.
Nous vérifions les cas
k=8
etk=32
vérifions s'il y a deux fois plus de solutionsk=8
quek=32
. Cela se fait en ajoutantk-16
àt
chaque fois que nous trouvons une solution. C'est soit +16 dans le cask=32
ou -8 dans le cask=8
. Globalement, le nombre est congru sit
est identique à sa valeur initiale à la fin de la fonction.Il est nécessaire de trouver toutes les solutions à l'équation de test. Je vois de nombreuses réponses tester entre +/-
sqrt n
. Il est parfaitement correct de tester également en dehors de ces limites s'il raccourcit le code, mais aucune solution ne sera trouvée car le côté gauche de l'équation dépasseran
. Ce que j'ai manqué au début, c'est que le négatif et le positifx,y,z
sont considérés séparément. On-3,0,3
obtient ainsi trois carrés9,0,9
et toutes les solutions doivent être comptées séparément (0 doit être compté une fois et9
doit être compté deux fois.)Code non golfé
la source