Tugas
Ini adalah tugas pengkodean yang cukup sederhana, yang harus dilakukan oleh program Anda adalah menempatkan titik pada kanvas (atau alternatif Anda dalam bahasa pengkodean lain) dan menghubungkannya ke semua titik yang telah ditempatkan. Program Anda harus menerima satu input, jumlah titik yang harus ditempatkan, dan menampilkan semacam tampilan dengan titik-titik yang terhubung. Contoh
Persyaratan
- Saya harus dapat menjalankannya, yang berarti harus memiliki kompiler / alat untuk menjalankannya secara online, atau tersedia untuk diunduh secara publik.
- Anda diizinkan menggunakan pustaka apa pun yang dibuat sebelum tantangan ini ditetapkan, asalkan tidak dirancang untuk tujuan tunggal menyelesaikan masalah ini.
- Ini adalah tugas kode terpendek, yang berarti karakter. Komentar, kode yang berubah warna (untuk kecantikan) dan pustaka akan diabaikan.
- Jawaban Anda harus unik, jangan mencuri kode orang lain, persingkat beberapa karakter dan ulangi lagi.
- Ini harus dapat berjalan dalam waktu kurang dari 5 menit, untuk nilai 5 dan 100. Ini juga harus menggunakan resolusi setidaknya 200 * 200 dan menempatkan setiap titik di lokasi acak di kanvas menggunakan distribusi non-sepele.
Papan Peringkat Saat Ini
Flawr - Matlab - 22 - Confirmed
Falko - Python 2 - 41 - Confirmed
Wyldstallyns - NetLogo - 51 - Confirmed
Ssdecontrol - R - 66 - Confirmed
David - Mathematica - 95 - Confirmed
ILoveQBasic - QBasic - 130 - Confirmed
Adriweb - TI-Nspire Lua - 145 - Confirmed
Manatwork - Bash - 148 - Confirmed
Doorknob - Python 2 - 158 - Confirmed
Kevin - TCL - 161 - Confirmed
M L - HPPPL - 231 - Confirmed
Manatwork - HTML/JS - 261 - Confirmed - Improved code of Scrblnrd3
Makando - C# - 278 - Confirmed
Scrblnrd3 - HTML/JS - 281 - Confirmed
Geobits - Java - 282 - Confirmed
Jika saya merindukanmu, aku minta maaf, tambahkan saja komentar pada karyamu yang mengatakannya dan aku akan menambahkannya segera setelah aku melihatnya =)
TL; DR
- Input - Jumlah titik (int, dapat dikodekan dengan keras)
- Output - Gambar dari titik-titik yang ditempatkan secara acak, semua terhubung satu sama lain (grafik)
- Pemenang - Kode terpendek
Jawaban:
Matlab (22)
Diasumsikan bahwa n adalah jumlah poin, dan sepertinya ini untuk n = 10:
n=6
:Penjelasan
gplot
adalah perintah untuk merencanakan grafik. Argumen pertama adalahn x n
matriks kejadian (penuh yang, jelas). Argumen kedua harus berupan x 2
matriks dengan koordinat titik, tetapi tidak masalah jika dimensi kedua lebih besar dari 2, jadi saya hanya menghasilkann x n
matriks nilai acak (yang 2 karakter lebih pendek daripada menghasilkann x 2
matriks).Tautan ke dokumentasi
sumber
Jawa:
318 282265Karena, Anda tahu, Jawa:
Ini hanya loop sederhana yang membuat titik-titik acak dan menarik garis antara titik saat ini dan semua yang sebelumnya.
Contoh dengan 25 titik:
Dengan jeda baris dan impor:
Sunting: Karena kami tidak menghitung impor, saya mengimpor beberapa hal lagi untuk menyimpan beberapa karakter nanti.
Sunting 2: OP menambahkan penyisihan jumlah titik hardcoding. -17 karakter :)
sumber
Python 2 -
4135Setelah mengimpor beberapa perpustakaan yang diizinkan untuk tantangan ini
kita dapat memplot sejumlah titik terhubung hanya dengan satu baris kode:
(Tangkapan layar dibuat dengan 10 poin.)
sumber
import
pernyataan dalam tantangan golf kode normal.Mathematica
9587Dengan bantuan belisarius.
n = 5
n = 100
Pengaturan waktu: 2.082654 dtk
sumber
CompleteGraph[100, VertexCoordinates -> RandomReal[{0, 199}, {100, 2}]]
100
tidak perlu dimasukkan, danInput[]
itu opsional.Python 2, 158
Pernyataan impor tidak termasuk dalam jumlah karakter, seperti yang disebutkan dalam pertanyaan ("perpustakaan akan diabaikan").
Output sampel:
n = 2 (...):
n = 10 (terlihat seperti hal 3d mewah atau sesuatu):
n = 100 (sepertinya seseorang pergi BLELEEEAARARGHHH dengan pena merah):
n = 500, 1000, 10000 (masing-masing berjalan sekitar 1,5 detik, 5-6 detik, dan 3,5 menit):
Catatan: Poin 10000 dijalankan dengan versi yang sedikit dioptimalkan yang mengubah baris 3 (tidak termasuk impor) menjadi ini:
Kalau tidak, itu akan diambil selamanya. : P
Tidak Disatukan:
sumber
x=255
dan menggunakannya untuk menggantikan contoh200
dan255
.R, 66
Yang ini curang, tapi saya pikir masih dalam aturan. Atur dengan memuat
igraph
paketlibrary(igraph)
yang dapat diunduh dari CRANinstall.packages("igraph")
. Kemudian tetapkan input ke variabelN
. Sesuai aturan, ini tidak dihitung secara total.N = 50
Perhatikan bahwa kode ini juga menggambarkan koneksi mandiri. Menghilangkan mereka (meskipun tidak ada aturan terhadap mereka) menambahkan 6 karakter:
R, 141
Ini adalah solusi jujur-untuk-kebaikan di basis R:
meski kamu masih harus masuk
N
dengan tangan.N = 50
Saya bertanya-tanya apakah
for
loop akan lebih sedikit karakter daripadaapply
tapi saya senang dengan apa yang saya dapatkan.sumber
,"un"
di akhir baris pertama.QBasic atau QuickBasic, 130 karakter
Variasi kode
RANDOMIZE
denganRANDOMIZE TIMER
.N=10
denganINPUT N
atauINPUT "N";N
.Sampel dijalankan
Untuk
N=5
, diuji dengan QBasic 1.1 yang berjalan pada DOSBox 0.74:Untuk
N=100
, diuji dengan QBasic 1.1 yang berjalan pada DOSBox 0.74:sumber
Bash + ImageMagick: 148 karakter
Contoh dijalankan:
Output sampel:
Contoh dijalankan:
Output sampel:
Contoh dijalankan:
Output sampel:
sumber
TCL 161 karakter
Jelas tidak akan menang, tetapi mengalahkan beberapa yang lain yang disajikan di sini, dan saya pikir itu memanfaatkan bahasa yang sangat undervalued.
Ukuran kanvas default pada sistem saya tampaknya 291x204. Tidak yakin mengapa, tetapi menggunakannya menghemat 13 karakter.
Cukup cepat, 400 poin dalam <5 detik, 500 dalam ~ 10 dtk. Ukuran dan poin dapat diskalakan secara sewenang-wenang dan warna serta gaya garis dapat diubah, dengan mengorbankan karakter tentunya. Hapus golf dan gunakan variabel untuk membuatnya lebih jelas dan lebih mudah untuk skala dan warna:
sumber
[TI-Nspire] Lua -
145135130(Versi tetap diperbarui)
"Mengimpor" math.random sebagai "r", pertama, sebagaimana diizinkan:
r=math.random
Kode aktual:
Catatan: Kode ini berfungsi pada kalkulator TI-Nspire (TI menambahkan skrip Lua ke OS terbaru dari platform ini, dengan API berbasis genap yang memungkinkan pengguna untuk membuat grafik, dll. Misalnya.)
Ia juga dapat dicoba secara online di sini (hapus saja skrip demo dan tambah saya dengan
n=10
misalnya)sumber
C # Formulir Windows, 268
N = 5
N = 50
Kode lengkap diberikan di bawah ini
sumber
Pens.Tan
bukannew Pen(Color.Tan)
?HTML / JS, 210, terima kasih untuk manatwork
JSFiddle
sumber
~~
alih-alihm.floor
menyimpan 5 bytecanvas
tag menutup diri dan menghapus tanda kutip tunggal di sekitarid
nilai:<canvas id=q />
. (Perhatikan bahwa Anda harus meninggalkan satu spasi antara nilai atribut terakhir dan menutup sendiri/
.) BTW, di Firefox berfungsi dengan baik tanpam.floor()
dan~~
.C # WPF
306296Saya ingin mengatakan bahwa saya dapat menghapus Stroke = Brushed.Red. Tapi sayangnya itu berarti bahwa saya melukis garis transparan, dan Tebak saya adalah bahwa itu tidak benar-benar masuk hitungan : PI juga dapat mencukur beberapa byte dengan hanya membuat kisi pada tampilan XAML. Tapi itu tampak tidak adil, jadi saya melepas XAML menjadi kanvas kosong. (Saya tidak menghitung XAML sebagai byte ...)
XAML
5
100
sumber
var
saat mendeklarasikan variabel.HPPPL,
231220(Bahasa Pemrograman Utama HP untuk kalkulator grafik warna HP Prime)
menurunkannya. 11 karakter yang lebih sedikit dengan menggambar semua garis baru yang mungkin tepat setelah setiap pembuatan titik baru. Hanya dua loop bersarang, bukan tiga loop sebelumnya.
Tidak disatukan (270 karakter):
contoh:
c (10)
c (30)
Kalkulator grafik warna HP Prime memiliki tampilan warna 320x240 piksel.
Emulator yang juga berfungsi dengan kit konektivitas tersedia di situs web HP atau di sini: http://www.hp-prime.de/en/category/6-downloads
... masih menunggu perangkat keras tiba. Pembaruan pada waktu eksekusi akan mengikuti.
Hari ini HP Prime saya tiba. Inilah waktu eksekusi untuk n = 100 pada kalkulator aktual:
Sekitar 0,65 detik untuk n = 100.
Emulator sekitar 4 kali lebih cepat (sekitar 0,178 detik) pada laptop Core i5 2410M saya.
sumber
NetLogo, 51 byte
Ganti angka 9 dengan konstanta atau variabel lain sesuai kebutuhan.
sumber