Tantangan
Diberikan input integer, (di mana ), mengeluarkan grafik dari ke inklusif.
Di mana adalah bagian nyata dari bilangan kompleks .p
Perhatikan bahwa
Keluaran
Outputnya mungkin dalam bentuk apa pun yang Anda inginkan (misalnya gambar atau jendela, dll.). Seni ASCII dilarang.
Grafik tidak perlu memiliki sumbu (untuk memungkinkan bahasa tanpa fungsi grafik bawaan untuk bersaing).
Jika gambar dihasilkan, setiap sisi harus lebih panjang dari 500 piksel. Demikian pula, plot harus mengisi gambar sebaik mungkin.
Interval minimum antara plot adalah 0,05.
Grafik vektor diizinkan.
Contohnya
Untuk masukan dari 2
:
Untuk input 1
:
Anda harus memasukkan output yang sesuai dalam jawaban Anda (n = 1 dan n = 2).
Kemenangan
Kode terpendek dalam byte menang.
code-golf
math
graphical-output
complex-numbers
trigonometry
Peluruhan Beta
sumber
sumber
ASCII art is disallowed.
(ಥ﹏ಥ)Jawaban:
MATL,
22 1816 byteTerima kasih @LuisMendo untuk tambahan -2 byte!
Cobalah di matl.suever.net
sumber
TI-Basic,
2621 byteOutput untuk N = 2:
sumber
Bash + Gnuplot,
5645 byte(-11 byte, terima kasih kepada Noiralef!)
Menyimpan grafik yang dihasilkan sebagai
png
gambar yang disebutkanA
dalam direktori kerja saat ini.Contoh Keluaran
Untuk n = 1 :
Untuk n = 2 :
sumber
gnuplot -e "se t png;p[-3:3]real((-2)**x)">A
Python 3 dengan matplotlib ,
10372 byte-12 byte terima kasih kepada DSM (modul dipasang bersamaan
matplotlib
disebutpylab
dengan fungsionalitas yang diperlukan "membuat Python di repl lebih seperti Matlab" - aneh, tapi benar!)-18 lebih sebagai hasilnya (pylab memiliki banyak fungsi numpy juga!)
- 1 byte berkat Ajasja (diganti
arange(-60,61)/20+0j
denganarange(121)/20-3+0j
)n = 2,1
sumber
from matplotlib.pyplot import*
jika Anda memulai ipython dengan flag --pylab --matplotlib?%pylab
memberi Anda numpy juga dan jika Anda berada di notebook Anda tidak memerlukan pertunjukan di akhir :)Mathematica, 41 byte
Output terlihat persis seperti yang ditunjukkan dalam tantangan kecuali untuk font angka (yang saya duga diciptakan dengan Wolfram Alpha).
sumber
MATLAB,
3530 byteIni mendefinisikan fungsi apa pun. Outputnya adalah melalui jendela baru dengan output grafis vektor resizable. MATLAB
plot
secara otomatis mengabaikan bagian imajiner dari koordinat y selama Anda memberikan koordinat x yang sesuai. Output berikut adalah untukn=3
.sumber
R, 30 byte
n
= 1n
= 2sumber
x=seq(-3,3,.05);plot(x,Re((0i-n)^x))
R, 29 byte
n
disediakan melalui stdin. Hasil untuk n = 1:Dan untuk n = 2:
sumber
n
seperti jawaban lain dan memotong lima karakter dari jawaban Anda? Lagi pula, jawaban gila. Saya selalu lupacurve
.n
. Matlab, matl, TI-Basic dan Mathematica menjawab mengambil input sebagai stdin (sejauh yang saya mengerti), sedangkan python dan VBA menjawab membuat fungsi. Bahkan jika diizinkan, itu hanya masalah selera pribadi: Saya hanya tidak suka mendefinisikan variabel sebagai cara input.Excel VBA,
168160147138 Bytes (sel sebagai piksel pada skala 100x)Disimpan 8 byte berkat KyleKanos
Disimpan 22 byte berkat Taylor Scott
Diformat, terlihat seperti ini:
Fun Fact: VBA tidak memiliki built-in
pi
variabel jadi kita harus mengevaluasinya sebagai fungsi lembar kerja di mana ia tidak eksis.n = 1 n = 2
Saya mulai dengan versi grafik di 193 byte tetapi tidak mendapatkan hasil yang lebih cantik.
n = 1 n = 2
sumber
(-n)^x
daripada pi hardcoding?atn(1)*4
untuk pi?MATLAB,
3533 byteTerima kasih @ flawr untuk menghapus 2 byte!
Ini mendefinisikan fungsi anonim. Untuk menyebutnya dengan input
2
, gunakanans(2)
(atau tetapkan fungsi ke variabel sepertif
dan kemudian gunakanf(2)
).Outputnya adalah grafik vektor (jendela resizable). Interval pengambilan sampel pada sumbu x ditentukan secara otomatis oleh
ezplot
fungsi, tetapi tampaknya lebih dari cukup.Peringatan diproduksi di STDERR karena fungsi yang diteruskan ke
ezplot
(@(x)real((-n)^x)
) tidak di-vektor-kan, tetapi grafik dihasilkan.Contoh untuk
n = 2
:sumber
ezplot = la-z-plot
: D (Saya selalu lupa tentang yang ini ...)ezplot
seperti itu. Sayangnya, hal yang sama tidak dapat dikatakan untukfplot
, jadi tidak ada byte yang bisa disimpan di sana.Notebook Jupyter dan Python 3; 53 byte
Tiga byte disimpan berkat @Jonathan Allan.
sumber
x=arange(-60,61)/20
untuk memperbaiki masalah yang disorot oleh DSM dengan biaya 2 byte. Jika Anda menambahkannya0j
,arange
itu dapat digunakan untuk beralih keplot(x,(-n)**x)
tabungan 4.arange(121)
!Enkapsulasi PostScript; 232 byte
Sekarang karena ini adalah gambar vektor itu sendiri ...
sumber
TikZ + PGFPlots , 175 byte
Kompilasi dengan, misalnya ,
latexmk -cd -f -pdf in.tex
untuk keluaran pdf. Selama kompilasi, pengguna dimintan
.Output sampel (dikonversi ke png) untuk n = 1 dan n = 2:
sumber
Math.JS Grapher , 20 Bytes
Dengan kebetulan belaka, utilitas grafik ini adalah TC (Untuk sebagian besar, loop Infinite hanya menabraknya.), Dan pada dasarnya, output utamanya adalah grafik.
Bagaimana itu bekerja
r(n)=
memberikan fungsir
yang membawa argumenn
ke ekspresif(x)=re((-n)^x)
.re((-n)^x)
cukup banyak huruf untuk huruf deskripsi tantangan. Tapi ini menetapkan fungsinyaf(x)
untuk ini, yang secara implisit output sebagai grafik garis.Cara mengujinya
Anda dapat menggunakan situs ini , memencet fungsi itu di sana, lalu memanggilnya dengan
r(input)
.Keluaran
sumber
J ,
3736 byteTerima kasih kepada kolega saya Marshall untuk bimbingannya. -2 Berkat FrownyFrog.
Fungsi awalan diam-diam anonim.
sumber
20%~i:@60
bisai:@3j120
.Dyalog APL, 41 byte
Bagaimana itu bekerja:
Perintah pengguna
]chart
, dalam hal ini, membutuhkan dua argumen vektor,x
dany
dan memplot grafik:Untukn = 1 :
Untukn = 2 :
sumber
SmileBASIC, 82 byte
Grafik mengisi seluruh layar, bahkan ketika N kurang dari 1.
Saat N lebih besar dari 1, Anda bisa skala Y menjadi antara -1 dan 1 dengan membaginya dengan
n^3
. Saya sudah melakukann^x
, dann^x / n^3
dapat disederhanakann^(x-3)
. Namun, ketika N kurang dari 1, saya harus membagi Y dengann^-3
sebagai gantinya. Ini setara dengann^(x+3)
.Saya dapat menggunakan
n^(x-3*sign(n-1))
untuk menggunakan-3
jikan>1
, dan+3
ifn<1
Gambar segera hadir
sumber
Excel VBA, 133 byte
Skrip jendela langsung yang mengambil input dari
[A1]
dan menampilkanChart
objek keSheet1
objek.Tidak disatukan
Sub
Versi rutin penuh . I / O tidak berubah.Keluaran
Dimana input,n = 1
Dimana input,n = 3
sumber
Julia 0,6 dengan Plots.jl, 46 byte
Ini membutuhkan representasi Julia!
Tidak banyak bermain golf di sini, kecuali (ab) menggunakan operator overloading untuk menghemat byte pada definisi fungsi, dan menggunakan
0im-n
untuk membuat bilangan input kompleks di mana saya biasanya menggunakanComplex(n)
. Itu perlu karena di Julia, untuk alasan stabilitas tipe ,^
operator mengembalikan hasil Kompleks hanya ketika inputnya adalah Kompleks itu sendiri. Jadi di sini kita membuatnya menjadi bilangan kompleks dengan menambahkan0im
mis. 0i.Satu hal keren tentang paket Plots.jl adalah bahwa ia secara otomatis memilih backend untuk digunakan berdasarkan paket plotting apa yang telah Anda instal dan dari mana Anda menjalankan
plot
perintah. Plot di atas dibuat dengan backend GR , tetapi jika saya tidak menginstalnya (atau jika saya secara eksplisit menjalankan aplotly()
perintah seperti yang saya lakukan untuk ini), ia akan menggunakan backend Plotly yang lebih interaktif dan menampilkan ini (yang terlihat seperti IMO kecil lebih baik):Bahkan ada backend UnicodePlots , untuk mencetak plot di terminal (atau menyimpan ke file teks) menggunakan karakter Unicode dan kode warna. SE terus mengacaukan penyelarasan plot jika saya mencoba untuk langsung menempelnya, jadi inilah tangkapan layar terminal:
PS: Formula alternatif,R e ( ( - n )x) = nxc o s ( π x ) , keluar dengan panjang yang sama:
sumber