/* 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>
Antworten:
Sharp EL-9300 Grafikrechner, 296 Byte
Dies war mein Grafikrechner für die Sekundarschule , der vor 20 Jahren noch funktionierte! Ich erinnere mich, dass ich damals einen Mandelbrot-Generator dafür geschrieben habe. Und ganz sicher, es befindet sich immer noch im NV-Speicher:
Das Rendern dauerte ungefähr 90 Minuten.
Das ist total ungolfed. Ich bin sicher, ich könnte ein bisschen Platz sparen, aber ich wollte nur diese historische Neugier teilen!
Ich liebe es, dass die einzigen verfügbaren Steueranweisungen
goto
s sind.Hier ist ein Foto. Ich habe keine anderen Möglichkeiten, um die grafische Ausgabe zu erhalten:
quelle
zx²+zy²>4
konnte sie nicht erfolgreich seinAbs(x)>2
?Ich bin neulich darauf gestoßen. Ich nehme keine Anerkennung dafür, aber verdammt, ist es großartig:
Python 2:
http://preshing.com/20110926/high-resolution-mandelbrot-in-obfuscated-python/
quelle
LaTeX, 673 Bytes
Das PDF-Bild besteht aus farbigen quadratischen Einheiten mit einer Größe von 1 bp × 1 bp.
Ungolfed
quelle
x86-DOS-Assembly,
208177173 ByteDie vollständige Binärdatei in HEX, die ich von Hand erstellt habe, lautet:
Das Beispielbild ist:
Die vollständige Quelle in lesbarem ASM ist ziemlich lang (damit habe ich herausgefunden, wie ich diesen Trottel codiert habe):
Dies ist für die Kompilierung mit TASM vorgesehen, wird in MCGA ausgeführt und wartet auf einen Tastendruck, bevor das Programm beendet wird. Die Farben sind nur die Standard-MCGA-Palette.
BEARBEITEN: Es wurde optimiert, jetzt wird rückwärts gezeichnet (obwohl das gleiche Bild) und 31 Bytes gespeichert!
EDIT 2: Um das OP abzusichern, habe ich die Binärdatei per Hand neu erstellt. Auf diese Weise habe ich auch weitere 4 Bytes gespart. Ich habe jeden einzelnen Schritt des Prozesses dokumentiert und alle meine Arbeiten gezeigt, damit jeder mitmachen kann, wenn er es wirklich möchte (Warnung, es ist langweilig und sehr langwierig): http://lightning.memso.com/media/perm/ mandelbrot2.txt
Ich habe ein paar reguläre Ausdrücke in EditPadPro verwendet, um alle
; Final: ...
Einträge in der Datei zu finden und sie als Hex-Binärdatei in eine .com-Datei zu kopieren . Die resultierende Binärdatei sehen Sie oben in diesem Beitrag.quelle
#define
in C keine vordefinierten Anweisungen verwenden können. Es ist nur zeitaufwändig, alles manuell zu ersetzen.Java,
505405324 BytesNur eine Standardberechnung,
mit Golfstärkejetzt mit zusätzlicher Golfstärke.Golf gespielt:
Mit Zeilenumbrüchen:
quelle
f.setSize(n,668);
- hängt stark vom verwendeten Theme ab, werde es aber akzeptieren.double
wofloat
Sie es versuchen könntenJFrame
=>Frame
rasiert 2 Zeichen ab. Obwohl Sie das Fenster nicht mehr schließen können. ;)final
Modifikator zu entfernen. Und Sie dürfen die Importe nicht auslassen, um eine vollständige Einreichung zu erhalten.Javascript (ECMAScript 6) -
315308 Zeichenn
, um die Bildgröße (und die Anzahl der Iterationen) zu ändern.f(87);f(0);f(0);
Aufrufen übergebenen Werte (gegen Ende), um die RGB-Farbwerte zu ändern. (f(8);f(8);f(8);
Ist Graustufen.)Mit
f(8);f(23);f(87);
:quelle
d=document
würde dir ein paar mehr sparen. (Gibt es auch einen Grund für die Erstellung der Zeichenfläche? Wird für Codegolf ein bestimmtes Maß an verfügbarem HTML vorausgesetzt?)document.createElement`canvas`
2 Bytes schreiben und speichern. Gleich wie diegetContext`2d`
.J, 73 Bytes
Bearbeiten , einige erklären:
quelle
(0,?$~99 3)
100 RGB-Triplets erzeugt werden, eines für jedes Level. Aufgrund der Zufälligkeit erhalten Sie möglicherweise weniger als 100 Drillinge, sodass einige Ebenen einen weicheren Übergang haben (aber immer noch unterschiedliche Farben haben).Mathematica,
214,191,215,19,30Seit Version 10.0 gibt es ein eingebautes: (19 Bytes)
Um die Koordinatenbereichsanforderungen zu erfüllen, sind 11 zusätzliche Bytes erforderlich. (30 Bytes)
Ein handgerollter Koffer:
quelle
{b, -2, 2, .01}, {a, -2, 2, .01}
ist kürzer und näher an den RegelnThe fractal coordinates range from approximately -2-2i to 2+2i
.Python mit Pylab + Numpy, 151 Bytes
Ich konnte es nicht ertragen, einen nicht-DQ'ed Python-Eintrag zu sehen, aber ich glaube, ich habe mich bei diesem wirklich übertroffen und es auf 153 Zeichen reduziert!
Insbesondere die vorletzte Zeile wirft 4 verschiedene Laufzeitwarnungen auf, ein neuer persönlicher Rekord!
quelle
import
und ist kein Leerzeichen erforderlich*
, und die Definitionf
sollte überhaupt nicht kürzer sein, es sei denn, ich habe etwas falsch verstanden, was möglich ist. Sie sollten es auch so ändern, dass 0 Iterationen und 1 Iterationen voneinander getrennt sind (sie sind derzeit beide grau).wc
, aber vielleicht versuche ich esstat -c %s
stattdessen. Sind die schwarzen oberen und unteren Ränder Teil des Bildes?from numpy import*
anstelle vonimport numpy as n
undmgrid
anstelle von verwendenn.mgrid
.C + Allegro 4.2.2 - 248 Bytes
Ausgabe:
quelle
... allegro.h>
und keinen Zeilenumbruch gebenx=-1, ...
? Ich nehme an, Notepad ++ zählt es als\r\n
=0D 0A
.0.01
kann als getippt werden.01
.Windows PowerShell (v4), 299 Byte
Anleitung
Kommentar
quelle
lt2
,lt4
um es zu einem "Mandelbrot-Set" zu machen, anstelle des Bildes, das Sie jetzt haben. Viele Punkte des Sets werden von den Farbbändern verschluckt.a*a+b*b
nichtsqrt(a*a+b*b)
-lt4
. Welches ist gut - danke. Ich habe meine Antwort mit korrigiertem Code und Bild aktualisiert. (Muss mein Verständnis überdenken, was es tut, da mir etwas fehlt).Python + PIL , 166 Bytes
Ausgabe (wird im standardmäßigen * .bmp-Viewer geöffnet):
quelle
y
Schleife loswerden .r=range(d*d)
, benutzex/d
undx%d
für x und y.Image.show()
speichert implizit eine temporäre Datei).BBC Basic (228 Bytes)
Was ist mit Sprachen, von denen noch niemand im Codegolf gehört hat? Höchstwahrscheinlich könnte optimiert werden, aber ich bin nicht ganz wo - Verbesserungen möglich. Basierend auf http://rosettacode.org/wiki/Mandelbrot_set#BBC_BASIC , aber ich habe versucht, Golf so weit wie möglich zu codieren.
Das
>
Symbol auf dem Bild ist eine Eingabeaufforderung und wird nach dem Ausführen des Programms automatisch generiert.quelle
NEXT Y,X
?APL, 194 Zeichen / Byte *
Dies ist für Dyalog APL mit
⎕IO ⎕ML←1 3
Der größte Teil des Speicherplatzes wird von API-Aufrufen beansprucht, um eine Bitmap in einem Fenster anzuzeigen (Zeilen 2, 3, 4).
Wenn eine Verknüpfung vorhanden wäre, wäre der Code auf 60 Zeichen begrenzt (Zeile 1).
PLZ HELP SHORTCUT KTHX FINDEN
Ungolfed version (nur zeile 1)
Bildschirmfoto:
(Freeware-Version läuft unter OS X unter Wine. Ja ich bin so günstig.)
*: Dyalog hat einen eigenen Einzelbyte-Zeichensatz, wobei die APL-Symbole den oberen 128-Byte-Werten zugeordnet sind, sodass der gesamte Code in 194 Byte gespeichert werden kann. Jede Aussage in dieser Fußnote ist möglicherweise richtig. Bleib ruhig und spiele weiter Golf.
quelle
Mathematica 10.0, 19 Zeichen
MandelbrotSetPlot
ist eine neue Funktion in Mathematica 10.0.quelle
R
199211 ZeichenAlte Lösung mit 199 Zeichen:
Mit Einrückung:
Bearbeiten: Lösung mit 211 Zeichen, die das Innere des Sets und das Äußere der ersten Ebene unterschiedlich färbt:
Mit Einrückung:
quelle
rainbow()
:)Java - Verarbeitung (271 Bytes)
Erweitert:
quelle
TI-80 BASIC,
125106 BytesBasierend auf der Antwort von Digital Trauma.
quelle
GLSL - 225 Bytes:
Variablen im Code definieren (242 Bytes):
Sehen Sie es in ShaderToy
Dazu muss eine geeignete Palettentextur geladen werden
iChannel0
. (Die Färbung hier ist von der "zufälligen Pixel" -Textur auf ShaderToy).quelle
Oktave (
212136 Bytes)(Jetzt mit ein paar Ideen von @ChrisTaylor.)
Mit Leerzeichen:
Ausgabe:
Um nach Matlab zu konvertieren, ändern Sie "
m+=abs(z)<2
" in "m=m+(abs(z)<2)
". [+3 bytes]Fügen Sie "
;axis image
" hinzu, um das Seitenverhältnis 1: 1 festzulegen . [+11 bytes]Meine erste Antwort (212 Bytes):
quelle
;axis image
" hinzu. Ist das erforderlich, um sich zu qualifizieren?Applesoft BASIC,
302286280 BytesDies wählt zufällige Punkte zum Zeichnen aus, so dass es für immer ausgeführt wird und möglicherweise nie die gesamte Ebene ausfüllt.
Es stellt sich heraus, dass Applesoft BASIC den Platzmangel wirklich verzeiht. Im gesamten Programm ist nur ein Leerzeichen erforderlich.
Ausgabe nach 14 Stunden:
GIF:
Vor dem Golfen:
Hinweis:
POKE 49234,0
(in Applesoft BASIC) versetzt das Gerät in den Vollgrafikmodus.Eine für B & W-Displays optimierte Version:
Ausgabe nach 12 Stunden:
Eine Version, die in GW-BASIC (DOS) funktioniert:
quelle
Gnuplot 110 (105 ohne Zeilenumbruch)
Obligatorischer Gnuplot-Eintrag. Es wurde unzählige Male gemacht, aber dieses ist von Grund auf neu (nicht, dass es schwierig ist). Ich mag, wie
gnuplot
Golf seine Befehle an sich :)ungolfed:
Ich bin jedoch DEEPLY enttäuscht über die Eingabe komplexer Zahlen.
x*{1,0}+y*{0,1}
muss die traurigste existierende Art sein, eine komplexe Zahl zu konstruieren.Ups, das Bild:
Stellen Sie Isosamples für eine bessere Auflösung höher ein. Wir könnten auch sagen
unset tics
undunset colorbox
für ein reines Bild, aber ich denke, diese Version eignet sich gut.quelle
*{1,0}
ist Einheit und ist eher eine Code-Bowling-Art zu sagen*1
, und kann wahrscheinlich fallengelassen werden. (ungetestet)Matlab (89 Bytes)
Ausgabe -
Erfüllt nicht die Anforderung, dass die inneren Zellen schwarz oder weiß sein müssen, aber dies kann durch (1) Verwenden von
imshow(K)
anstelle vonimagesc(K)
(erfordert 1 weniger Byte, benötigt jedoch die Bildverarbeitungs-Toolbox) oder (2) Anhängencolormap hot
(erfordert 12 weitere ) erfüllt werden Bytes).Ungolfed version -
quelle
C-C
anstelle von meinem0*e(401)
. Außerdem verwenden Sie nichtN
. Und wir können mit meinerm+=abs(z)<2
Idee etwas kürzer werden als mit deinerK(~K&abs(Z)>2)=j
.colormap jet
undcolormap hot
beide sind jedoch falsch - sie haben nur 64 verschiedene Farben.colormap(hot(101))
sieht für mich optisch nicht unterscheidbar aus.colormap([0,0,0;jet(100)])
ist vielleicht akzeptabel aber zweifelhaft.K=K+abs(Z)<2
bedeutetK=((K+abs(Z))<2)
. (Also habe ich mich geirrt, was die zu eliminierende 1-Byte-Schätzung+=
JavaScript + HTML5 (356B)
(Hinweis: Zeilen, die mit '//' enden, werden hier aus Gründen der Lesbarkeit hinzugefügt.)
Ausführende Version (375B):
Langsame Version (356B): Entfernen Sie 'var' und Parameter in der inneren Funktion, damit der globale Gültigkeitsbereich verwendet wird.
Probieren Sie es aus: http://jsfiddle.net/neuroburn/Bc8Rh/
quelle
var w,
am Anfang, und ändernfunction(x,i,j,k,l,c,o)
zufunction()
.Javascript, 285B
Basierend auf meinem Code und einigen Verbesserungen am MT0- Code habe ich dies auf 285B in Farbe reduziert:
in Aktion: http://jsfiddle.net/acLhe/7/
war: Coffeescript, 342B
Kaffeeskript soll lesbar sein: - / sehe es in Aktion: http://jsfiddle.net/acLhe/6/
quelle
QBasic, QuickBasic, QB64 -
156153Standard-DOS-Palette:
quelle
Tcl / Tk, 316
322324336348349351352353354355Jetzt eine kürzere Version mit 3-Buchstaben-Farbtripeln im #RGB-Kurzschriftstil (anstelle von #RRGGBB-Tripletts), die zu unterschiedlichen Farben führt.
Und noch mehr Golf.
Tcl / Tk, 325
331333345357358360361362364365Ich denke, ich würde gewinnen, wenn das Kriterium Schönheit wäre!
Präsentation:
quelle
rename set s
oben hinzufügen und dann alleset
vons
Excel VBA,
251246224223221 Bytes5 Bytes dank ceilingcat gespeichert 23 Bytes dank Taylor Scott gespeichert
Ausgabe:
Ich habe eine Version erstellt, die dies vor langer Zeit getan hat, aber es gab eine Menge Extras, wie den Benutzer die Grundfarbe auswählen zu lassen und leicht zu befolgende Mathematik. Golfspielen war eine interessante Herausforderung. Das
Color
Verfahren verwendet1E6
als Mittel eine breite Palette von Farben zu erhalten , da die gültigen Farben0
zu2^24
. Setzen Sie es auf10^6
Stellen Sie schöne Kontrastbereiche gibt.Erklärung / Auto-Formatierung:
Ich habe auch herumgespielt
D=999
undj=1 to 998
um ein viel größeres und präziseres Bild zu bekommen. Die Ergebnisse sind irrelevant für die Herausforderung , weil sie viel zu groß sind , aber sie sind ordentlich.quelle
j<99
mitj<D
.()
aus dem Unter Namen, sollten Sie ändern(j<99)
zu(j<d)
und Sie können zum Zwecke quadratischen Zellen nur zur Herstellung verwendet werdenCells.RowHeight=48
anstelle derCells.RowHeight=9
,Cells.ColumnWidth=1
- dies schwieriger mit Ihrer Ausgabe verwirren nicht machen um , aber als gültig akzeptiert wurde von der Community -RowHeight
Trick aus dem VBA-Tipps-Post und wollte ihn integrieren, nachdem ich alle meine hübschen Bilder bekommen hatte. Das war ein netter Teil, danke.2^20
mit1E6
Perl + GD, 264
Golf von diesem Code
quelle
Floater, 620 Pixel
Eine Sprache, die ich erfunden habe, als ich mich von meiner eigenen Herausforderung inspirieren ließ, sowie von der esoterischen Sprache Piet.
quelle