Краткое изложение
Для любого ввода x и y выполните сложную операцию и выведите соответствующий результат.
Как ваша программа должна работать
Учитывая входные данные x и y в виде z = x + yi , найдите z i-z
Если абсолютное действительное значение z i-z больше, чем абсолютная мнимая часть, выведите вещественную часть; наоборот, наоборот. Если оба значения равны, выведите одно из значений.
пример
x: 2
y: 0
Следовательно:
z = 2
z^(i-z) ~= 0.192309 + 0.159740i
Поскольку действительная часть имеет большее абсолютное значение, чем мнимая часть, программа возвращает
0.192309
Больше примеров
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
Гравитон
источник
источник
-2+i
может быть использован для этого (z^(i-z)=3-4i
так3>-4
противabs(-4)>abs(3)
).Ответы:
Желе ,
811 байтСпасибо Джонатану Аллану за обновление ответа с изменением правил.
Попробуйте онлайн!
источник
ı_*@µĊ,ḞAÞṪ
и у вас вполне может быть единственно допустимая запись (учитывая, что для изменения требуется максимальное значение в абсолютном выражении, например, которое-2+1j
возвращает,-4.0
а не3.0
).Python 2, 45 байт
Попробуйте онлайн - все тестовые случаи
Языки программирования часто используют
j
вместоi
. Так обстоит дело в Python. Посмотрите этот ТАК вопрос для получения дополнительной информации о том, почему.источник
Mathematica,
2122 байтаИзменить: Спасибо JungHwan Мин за сохранение 3 байт
Чистая функция, которая ожидает комплексное число в качестве аргумента. Если передано точное число, то будет возвращено точное число (например,
1/2
даетSqrt[2] Cos[Log[2]]
). Спецификация проблемы была отредактирована после того, как я опубликовал свое решение, чтобы указать, что следует использовать абсолютное значение. Лучшее, что я могу придумать для этого,MaximalBy[ReIm[#^(I-#)],Abs][[1]]&
илиLast@MaximalBy[Abs]@ReIm[#^(I-#)]&
оба34
байта.источник
Max
не нужно быть головой. Он возвращает максимальное значение независимо от глубины вводаList
(например,Max[1, {2, {3}}]
возвращает3
). Кроме того, вопрос только указывает, что вы печатаете значения, так что я не думаю, что вам это понадобитсяN
:Max@ReIm[#^(I-#)]&
будет работать.Октава , 29 байт
Это определяет анонимную функцию. Это работает и в MATLAB.
Попробуйте онлайн!
объяснение
Поэлементное деление (
./
) числаz^(i-z)
на массив[1 i]
и взятие действительной части дает массив с действительной и мнимой частямиz^(i-z)
.источник
MATL , 10 байт
Попробуйте онлайн! Или проверьте все тестовые случаи .
объяснение
Рассмотрим ввод
-2+8i
в качестве примера.источник
TI-BASIC,
40,32,3129 байтСохраненный байт благодаря @Conor O'Brien
Принимает ввод как комплексное число на
Z
переменную .TI-BASIC использует свою собственную кодировку, вы можете найти ее здесь .
источник
Pyth, 16 байт
источник
Perl 6 , 24 байта
$_
возможно сложный аргумент;$_ ** (i - $_)
является выражением, которое будет вычислено;.reals
этоComplex
метод, который возвращает список действительных и мнимых частей; и, наконец,.max
возвращает большее из двух.источник
C (GCC)
9379 + 4 (-lm
) =9783 байтаСохранено 14 байтов благодаря @ceilingcat!
Включение заголовка
complex.h
длиннее, чем ¯ \ _ (ツ) _ / ¯Попробуйте онлайн!
источник
-
,l
, иm
.gcc file.c -o exe
, поэтому этот флаг добавляет 4 байт: пространство,-
,l
, иm
. (По крайней мере, я так считаю при компиляции.)Рубин ,
2535 байтРЕДАКТИРОВАТЬ : Исправлено, чтобы соответствовать новому правилу абсолютного значения.
Попробуйте онлайн!
Это создает анонимную функцию.
источник
TI-Basic,
1916 байтовreal(
иimag(
являются двухбайтовыми токенами.Запустить с
5+3i:prgmNAME
(5+3i
быть аргументом,NAME
именем программы)источник
R, 38 байт
Анонимная функция. Принимает (возможно) комплексное число
z
, переводит его в указанную степень, а затем возвращаетmax
всеRe
и всеIm
дополнительные части.источник
Аксиома, 60 байт
код теста и результаты; Я следую, как другой, прецедентный вариант вопроса ...
источник
C # - 189 байт
Удобочитаемый:
Объяснение: Решил не использовать никаких сложных библиотек.
Пусть это будет равномея где
затемR (Zя - г) = m cosa а также Я (Zя - г) = м грехa
Максимальное абсолютное значение может быть определеносозa а также грехa условия, при этом они равны в 12√ (отсюда и тест 2с2< 1 ).
Как уже упоминалось, повышение до сложного показателя зависит от выбора конкретного среза ветви (например,Z= 1 может быть ея π или е3 я π - поднимать это до я дает реальную часть е- π или е- 3 π соответственно), однако, я только что использовал соглашение t ∈ [ 0 , 2 π) согласно вопросу.
источник
APL (Dyalog Unicode) , 18 байт
18 байтов ( https://github.com/abrudz/SBCS/ )
28 байтов (UTF-8)
A является комплексным числом ajb = a + bi
Попробуйте онлайн!
источник