Вызов
Учитывая ввод целого числа (где ), выведите график от до x = 3 включительно.
Где - действительная часть комплексного числа .
Обратите внимание, что
Выход
Вывод может быть в любой форме, которую вы пожелаете (например, изображение или окно и т. Д.). ASCII искусство запрещено.
Граф не должен иметь осей (чтобы позволить языкам без встроенных графических функций конкурировать).
Если изображение выводится, каждая его сторона должна быть длиннее 500 пикселей. Точно так же сюжет должен заполнить изображение как можно лучше.
Минимальный интервал между участками составляет 0,05.
Векторная графика разрешена.
Примеры
Для ввода 2
:
Для ввода 1
:
Вы должны указать соответствующие ответы в своем ответе (n = 1 и n = 2).
выигрыш
Самый короткий код в байтах побеждает.
code-golf
math
graphical-output
complex-numbers
trigonometry
Бета распад
источник
источник
ASCII art is disallowed.
(ಥ﹏ಥ)Ответы:
MATL,
22 1816 байтСпасибо @LuisMendo за дополнительные -2 байта!
Попробуйте это на matl.suever.net
источник
TI-Basic,
2621 байтВыход для N = 2:
источник
Баш + Гнуплот,
5645 байт(-11 байт благодаря Noiralef!)
Сохраняет полученный график как
png
изображение с именемA
в текущем рабочем каталоге.Пример выходов
Для n = 1 :
Для n = 2 :
источник
gnuplot -e "se t png;p[-3:3]real((-2)**x)">A
Python 3 с matplotlib ,
10372 байта-12 байт благодаря DSM (модуль используется вместе
matplotlib
называетсяpylab
с необходимой функциональностью «что делает Python в РЕПЛ больше как Matlab» - странно, но это правда)-18 скорее как результат (pylab имеет множество функций Numpy тоже!)
- 1 байт благодаря Ajasja (замена
arange(-60,61)/20+0j
наarange(121)/20-3+0j
)п = 2,1
источник
from matplotlib.pyplot import*
если вы запустите ipython с флагом --pylab --matplotlib?%pylab
даёт вам и клочок, и если вы в тетради, вам не нужно шоу в конце :)Mathematica, 41 байт
Вывод выглядит точно так, как показано в задании, за исключением шрифта чисел (который, я подозреваю, был создан с помощью Wolfram Alpha).
источник
MATLAB,
3530 байтЭто определяет любую функцию. Вывод осуществляется через новое окно с выводом векторной графики с изменяемым размером. MATLAB
plot
автоматически игнорирует мнимую часть y-координат, пока вы предоставляете соответствующие x-координаты. Следующий вывод предназначен дляn=3
.источник
R, 30 байт
n
= 1n
= 2источник
x=seq(-3,3,.05);plot(x,Re((0i-n)^x))
R, 29 байт
n
предоставляется через стандартный ввод. Результат для n = 1:И для n = 2:
источник
n
как в других ответах, и сбрить пять символов из вашего ответа? Во всяком случае, сумасшедший ответ. Я всегда забываю оcurve
.n
. Ответы matlab, matl, TI-Basic и mathematica принимают ввод как stdin (насколько я понимаю), а ответы python и VBA создают функцию. Даже если это разрешено, это просто вопрос личного вкуса: мне просто не нравятся предопределенные переменные как способ ввода.Excel VBA,
168160147138 байт (ячейки в пикселях в масштабе 100x)Сохранено 8 байтов благодаря KyleKanos.
Сохранено 22 байта благодаря Taylor Scott.
Отформатированный, это выглядит так:
Интересный факт: VBA не имеет встроенный
pi
переменный, мы должны оценить его как функцию рабочего листа , где он делает существует.n = 1 n = 2
Я начал с версии диаграммы в 193 байта, но она получилась лучше.
n = 1 n = 2
источник
(-n)^x
вместо жесткого пи пи?atn(1)*4
для пи?MATLAB,
3533 байтаСпасибо fo @flawr за удаление 2 байтов!
Это определяет анонимную функцию. Чтобы вызвать его с помощью ввода
2
, используйтеans(2)
(или назначьте функцию переменной, например, аf
затем используйтеf(2)
).Выход - векторная графика (окно с изменяемым размером). Интервал выборки по оси x определяется функцией автоматически
ezplot
, но, похоже, его более чем достаточно.В STDERR выдается предупреждение, потому что функция, переданная
ezplot
(@(x)real((-n)^x)
), не векторизована, но график сгенерирован.Пример для
n = 2
:источник
ezplot = la-z-plot
: D (я постоянно забываю об этом ...)ezplot
понравиться. К сожалению, нельзя сказать то же самоеfplot
, поэтому там нельзя сохранить ни одного байта.Блокнот Jupyter и Python 3; 53 байта
Три байта сохранены благодаря @Jonathan Allan.
источник
x=arange(-60,61)/20
для устранения проблем, выделенных DSM, стоимостью 2 байта. Если вы добавите0j
кarange
нему, его можно использовать для перехода кplot(x,(-n)**x)
сохранению 4.arange(121)
!Инкапсулированный PostScript; 232 байта
Теперь, поскольку это само векторное изображение ...
источник
TikZ + PGFPлот , 175 байтов
Скомпилируйте, например ,
latexmk -cd -f -pdf in.tex
для вывода в формате PDF. Во время компиляции у пользователя запрашиваетсяn
.Примеры выходных данных (преобразованы в png) для n = 1 и n = 2:
источник
Math.JS Grapher , 20 байтов
По счастливой случайности, эта графическая утилита - TC (По большей части, бесконечные циклы просто сбивают ее.), И по своей природе ее основной вывод - графики.
Как это работает
r(n)=
назначает функцию,r
которая принимает аргументn
для выраженияf(x)=re((-n)^x)
.re((-n)^x)
в значительной степени буква за буквой описание вызова. Но это назначает функциюf(x)
для этого, которая графически неявно выводит как линейный график.Как это проверить
Вы можете использовать этот сайт, пробить эту функцию там, а затем вызвать его с
r(input)
.Выход
источник
J ,
3736 байтСпасибо моему коллеге Маршаллу за руководство. -2 спасибо FrownyFrog.
Функция анонимного молчаливого префикса.
источник
20%~i:@60
может бытьi:@3j120
.Dyalog APL, 41 байт
Как это работает:
Команда пользователя
]chart
, в данном случае, имеет два вектора аргументов,x
аy
и участки графиков:Дляn = 1 :
Дляп = 2 :
источник
SmileBASIC, 82 байта
График заполняет весь экран, даже когда N меньше 1.
Когда N больше 1, вы можете масштабировать Y от -1 до 1, разделив его на
n^3
. Я уже делаюn^x
, иn^x / n^3
можно упростить доn^(x-3)
. Однако, когда N меньше 1, я долженn^-3
вместо этого разделить Y на . Это эквивалентноn^(x+3)
.Я могу использовать,
n^(x-3*sign(n-1))
чтобы использовать,-3
еслиn>1
и+3
еслиn<1
Изображения скоро появятся
источник
Excel VBA, 133 байта
Скрипт непосредственного окна, который принимает входные данные
[A1]
и выводитChart
объект вSheet1
объект.Ungolfed
Полная
Sub
рутинная версия. Ввод / вывод не изменяется.Выход
Где вход,n = 1
Где вход,n = 3
источник
Юлия 0,6 с Plots.jl, 46 байтов
Это нужно представление Юлии!
Здесь не много для игры в гольф, за исключением (ab) использования перегрузки оператора для сохранения байтов при определении функции и использования
0im-n
для усложнения входного числа, которое я обычно мог бы использоватьComplex(n)
. Это необходимо, потому что в Julia, по соображениям стабильности типов ,^
оператор возвращает результаты Complex только тогда, когда ввод сам по себе Complex. Так что здесь мы делаем его комплексным числом, добавляя0im
т.е. 0i.Одна из замечательных особенностей пакета Plots.jl заключается в том, что он автоматически выбирает используемый бэкэнд в зависимости от того, какие пакеты печати вы установили и откуда запускаете
plot
команду. Вышеуказанный участок был создан с бэкэндом GR , но если бы я его не установил (или если бы я явноplotly()
выполнил команду, как я сделал для этого), он использовал бы более интерактивный бэкэнд Plotly и вывел бы это (что выглядит как чуть-чуть приятнее ИМО)Там даже есть бэкэнд UnicodePlots для печати графика в терминале (или сохранения в текстовом файле) с использованием символов Unicode и цветовых кодов. SE продолжает портить выравнивание графика, если я пытаюсь вставить его напрямую, так что вот снимок экрана терминала:
PS: альтернативная формула,R e ( ( - n )Икс) = nИксc o s ( π x ) , выходит на ту же длину:
источник