Wyzwanie
Biorąc pod uwagę dane wejściowe całkowite, (gdzie ), wyjście wykres z z włącznie.
Gdzie to część rzeczywista liczby zespolonej .
Należy zauważyć, że
Wydajność
Dane wyjściowe mogą być w dowolnej formie (np. Obraz lub okno itp.). Sztuka ASCII jest niedozwolona.
Wykres nie musi mieć osi (aby umożliwić konkurowanie językom bez wbudowanych funkcji graficznych).
Jeśli obraz jest wyprowadzany, każda ze stron musi być dłuższa niż 500 pikseli. Podobnie fabuła musi wypełniać obraz najlepiej, jak to możliwe.
Minimalny odstęp między wykresami wynosi 0,05.
Grafika wektorowa jest dozwolona.
Przykłady
Dla danych wejściowych 2
:
Dla danych wejściowych 1
:
Musisz podać odpowiednie wyniki w swojej odpowiedzi (n = 1 in = 2).
Zwycięski
Najkrótszy kod w bajtach wygrywa.
code-golf
math
graphical-output
complex-numbers
trigonometry
Rozpad beta
źródło
źródło
ASCII art is disallowed.
(ಥ﹏ಥ)Odpowiedzi:
MATL,
22 1816 bajtówDzięki @LuisMendo za dodatkowe -2 bajty!
Wypróbuj na matl.suever.net
źródło
TI-Basic,
2621 bajtówDane wyjściowe dla N = 2:
źródło
Bash + Gnuplot,
5645 bajtów(-11 bajtów dzięki Noiralef!)
Zapisuje wynikowy wykres jako
png
obraz o nazwieA
w bieżącym katalogu roboczym.Przykładowe wyniki
Dla n = 1 :
Dla n = 2 :
źródło
gnuplot -e "se t png;p[-3:3]real((-2)**x)">A
Python 3 z matplotlib ,
10372 bajty-12 bajtów dzięki DSM (moduł jest instalowany wraz z
matplotlib
wywoływanąpylab
z niezbędną funkcjonalnością „czyniąc Pythona w replice bardziej podobnym do Matlaba” - dziwne, ale prawdziwe!)-18 więcej w rezultacie (pylab ma również wiele funkcji numpy!)
- 1 bajt dzięki Ajasja (zamiast
arange(-60,61)/20+0j
zarange(121)/20-3+0j
)n = 2,1
źródło
from matplotlib.pyplot import*
jeśli uruchomisz ipython z flagą --pylab --matplotlib?%pylab
daje ci też odrętwienie, a jeśli jesteś w zeszycie, nie potrzebujesz programu na końcu :)Mathematica, 41 bajtów
Dane wyjściowe wyglądają dokładnie tak, jak pokazano w wyzwaniu, z wyjątkiem czcionki liczb (która, jak podejrzewam, została stworzona za pomocą Wolfram Alpha).
źródło
MATLAB,
3530 bajtówTo określa dowolną funkcję. Dane wyjściowe są w nowym oknie ze skalowalnym wyjściem grafiki wektorowej. MATLAB
plot
automatycznie ignoruje urojoną część współrzędnych y, pod warunkiem, że podasz odpowiednie współrzędne x. Poniższy wynik jest dlan=3
.źródło
R, 30 bajtów
n
= 1n
= 2źródło
x=seq(-3,3,.05);plot(x,Re((0i-n)^x))
R, 29 bajtów
n
jest zapewniany przez stdin. Wynik dla n = 1:A dla n = 2:
źródło
n
takiej jak inne odpowiedzi i zgolić pięć znaków z odpowiedzi? W każdym razie szalona odpowiedź. Zawsze o tym zapominamcurve
.n
. Odpowiedzi na matlab, matl, TI-Basic i mathematica przyjmują dane wejściowe jako standardowe (o ile je rozumiem), podczas gdy odpowiedzi na python i VBA tworzą funkcję. Nawet jeśli jest to dozwolone, to tylko kwestia osobistego gustu: po prostu nie lubię predefiniować zmiennych jako sposobu wprowadzania danych.Excel VBA,
168160147138 bajtów (komórki jako piksele w skali 100x)Zaoszczędzono 8 bajtów dzięki KyleKanos
Zaoszczędzono 22 bajtów dzięki Taylor Scott
Sformatowane wygląda to tak:
Ciekawostka: VBA nie posiada wbudowanej
pi
zmiennej więc musimy ocenić go jako funkcji arkusza gdzie robi istnieje.n = 1 n = 2
Zacząłem z wersji wykresu na 193 bajtów, ale nie dostać ładniejsze efekty.
n = 1 n = 2
źródło
(-n)^x
zamiast twardego kodu pi?atn(1)*4
pi nie jest krótsze ?MATLAB,
3533 bajtówDzięki za @flawr za usunięcie 2 bajtów!
Definiuje to anonimową funkcję. Aby wywołać go z wejściem
2
, użyjans(2)
(lub przypisz funkcję do zmiennej, takiej jak,f
a następnie użyjf(2)
).Wyjście to grafika wektorowa (okno o zmiennym rozmiarze). Interwał próbkowania na osi x jest określany automatycznie przez
ezplot
funkcję, ale wydaje się, że to więcej niż wystarcza.Ostrzeżenie jest generowane w STDERR, ponieważ funkcja przekazana do
ezplot
(@(x)real((-n)^x)
) nie jest wektoryzowana, ale generowany jest wykres.Przykład dla
n = 2
:źródło
ezplot = la-z-plot
: D (ciągle o tym zapominam ...)ezplot
ten sposób. Niestety nie można tego samego powiedziećfplot
, więc nie można tam zapisać żadnego bajtu.Notatnik Jupyter i Python 3; 53 bajty
Trzy bajty zaoszczędzone dzięki @Jonathan Allan.
źródło
x=arange(-60,61)/20
do rozwiązania problemów wyróżnionych przez DSM kosztem 2 bajtów. Jeśli dodasz0j
do tegoarange
, możesz go użyć do przejścia naplot(x,(-n)**x)
oszczędzanie 4.arange(121)
!Encapsulated PostScript; 232 bajty
Teraz, ponieważ jest to sam obraz wektorowy ...
źródło
TikZ + PGFPlots , 175 bajtów
Skompilować z, na przykład ,
latexmk -cd -f -pdf in.tex
do formatu PDF. Podczas kompilacji użytkownik jest monitowanyn
.Przykładowe dane wyjściowe (przekonwertowane na png) dla n = 1 in = 2:
źródło
Math.JS Grapher , 20 bajtów
Według zwykłego fluke, tym narzędziem graficznym jest TC (w większości przypadków pętle Infinite po prostu powodują awarię.), A z natury jego głównym wyjściem są wykresy.
Jak to działa
r(n)=
przypisuje funkcję,r
która przenosi argumentn
do wyrażeniaf(x)=re((-n)^x)
.re((-n)^x)
jest dosłownie litera po literze opis wyzwania. Ale przypisuje to funkcjęf(x)
, którą grapher domyślnie wyprowadza jako wykres liniowy.Jak to przetestować
Możesz skorzystać z tej witryny, wcisnąć tam tę funkcję, a następnie wywołać ją za pomocą
r(input)
.Wydajność
źródło
J ,
3736 bajtówDziękuję mojemu koledze Marshallowi za wskazówki. -2 dzięki FrownyFrog.
Anonimowa ukryta funkcja prefiksu.
źródło
20%~i:@60
może byći:@3j120
.Dyalog APL, 41 bajtów
Jak to działa:
Polecenie użytkownika
]chart
, w tym przypadku przyjmuje dwa argumenty wektorowej,x
ay
i działki wykresy:źródło
SmileBASIC, 82 bajty
Wykres wypełnia cały ekran, nawet gdy N jest mniejsze niż 1.
Gdy N jest większe niż 1, można przeskalować Y, aby zawierało się między -1 a 1, dzieląc je przez
n^3
. Już robięn^x
in^x / n^3
można to uprościćn^(x-3)
. Jednak gdy N jest mniejsze niż 1, muszęn^-3
zamiast tego podzielić Y. Jest to równoważne zn^(x+3)
.Mogę użyć
n^(x-3*sign(n-1))
do użycia-3
jeślin>1
i+3
jeślin<1
Zdjęcia już wkrótce
źródło
Excel VBA, 133 bajty
Natychmiastowy skrypt okna, który pobiera dane wejściowe
[A1]
i wysyłaChart
obiekt doSheet1
obiektu.Bez golfa
Pełna
Sub
rutynowa wersja. I / O jest niezmieniony.Wydajność
źródło
Julia 0.6 z Plots.jl, 46 bajtów
To wymagało reprezentacji Julii!
Nie ma tu wiele do golfa, z wyjątkiem (ab) użycia przeciążenia operatora, aby zaoszczędzić bajty na definicji funkcji, i użycia,
0im-n
aby skomplikować liczbę wejściową tam, gdzie zwykle mogłem jej użyćComplex(n)
. To konieczne, ponieważ w Julii, dla stabilności typu powodów^
operator zwraca Complex wyniki tylko wtedy, gdy wejście jest złożona sama. Więc tutaj robimy liczbę zespoloną, dodając0im
np. 0i.Jedną fajną rzeczą w pakiecie Plots.jl jest to, że automatycznie wybiera backend do użycia na podstawie zainstalowanych pakietów wydruku i miejsca, w którym uruchamiasz
plot
polecenie. Powyższy wykres został utworzony za pomocą backendu GR , ale gdybym go nie zainstalował (lub gdybym wyraźnie uruchomiłplotly()
polecenie tak jak w tym przypadku), użyłby bardziej interaktywnego backendu Plotly i wypuściłby to (co wygląda na odrobinę ładniejszy IMO):Istnieje nawet zaplecze UnicodePlots , aby wydrukować wykres w terminalu (lub zapisać do pliku tekstowego) przy użyciu znaków Unicode i kodów kolorów. SE ciągle psuje wyrównanie fabuły, jeśli spróbuję go bezpośrednio wkleić, więc oto zrzut ekranu terminala:
PS: Alternatywna formuła, , ma tę samą długość:Re((−n)x)=nxcos(πx)
źródło