Mari kita plot fungsi f (x) = sin (πx) + 0,5 sin (3πx) di atas domain [-3,3] . Kita bisa menafsirkan ini sebagai tali yang longgar tergeletak di papan tulis. Sekarang mari kita pindahkan n paku ke papan pada posisi (x 1 , y 1 ) ke (x n , y n ) , di mana x i ∈ (-3,3) dan y i ∈ [-1,1] . Bayangkan ada dua lubang tali di ujung tali, yaitu di posisi (-3,0) dan (3,0). Kita sekarang dapat mengambil ujung tali dan menarik melalui lubang tali sampai tali itu kencang. Ini akan merusak grafik kita menjadi fungsi linear piecewise.
Beberapa gambar mungkin bisa membantu. Ambil 8 paku di (-2.8, -0.7), (-2.5, -0.9), (-1.2, .2), (-0.5, .8), (0.5, .4), (1.2, -0.9), (1,5, -0,6), (1,8, -0,8) . Tiga plot berikut menunjukkan proses yang dijelaskan di atas:
Untuk versi yang lebih besar: Klik kanan -> Buka di tab baru
Dan ini adalah animasi pengetatan tali jika Anda mengalami kesulitan memvisualisasikannya:
Tantangan
Diberikan daftar "paku" (yang belum tentu diurutkan), plot kuku-kuku itu dan tali kencang jika dimulai dari bentuk fungsi di atas f .
Anda dapat menulis sebuah program atau fungsi dan mengambil input melalui STDIN, ARGV atau argumen fungsi. Anda dapat menampilkan hasilnya di layar atau menyimpan gambar ke file.
Jika hasilnya dirasterisasi, ia harus memiliki lebar minimal 300 piksel dan tinggi 100 piksel. Rentang koordinat dari (-3, -1.1) hingga (3,1.1) harus mencakup setidaknya 75% dari batas horisontal dan vertikal gambar. Skala panjang x dan y tidak harus sama. Anda harus menunjukkan paku (menggunakan setidaknya 3x3 piksel) dan string (setidaknya 1 piksel lebar). Anda mungkin atau mungkin tidak termasuk sumbu.
Warna adalah pilihan Anda, tetapi Anda membutuhkan setidaknya dua warna yang dapat dibedakan: satu untuk latar belakang dan satu untuk kuku dan tali (meskipun mungkin memiliki warna yang berbeda).
Anda dapat mengasumsikan bahwa semua paku setidaknya 10 -5 unit jauhnya dari f (sehingga Anda tidak perlu khawatir tentang ketidaktepatan titik mengambang).
Ini adalah kode golf, jadi jawaban tersingkat (dalam byte) menang.
Lebih banyak contoh
Berikut adalah dua contoh (lebih sederhana):
{{-2.5, 1}, {-1.5, -1}, {-0.5, 1}, {0.5, -1}, {1.5, 1}, {2.5, -1}}
(String bertepatan dengan x -aksi.)
{{-2.7, -0.5}, {-2.3, -0.5}, {-1.7, 0.5}, {-1.3, 0.5}, {-0.7, -0.5}, {-0.3, -0.5}, {0.5, 1}, {1.5, -1}, {2.5, 1}}
Ingin Tantangan lain?
sumber
Jawaban:
Python
+ Pycairo,727708608, + PyLab, 383Contoh
Bagaimana itu bekerja
sumber
Python + pylab, 576 byte
Algoritma:
Contoh dengan 27 poin acak:
Golf
Apa yang muncul sebagai beberapa spasi lekukan dalam
for j in R(i&~1)
loop seharusnya menjadi tab.Tidak disatukan
sumber