/* Configuration */
var QUESTION_ID = 23423; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 17419; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
else console.log(body);
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
lang = jQuery('<a>'+lang+'</a>').text();
languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang_raw.toLowerCase() > b.lang_raw.toLowerCase()) return 1;
if (a.lang_raw.toLowerCase() < b.lang_raw.toLowerCase()) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body {
text-align: left !important;
display: block !important;
}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/codegolf/all.css?v=ffb5d0584c5f">
<div id="language-list">
<h2>Shortest Solution by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
Jawaban:
Tajam EL-9300 Graphics Calculator, 296 byte
Ini adalah kalkulator grafik sekolah menengah saya , yang digunakan selama 20 tahun yang lalu! Saya ingat menulis generator mandelbrot untuk itu saat itu. Dan benar saja, masih tersimpan di memori NV:
Butuh waktu sekitar 90 menit untuk membuatnya.
Ini benar-benar ungolfed. Saya yakin saya bisa menghemat sedikit ruang, tetapi saya hanya ingin berbagi keingintahuan sejarah ini!
Saya suka bahwa satu-satunya pernyataan kontrol yang tersedia adalah
goto
s.Ini foto. Saya tidak punya cara lain untuk mengeluarkan keluaran grafis:
sumber
zx²+zy²>4
bukankah itu bisa terjadiAbs(x)>2
?Saya menemukan ini beberapa hari yang lalu. Saya tidak mengambil kredit untuk itu, tapi sial, apakah itu luar biasa:
Python 2:
http://preshing.com/20110926/high-resolution-mandelbrot-in-obfuscated-python/
sumber
LaTeX, 673 byte
Gambar PDF terdiri dari unit persegi berwarna dengan ukuran 1bp × 1bp.
Tidak disatukan
sumber
x86 DOS Assembly,
208177173 byteBiner lengkap, dalam HEX, yang saya buat dengan tangan, adalah:
Gambar sampel adalah:
Sumber lengkap dalam ASM yang dapat dibaca cukup panjang (saya menggunakan ini untuk mengetahui bagaimana saya mengkodekan pengisap ini):
Ini dirancang untuk dikompilasi dengan TASM, berjalan dalam MCGA, dan menunggu penekanan tombol sebelum mengakhiri program. Warnanya hanyalah palet MCGA standar.
EDIT: Dioptimalkan, sekarang gambarnya mundur (gambar yang sama), dan menyimpan 31 byte!
EDIT 2: Untuk meredakan OP, saya telah membuat ulang biner dengan tangan. Dengan melakukan itu, saya juga mencukur 4 byte lagi. Saya mendokumentasikan setiap langkah dari proses, menunjukkan semua pekerjaan saya sehingga siapa pun dapat mengikuti jika mereka benar-benar ingin, di sini (peringatan, itu membosankan dan sangat panjang): http://lightning.memso.com/media/perm/ mandelbrot2.txt
Saya menggunakan beberapa regex di EditPadPro, untuk menemukan semua
; Final: ...
entri dalam file dan membuangnya sebagai hex biner ke file .com. Biner yang dihasilkan adalah apa yang Anda lihat di bagian atas posting ini.sumber
#define
pernyataan yang telah ditentukan sebelumnya dalam C. Itu hanya memakan waktu untuk mengganti semuanya secara manual.Java,
505405324 byteHanya perhitungan standar,
dengan golfitudesekarang dengan golfitude ekstra.Golf:
Dengan jeda baris:
sumber
f.setSize(n,668);
- sangat tergantung pada Tema yang digunakan, tapi saya akan menerimanya.double
manafloat
dapat digunakan jika Anda mencobaJFrame
=>Frame
mencukur 2 karakter. Meskipun Anda tidak bisa menutup jendela lagi. ;)final
pengubah. Dan Anda tidak boleh menghilangkan impor untuk menjadi pengiriman lengkap.Javascript (ECMAScript 6) -
315308 Karaktern
untuk memvariasikan ukuran gambar (dan jumlah iterasi).f(87);f(0);f(0);
panggilan (dekat akhir) untuk mengubah nilai warna RGB. (f(8);f(8);f(8);
berwarna abu-abu.)Dengan
f(8);f(23);f(87);
:sumber
d=document
akan menghemat lebih banyak. (Juga, Apakah ada alasan untuk membuat kanvas? Apakah codegolf mengasumsikan tingkat HTML tertentu tersedia?)document.createElement`canvas`
dan menyimpan 2 byte. Sama sepertigetContext`2d`
.J, 73 byte
Edit , beberapa penjelasan:
sumber
(0,?$~99 3)
yang menghasilkan triplet 100 rgb, satu untuk setiap level. Karena keacakan, Anda mungkin mendapatkan kurang dari 100 kembar tiga sehingga beberapa level akan memiliki transisi yang lebih mulus (tetapi masih memiliki warna yang berbeda).Mathematica,
2141912151930Sejak versi 10.0 ada built-in: (19 byte)
Untuk menyesuaikan dengan persyaratan rentang koordinat, 11 byte tambahan diperlukan. (30 byte)
Kasing linting tangan:
sumber
{b, -2, 2, .01}, {a, -2, 2, .01}
lebih pendek dan lebih dekat dengan aturanThe fractal coordinates range from approximately -2-2i to 2+2i
.Python dengan Pylab + Numpy, 151 byte
Saya tidak tahan melihat entri Python non-DQ'ed, tapi saya pikir saya benar-benar kalah dalam hal ini, dan saya membuatnya menjadi 153 karakter!
Juga, terutama, baris kedua hingga terakhir memunculkan 4 peringatan runtime yang berbeda, sebuah catatan pribadi baru!
sumber
import
dan*
, dan tidak mendefinisikanf
sama sekali harus lebih pendek, kecuali saya telah salah mengerti sesuatu, yang mungkin. Anda juga harus mengubahnya di sekitar sehingga 0 iterasi dan 1 iterasi dibedakan (keduanya sama-sama berwarna abu-abu).wc
, tapi mungkin cobastat -c %s
saja. Apakah batas atas dan bawah hitam bagian dari gambar?from numpy import*
bukanimport numpy as n
danmgrid
bukann.mgrid
.C + Allegro 4.2.2 - 248 byte
Keluaran:
sumber
... allegro.h>
danx=-1, ...
? Saya kira Notepad ++ menghitungnya sebagai\r\n
=0D 0A
.0.01
bisa diketik sebagai.01
.Windows PowerShell (v4), 299 byte
Instruksi
Komentar
sumber
lt2
untuklt4
menjadikannya "set mandelbrot" alih-alih gambar yang Anda miliki sekarang, Banyak titik set yang tertelan oleh pita warna.a*a+b*b
tidaksqrt(a*a+b*b)
-lt4
,. Itu bagus - terima kasih. Saya telah memperbarui jawaban saya dengan kode yang diperbaiki, dan gambar. (Harus memikirkan kembali pemahaman saya tentang apa yang dilakukannya, karena saya kehilangan sesuatu).Python + PIL , 166 byte
Output (akan terbuka di penampil * .bmp default):
sumber
y
loop.r=range(d*d)
, gunakanx/d
danx%d
untuk x dan y.Image.show()
secara implisit menyimpan file sementara).BBC Basic (228 byte)
Bagaimana dengan bahasa yang tidak pernah didengar orang dalam kode golf? Kemungkinan besar bisa dioptimalkan, tapi saya tidak tahu di mana - perbaikan mungkin. Berbasis di http://rosettacode.org/wiki/Mandelbrot_set#BBC_BASIC , tapi saya mencoba kode golf sebanyak mungkin.
The
>
simbol pada gambar prompt, dan itu secara otomatis setelah menjalankan program.sumber
NEXT Y,X
?APL, 194 karakter / byte *
Ini untuk Dyalog APL dengan
⎕IO ⎕ML←1 3
Sebagian besar ruang diambil oleh panggilan API untuk menampilkan bitmap di jendela (baris 2, 3, 4)
Jika ada jalan pintas untuk melakukannya, kode akan turun hingga 60 karakter (baris 1)
PLZ BANTUAN TEMUKAN SHORTCUT KTHX
Versi tidak digabungkan (hanya baris 1)
Tangkapan layar:
(Versi freeware dijalankan di OS X di bawah Wine. Ya saya murah seperti itu.)
*: Dyalog memiliki charset byte tunggal sendiri, dengan simbol APL dipetakan ke nilai 128 byte atas, sehingga seluruh kode dapat disimpan dalam 194 byte. Setiap pernyataan dalam catatan kaki ini mungkin benar. Tetap tenang dan terus bermain golf.
sumber
Mathematica 10.0, 19 karakter
MandelbrotSetPlot
adalah fungsi baru di Mathematica 10.0.sumber
R,
199211 karakterSolusi lama dengan 199 karakter:
Dengan lekukan:
Sunting: Solusi pada 211 karakter yang mewarnai bagian dalam set dan bagian luar layer pertama berbeda:
Dengan lekukan:
sumber
rainbow()
:)Java - Memproses (271 byte)
Diperluas:
sumber
TI-80 BASIC,
125106 byteBerdasarkan jawaban Digital Trauma.
sumber
GLSL - 225 byte:
Mendefinisikan variabel dalam kode (242 byte):
Lihat di ShaderToy
Ini membutuhkan tekstur palet yang sesuai untuk dimuat
iChannel0
. (Pewarnaan di sini berasal dari tekstur "piksel acak" di ShaderToy).sumber
Oktaf (
212136 byte)(Sekarang termasuk beberapa ide karena @ChrisTaylor.)
Dengan spasi putih:
Keluaran:
Untuk mengonversi ke Matlab, ubah "
m+=abs(z)<2
" menjadi "m=m+(abs(z)<2)
". [+3 byte]Untuk membuat rasio aspek 1: 1, tambahkan "
;axis image
". [+11 byte]Jawaban pertama saya (212 byte):
sumber
;axis image
". Apakah itu harus memenuhi syarat?Applesoft BASIC,
302286280 byteIni mengambil poin acak untuk menggambar, sehingga akan berjalan selamanya dan mungkin tidak pernah mengisi bidang penuh.
Ternyata Applesoft BASIC benar - benar memaafkan tentang kurangnya ruang. Hanya satu ruang yang diperlukan di seluruh program.
Output setelah 14 jam:
GIF:
Sebelum bermain golf:
Catatan:
POKE 49234,0
(dalam Applesoft BASIC) menempatkan mesin ke mode grafis penuh.Versi yang dioptimalkan untuk tampilan B&W:
Output setelah 12 jam:
Versi yang akan bekerja di GW-BASIC (DOS):
sumber
gnuplot 110 (105 tanpa baris baru)
Entri gnuplot wajib. Sudah dilakukan berkali-kali tetapi yang ini dari awal (bukan itu sulit). Saya suka bagaimana
gnuplot
golf perintahnya secara intrinsik :)ungolfed:
Namun, saya sangat kecewa dengan masuknya bilangan kompleks.
x*{1,0}+y*{0,1}
harus menjadi cara paling menyedihkan yang ada untuk membangun bilangan kompleks.Ups, gambar:
Setel contoh lebih tinggi untuk resolusi yang lebih baik. Kita juga bisa mengatakan
unset tics
danunset colorbox
untuk gambar murni, tapi saya pikir versi ini memenuhi syarat.sumber
*{1,0}
persatuan dan lebih seperti cara kode-bowling mengatakan*1
, dan mungkin bisa dijatuhkan. (belum diuji)Matlab (89 bytes)
Keluaran -
Tidak memenuhi persyaratan bahwa sel-sel dalam harus hitam atau putih, tetapi itu dapat dipenuhi dengan (1) menggunakan
imshow(K)
alih-alihimagesc(K)
(memerlukan 1 byte lebih sedikit tetapi membutuhkan kotak alat pemrosesan gambar) atau (2) menambahkancolormap hot
(membutuhkan 12 lebih banyak byte).Versi tidak disatukan -
sumber
C-C
di tempat saya0*e(401)
. Plus, Anda tidak menggunakanN
. Dan kita bisa sedikit lebih pendek menggunakanm+=abs(z)<2
ide saya di tempat AndaK(~K&abs(Z)>2)=j
.colormap jet
dancolormap hot
keduanya salah meskipun - mereka hanya memiliki 64 warna berbeda.colormap(hot(101))
tidak terlihat berbeda secara visual bagi saya.colormap([0,0,0;jet(100)])
mungkin dapat diterima tetapi rapuh.K=K+abs(Z)<2
artinyaK=((K+abs(Z))<2)
. (Jadi saya salah tentang perkiraan satu byte untuk dihilangkan+=
.)JavaScript + HTML5 (356B)
(Catatan: baris yang diakhiri dengan '//' ditambahkan di sini untuk dibaca)
Versi pemain (375B):
Versi lambat (356B): hapus 'var' dan parameter di fungsi bagian dalam sehingga lingkup global digunakan.
Cobalah: http://jsfiddle.net/neuroburn/Bc8Rh/
sumber
var w,
di awal, dan ubahfunction(x,i,j,k,l,c,o)
kefunction()
.Javascript, 285B
Berdasarkan dari kode saya dan beberapa perbaikan pada kode MT0 , saya memiliki warna hingga 285B:
dalam aksi: http://jsfiddle.net/acLhe/7/
adalah: Coffeescript, 342B
Coffeescript seharusnya dapat dibaca: - / lihat dalam aksi: http://jsfiddle.net/acLhe/6/
sumber
QBasic, QuickBasic, QB64 -
156153Palet DOS standar:
sumber
Tcl / Tk, 316
322324336348349351352353354355Sekarang versi yang lebih pendek dengan menggunakan 3 huruf #RGB singkatan warna kembar tiga gaya (bukan kembar tiga #RRGGBB), yang menghasilkan warna yang berbeda.
Dan lagi bermain golf.
Tcl / Tk, 325
331333345357358360361362364365Saya pikir saya akan menang jika kriterium itu indah!
Presentasi:
sumber
rename set s
di atas dan kemudian mengganti semuaset
dengans
Excel VBA,
251246224223221 byteDisimpan 5 byte berkat ceilingcat Disimpan 23 byte berkat Taylor Scott
Keluaran:
Saya membuat versi yang melakukan ini sejak lama, tetapi ada banyak tambahan seperti membiarkan pengguna memilih warna dasar dan matematika yang mudah diikuti. Bermain golf turun merupakan tantangan yang menarik. The
Color
Metode menggunakan1E6
sebagai sarana untuk mendapatkan berbagai macam warna karena warna yang valid0
untuk2^24
. Mengaturnya untuk10^6
memberikan area kontras yang bagus.Penjelasan / Pemformatan Otomatis:
Saya juga bermain-main dengan
D=999
danj=1 to 998
untuk mendapatkan gambar yang jauh lebih besar dan lebih tepat. Hasil tidak relevan dengan tantangan karena mereka terlalu besar tetapi mereka yang rapi.sumber
j<99
denganj<D
.()
dari sub nama, Anda harus mengubah(j<99)
ke(j<d)
dan Anda bisa, untuk tujuan membuat sel-sel persegi hanya digunakanCells.RowHeight=48
di tempatCells.RowHeight=9
,Cells.ColumnWidth=1
- ini memang membuat bermain-main dengan output Anda lebih sulit tetapi telah diterima sebagai valid oleh komunitas -RowHeight
trik dari pos kiat VBA dan bermaksud mengintegrasikannya setelah saya mendapatkan semua gambar cantik saya. Itu chunk'o'bytes yang bagus, terima kasih.2^20
dengan1E6
Perl + GD, 264
Dikutip dari kode ini
sumber
Floater, 620 piksel
Bahasa yang saya buat ketika saya terinspirasi oleh tantangan saya sendiri, dan juga dari bahasa esoteris Piet.
sumber