Étant donné deux nombres entiers, qui peuvent être négatifs, zéro ou positifs, a
et b
(pris dans n'importe quel format raisonnable, y compris la saisie d'un nombre complexe simple ), convertissez-le en a + bi
où i
est le nombre imaginaire (racine carrée du négatif). Ensuite, augmentez-la à la puissance d'une troisième variable d'entrée (entier positif), c
comme pour . Vous devriez alors vous retrouver avec quelque chose comme . Vous devez ensuite sortir, ou retourner, et dans n'importe quel format raisonnable ( y compris sortir un nombre complexe simple ).(a + bi)c
d + ei
d
e
L'entrée et la sortie peuvent être prises ou sorties dans n'importe quel ordre.
Exemples:
5, 2, 2 -> 21, 20
1, 4, 2 -> -15, 8
-5, 0, 1 -> -5, 0
Réponses:
Mathematica, 17 octets
Essayez-le en ligne!
-8 octets d'alephalpha
mais ........ les règles ont changé ...... donc
Mathematica, 5 octets
la source
{Re@#,Im@#}&
->ReIm
@#&
.#^#2&
ou tout simplementPower
.Python 3 , 3 octets
Essayez-le en ligne!
Entrée et sortie sous forme de nombres complexes.
Python 3 , 47 octets
Essayez-le en ligne!
Entrée et sortie sous forme d'entiers
Python 2 ,
6260 octets-2 octets grâce à @Leonhard
Essayez-le en ligne!
n'utilise pas de type de numéro complexe
la source
Javascript (ES6),
5150 octetsf(a)(b)(c)
[d, e]
Explication
la source
Pari / GP , 36 octets
Essayez-le en ligne!
Pari / GP , 36 octets
Essayez-le en ligne!
la source
En fait , 1 octet
Essayez-le en ligne!
Notez que les règles ont changé et que les nombres complexes sont des types d'E / S valides (malheureusement, cela transforme la publication en un défi "effectuer cette exponentiation"). Réponse originale ci-dessous.
En fait , 3 octets
Essayez-le en ligne!
Renvoie les valeurs séparées par une nouvelle ligne. Prend les entrées dans l'ordre inverse et renvoie les résultats dans l'ordre inverse (voir le lien tio).
la source
Gelée , 1 octet
Essayez-le en ligne!
Merci à M. Xcoder de m'avoir alerté des mises à jour des règles (-6 en conséquence).
Merci à quelqu'un de m'avertir des mises à jour des règles (-2 en conséquence).
Premier argument:
(a+bj)
Deuxième argument:
c
Renvoie:
(d+ej)
la source
ḅı*
, car les règles ont changé et vous êtes maintenant autorisé à générer un nombre complexe simple.R , 3 octets
Cela devient ennuyeux. Si l'entrée et la sortie sont autorisées en tant que nombre complexe, il existe une fonction intégrée pour une fonction de puissance.
Par exemple:
ou
la source
05AB1E ,
20191716 octetsEssayez-le en ligne! Prend trois entrées distinctes dans l'ordre
b, a, c
et sort un tableau[d, e]
. Edit: sauvé 2 octets grâce à @Datboi. 1 octet enregistré grâce à @Adnan. Explication:la source
'jì+³m
.1 0‚
parTS
pour -2 octets :)P
vectorise automatiquement, vous n'avez donc pas besoin de€
.C # (.NET Core) ,
6238 octetsEssayez-le en ligne!
la source
.Real
et .Imaginary` dans votre réponse .. Conformément à la règle " Vous devez ensuite produire ou renvoyer,d
ete
dans tout format raisonnable (sans inclure la sortie d'un nombre complexe simple) ", vous n'êtes pas autorisé à simplement afficher le Nombre complexe.Pyth,
51252 octetsPrend en
c
premier, suivi dea+bj
.7 octets de passe-partout car la sortie apparemment sous forme de nombre imaginaire est interdite.Il a été ré-autorisé! Hourra! Et avec la prise d'un nombre complexe étant une entrée raisonnable, nous pouvons couper 3 octets supplémentaires!Solutions précédentes:
Lorsque les nombres complexes n'étaient pas des entrées raisonnables.
Lorsque les nombres complexes n'étaient pas des sorties raisonnables.
Suite de tests.
la source
05AB1E , 1 octet
Essayez-le en ligne!
Entrée:
c\n(a+bj)
Sortie:
(d+ej)
la source
'jì+³m
c'est une façon différente de calculer le nombre.J,
10,7, 1 octetsPrend
c
comme bon argument et le nombre complexeajb
(comment vous représenteza + bi
en J) comme argument de gauche.Essayez-le en ligne!
Autres solutions
7 octets
Prend l'entrée de nombre complexe comme une liste.
10 octets
Cela a sorti le
a + bi
dans la listea b
.Je voulais essayer quelque chose de mignon
^~&.(j./)
mais l'inverse dej./
n'est évidemment pas défini. En fait,^~&.(+.inv)
ça marche et vous pouvez faire ça^&.(+.inv)
qui est également de 10 octets si vous inversez l'ordre dans lequel vous prenez les arguments.la source
TI-BASIC,
25228 octetsPrend le nombre complexe et l'exposant en entrée et stocke la sortie en
Ans
tant que nombre complexe. Chute drastique d'octets en raison de restrictions assouplies sur l'entrée / sortie.la source
imag({iAns,Ans
dans la dernière ligne (i
je veux dire le nombre complexe i ).imag({i,1}(A+Bi)^C
.6502 code machine sous - programme,
199187185 octetsCeci est un code indépendant de la position, il suffit de le placer quelque part dans la RAM et de l'appeler avec un
jsr
instruction.La routine prend la base (complexe) comme deux entiers signés 16 bits (complément à 2, petit-boutien) en
$fb/$fc
(réel) et$fd/$fe
(imaginaire), et l'exposant comme un entier non signé 8 bits dans leY
registre.Le résultat est retourné en
$26/$27
(réel) et$28/$29
(imaginaire).Explication
C'est toujours un défi intéressant sur le processeur 6502 car il n'y a pas d'instructions pour même multiplier. L'approche est simple, mettant en œuvre une multiplication complexe et l'exécutant aussi souvent que l'exposant l'exige. Le golf se fait en évitant les sous-programmes, au lieu de créer une sorte de "spaghetti de branche", donc le code pour faire une multiplication simple de 16 bits qui est nécessaire plusieurs fois est réutilisé avec le plus bas possible. Voici le démontage commenté:
Exemple de programme l'utilisant (C64, source d'assembly dans ca65 ca65):
Démo en ligne
Utilisation:
sys49152,[a],[b],[c]
par exemplesys49152,5,2,2
(Output:21+20i
)la source
Dyalog APL , 10 octets
Essayez-le en ligne!
a
est l'argument de gauche, l'argument deb
droite etc
via l'invite de saisie.Renvoie un nombre complexe au format
dJe
.la source
MATL , 1 octet
Les entrées sont
a+jb
,c
.Essayez-le en ligne!
Ancienne version: entrée et sortie non complexes, 8 octets
Commande d' entrée est
b
,a
,c
.Essayez-le en ligne!
Explication
la source
C (gcc) , 34 octets
Essayez-le en ligne!
la source
8e , 38 octets
Code
SED (Stack Effect Diagram) est:
c a b -- (a + bi) ^ c
Avertissement :
a + bi
est laissé allumé r-stack , mais cela n'affecte pas les calculs ultérieurs.Version non golfée avec commentaires
Exemple et utilisation
Sortie du code précédent
la source
Octave / MATLAB, 6 octets
Fonction anonyme qui entre deux nombres et délivre leur puissance.
Essayez-le en ligne !
Ancienne version: entrée et sortie non complexes, 30 octets
Fonction anonyme qui entre trois nombres et sort un tableau de deux nombres.
Essayez-le en ligne!
la source
Perl 6 ,
29 26 20 1911 octetsEssayez-le
Essayez-le
Essayez-le
Essayez-le
Avec le changement des restrictions de sortie, il peut être encore réduit:
Essayez-le
La
***
pièce est analysée** *
car l'**
opérateur infixe est plus long que l'*
opérateur infixe.Étendu:
la source
(*+* *i)***
.R, 25 octets
plus simple - car la sortie du complexe est autorisée.
la source
Casio-Basic, 6 octets
Modifiez les règles pour autoriser l'entrée et la sortie, car les nombres complexes ont considérablement réduit la durée.
3 octets pour la fonction, +3 à saisir
a,b
dans la case des paramètres.la source