Le récapitulatif
Étant donné n'importe quelle entrée x et y , effectuez une opération complexe et imprimez un résultat correspondant.
Comment votre programme devrait fonctionner
Étant donné une entrée x et y sous la forme z = x + yi , trouvez z i-z
Si la valeur réelle absolue de z i-z est supérieure à la partie imaginaire absolue, imprimez la partie réelle; vice versa pour l'inverse. Si les deux valeurs sont égales, imprimez l'une des valeurs.
Exemple
x: 2
y: 0
Donc:
z = 2
z^(i-z) ~= 0.192309 + 0.159740i
Puisque la partie réelle a une valeur absolue plus grande que la partie imaginaire, le programme renvoie
0.192309
Plus d'exemples
z = 1+i >> 0.5
z = i >> 1
z = 0.5 >> 1.08787
z = -2+8i >> 2.22964E7
z = -10i >> 3.13112E7
code-golf
math
complex-numbers
Graviton
la source
la source
-2+i
pourrait être utilisé pour cela (z^(i-z)=3-4i
donc3>-4
vsabs(-4)>abs(3)
).Réponses:
Gelée ,
811 octetsMerci à Johnathan Allan d'avoir mis à jour la réponse avec le changement de règles.
Essayez-le en ligne!
la source
ı_*@µĊ,ḞAÞṪ
et vous aurez peut-être la seule entrée valide (étant donné le changement pour exiger la valeur maximale en termes absolus, telle que, par exemple,-2+1j
renvoie-4.0
plutôt que3.0
).Python 2, 45 octets
Essayez-le en ligne - tous les cas de test
Les langages de programmation utilisent souvent
j
au lieu dei
. C'est le cas en Python. Voir cette question SO pour plus d'informations sur pourquoi.la source
Mathematica,
2122 octetsEdit: Merci à JungHwan Min pour avoir économisé 3 btyes
Fonction pure qui attend un nombre complexe comme argument. Si un nombre exact est passé, alors un nombre exact sera retourné (par exemple
1/2
donneSqrt[2] Cos[Log[2]]
). La spécification du problème a été modifiée après avoir publié ma solution pour spécifier que la valeur absolue doit être utilisée. Le mieux que je puisse trouver pour cela estMaximalBy[ReIm[#^(I-#)],Abs][[1]]&
ouLast@MaximalBy[Abs]@ReIm[#^(I-#)]&
, les deux34
octets.la source
Max
n'a pas besoin d'être la tête. Il renvoie la valeur maximale quelle que soit la profondeur de l'entréeList
(par exemple,Max[1, {2, {3}}]
retourne3
). En outre, la question spécifie uniquement que vous imprimez les valeurs, donc je ne pense pas que vous auriez besoinN
:Max@ReIm[#^(I-#)]&
fonctionnerait.Octave , 29 octets
Cela définit une fonction anonyme. Cela fonctionne aussi dans MATLAB.
Essayez-le en ligne!
Explication
Diviser (
./
) le nombrez^(i-z)
par élément par le tableau[1 i]
et prendre la partie réelle donne un tableau avec les parties réelle et imaginaire dez^(i-z)
.la source
MATL , 10 octets
Essayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
Considérez la saisie
-2+8i
comme exemple.la source
TI-BASIC,
40,32,3129 octetsUn octet enregistré grâce à @Conor O'Brien
Prend l'entrée comme un nombre complexe sur la
Z
variable.TI-BASIC utilise son propre encodage, vous pouvez le trouver ici .
la source
Pyth, 16 octets
la source
Perl 6 , 24 octets
$_
est l'argument éventuellement complexe;$_ ** (i - $_)
est l'expression à calculer;.reals
est uneComplex
méthode qui renvoie une liste des parties réelles et imaginaires; et.max
renvoie finalement le plus grand des deux.la source
C (GCC),
9379 + 4 (-lm
) =9783 octets14 octets enregistrés grâce à @ceilingcat!
L'inclusion de l'en-tête
complex.h
est plus longue que celle ¯ \ _ (ツ) _ / ¯Essayez-le en ligne!
la source
-
,l
etm
.gcc file.c -o exe
, donc ce drapeau ajoute 4 octets: l' espace,-
,l
, etm
. (Rubis ,
2535 octetsEDIT : corrigé pour se conformer à la nouvelle règle de valeur absolue.
Essayez-le en ligne!
Cela crée une fonction anonyme.
la source
TI-Basic,
1916 octetsreal(
etimag(
sont des jetons de deux octets.Exécuter avec
5+3i:prgmNAME
(5+3i
étant l'argument,NAME
le nom du programme.)la source
R, 38 octets
Fonction anonyme. Prend un nombre (éventuellement) complexe
z
, le porte à la puissance spécifiée, puis renvoiemax
la partieRe
al etIm
aginary.la source
Axiome, 60 octets
code et résultats des tests; je suis comme l'autre la version précédente de la question ...
la source
C # - 189 octets
Lisible:
Explication: décidé de ne pas utiliser de bibliothèques complexes.
la source
APL (Dyalog Unicode) , 18 octets
18 octets ( https://github.com/abrudz/SBCS/ )
28 octets (UTF-8)
⍵ est un nombre complexe ajb = a + bi
Essayez-le en ligne!
la source