Учитывая два целых числа, которые могут быть отрицательными, нулевыми или положительными, a
и b
(взятые в любом приемлемом формате, включая ввод простого комплексного числа ), преобразуйте его туда, a + bi
где i
находится мнимое число (квадратный корень из отрицательного числа). Затем возведите в степень третьей входной переменной (положительное целое число), c
как . Затем вы должны получить что-то подобное . Вы должны затем выход, или возвращение, и в любом подходящем формате ( включая вывод простой комплексное число ).(a + bi)c
d + ei
d
e
Ввод и вывод могут быть взяты или выведены в любом порядке.
Примеры:
5, 2, 2 -> 21, 20
1, 4, 2 -> -15, 8
-5, 0, 1 -> -5, 0
Ответы:
Mathematica, 17 байт
Попробуйте онлайн!
-8 байт от алефальфа
но ........ правила изменились ...... так
Mathematica, 5 байтов
источник
{Re@#,Im@#}&
->ReIm
@#&
.#^#2&
или простоPower
.Python 3 , 3 байта
Попробуйте онлайн!
Ввод и вывод в виде комплексных чисел.
Python 3 , 47 байт
Попробуйте онлайн!
Ввод и вывод в виде целых чисел
Python 2 ,
6260 байт-2 байта благодаря @ Леонард
Попробуйте онлайн!
не использует тип комплексного числа
источник
Javascript (ES6),
5150 байтf(a)(b)(c)
[d, e]
объяснение
источник
Пари / ГП , 36 байт
Попробуйте онлайн!
Пари / ГП , 36 байт
Попробуйте онлайн!
источник
На самом деле , 1 байт
Попробуйте онлайн!
Обратите внимание, что правила изменились, и комплексные числа являются допустимыми типами ввода / вывода (к сожалению, это превращает сообщение в задачу «выполнить это возведение в степень»). Оригинальный ответ ниже.
На самом деле , 3 байта
Попробуйте онлайн!
Возвращает значения, разделенные новой строкой. Принимает входные данные в обратном порядке и возвращает результаты в обратном порядке (см. Ссылку tio).
источник
Желе , 1 байт
Попробуйте онлайн!
Спасибо мистеру Xcoder за то, что он предупредил меня об обновлениях правил (-6 в результате).
Спасибо кому-то, что предупредил меня об обновлениях правил (-2 в результате).
Первый аргумент:
(a+bj)
Второй аргумент:
c
Возвращает:
(d+ej)
источник
ḅı*
, так как правила изменились, и теперь вы можете вывести простое комплексное число.R , 3 байта
Это становится скучно. Если вход и выход разрешены как комплексное число, то есть встроенная функция для степенной функции.
Например:
или
источник
05AB1E ,
20191716 байтовПопробуйте онлайн! Принимает три отдельных входа в порядке
b, a, c
и выводит массив[d, e]
. Изменить: Сохранено 2 байта благодаря @Datboi. Сохранено 1 байт благодаря @Adnan. Объяснение:источник
'jì+³m
.1 0‚
сTS
на -2 байт :)P
автоматически векторизует, так что вам не нужно€
.C # (.NET Core) ,
6238 байтПопробуйте онлайн!
источник
.Real
и .Imaginary` в своем ответе .. Согласно правилу « Вы должны затем выход или возвращение,d
иe
в любом подходящем формате (не включая вывод простой комплексное число) » вы не разрешается только выводить Комплексное число.Пиф,
51252 байтаБерет
c
сначала, а затемa+bj
.7 байтов стандартного шаблона, потому что вывод в виде мнимого числа запрещен.Это было повторно разрешено! Ура! А если принимать комплексное число, являющееся разумным вводом, мы можем вырезать дополнительные 3 байта!Предыдущие решения:
Когда комплексные числа не были разумными входными данными.
Когда комплексные числа не были разумными выходами.
Тестирование.
источник
05AB1E , 1 байт
Попробуйте онлайн!
Вход:
c\n(a+bj)
Выход:
(d+ej)
источник
'jì+³m
это другой способ подсчета числа.J,
10,7, 1 байтсПринимает
c
в качестве правильного аргумента и комплексное числоajb
(как вы представляетеa + bi
в J) в качестве левого аргумента.Попробуйте онлайн!
Другие решения
7 байт
Принимает комплексное число, введенное в виде списка.
10 байт
Это выведено
a + bi
в спискеa b
.Я хотел попробовать что-нибудь симпатичное,
^~&.(j./)
но обратноеj./
явно не определено. На самом деле,^~&.(+.inv)
работает, и вы можете сделать то,^&.(+.inv)
что также 10 байтов, если вы измените порядок, в котором вы берете аргументы.источник
TI-BASIC,
25228 байтПринимает комплексное число и показатель степени в качестве входных данных и сохраняет выходные данные в
Ans
виде комплексного числа. Резкое падение байтов из-за ослабленных ограничений на ввод / вывод.источник
imag({iAns,Ans
в последней строке (i
я имею в виду комплексное число i ).imag({i,1}(A+Bi)^C
.6502 подпрограммы машинного кода ,
199187185 байтовЭто позиционно-независимый код, просто поместите его где-нибудь в ОЗУ и вызовите его
jsr
инструкции.Подпрограмма принимает (сложное) основание в виде двух 16-битных целых чисел со знаком (дополнения 2, little-endian) в
$fb/$fc
(вещественном) и$fd/$fe
(мнимом), а показатель степени - в виде 8-разрядного целого числа без знака вY
регистре.Результат возвращается в
$26/$27
(реальный) и$28/$29
(мнимый).объяснение
Это все еще интересная задача для процессора 6502, поскольку нет никаких инструкций даже для умножения. Подход прост, реализует сложное умножение и выполняет его так часто, как того требует показатель степени. Игра в гольф выполняется путем отказа от подпрограмм, вместо этого создается своего рода «ветвь спагетти», поэтому код для выполнения простого 16-битного умножения, который требуется многократно, используется повторно с наименьшими возможными издержками. Вот прокомментированная разборка:
Пример программы, использующей его (C64, источник ассемблера в ca65 -syntax ):
Онлайн демо
Использование:
sys49152,[a],[b],[c]
, например ,sys49152,5,2,2
(выход:21+20i
)источник
Dyalog APL , 10 байт
Попробуйте онлайн!
a
левый аргумент,b
правый аргумент иc
вводная подсказка.Возвращает комплексное число в формате
dJe
.источник
MATL , 1 байт
Входы
a+jb
,c
.Попробуйте онлайн!
Старая версия: несложный ввод и вывод, 8 байтов
Входной заказ
b
,a
,c
.Попробуйте онлайн!
объяснение
источник
C (gcc) , 34 байта
Попробуйте онлайн!
источник
восьмых , 38 байт
Код
SED (диаграмма эффекта стека) - это:
c a b -- (a + bi) ^ c
Предупреждение :
a + bi
осталось в r-стеке , но это не влияет на последующие вычисления.Неуправляемая версия с комментариями
Пример и использование
Вывод предыдущего кода
источник
Октава / MATLAB, 6 байтов
Анонимная функция, которая вводит два числа и выводит их мощность.
Попробуйте онлайн !
Старая версия: несложный ввод и вывод, 30 байтов
Анонимная функция, которая вводит три числа и выводит массив из двух чисел.
Попробуйте онлайн!
источник
Perl 6 ,
29 26 20 1911 байтПопробуй это
Попробуй это
Попробуй это
Попробуй это
С изменением выходных ограничений оно может быть дополнительно уменьшено:
Попробуй это
***
Часть анализируется как** *
потому , что**
оператор инфиксным длиннее , чем*
инфиксный оператор.Expanded:
источник
(*+* *i)***
.R, 25 байт
самое простое - поскольку вывод комплекса разрешен.
источник
Casio-Basic, 6 байтов
Измените правила, чтобы разрешить ввод и вывод в виде комплексных чисел, что значительно сократило этот показатель.
3 байта для функции, +3 для ввода
a,b
в поле параметров.источник