/* 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>
Réponses:
Calculatrice graphique Sharp EL-9300, 296 octets
C’était ma calculatrice graphique à l’école secondaire , en marche depuis 20 ans! Je me souviens d'avoir écrit un générateur de mandelbrot pour cela à l'époque. Et bien sûr, il se trouve toujours dans la mémoire de la NV:
Le rendu a pris environ 90 minutes.
C'est totalement non-golfé. Je suis sûr que je pourrais économiser un peu d'espace, mais je voulais juste partager cette curiosité historique!
J'aime que les seules déclarations de contrôle disponibles soient
goto
s.Voici une photo. Je n'ai pas d'autre moyen de sortir la sortie graphique:
la source
zx²+zy²>4
ça ne pourrait pas êtreAbs(x)>2
?Je suis tombé sur cela l'autre jour. Je n'en prends pas le mérite, mais bon sang, c'est génial:
Python 2:
http://preshing.com/20110926/high-resolution-mandelbrot-in-obfuscated-python/
la source
LaTeX, 673 octets
L'image PDF est composée d'unités carrées colorées de taille 1pb × 1pb.
Ungolfed
la source
Assemblage DOS x86,
208177173 octetsLe binaire complet, en HEX, que j'ai créé à la main, est:
L'image d'exemple est:
La source complète en ASM lisible est assez longue (je l'ai utilisée pour comprendre comment je codais cette ventouse):
Ceci est conçu pour la compilation avec TASM, s’exécute en MCGA et attend une pression de touche avant de mettre fin au programme. Les couleurs ne sont que la palette MCGA par défaut.
EDIT: Optimisé, il dessine maintenant en arrière (même image), et a enregistré 31 octets!
EDIT 2: Pour soulager le PO, j'ai recréé le binaire à la main. Ce faisant, j'ai également supprimé 4 octets supplémentaires. J'ai documenté chaque étape du processus, montrant tout mon travail pour que tout le monde puisse le suivre s'il le souhaite vraiment, ici (attention, c'est ennuyeux et très long): http://lightning.memso.com/media/perm/ mandelbrot2.txt
J'ai utilisé quelques regex dans EditPadPro, pour rechercher toutes les
; Final: ...
entrées du fichier et les vider sous forme binaire hexadécimal dans un fichier .com. Le binaire résultant est ce que vous voyez en haut de cet article.la source
#define
instruction prédéfinie en C. Il faut juste beaucoup de temps pour tout remplacer manuellement.Java,
505405324 octetsJuste un calcul standard,
avec golfitudemaintenant avec golfitude supplémentaire.Golfé:
Avec des sauts de ligne:
la source
f.setSize(n,668);
- dépend beaucoup du thème utilisé, mais je l'accepterai.double
où vousfloat
pourriez utiliser si vous essayiezJFrame
=>Frame
supprime 2 caractères. Bien que vous ne puissiez plus fermer la fenêtre. ;)final
modificateur. Et vous ne devez pas omettre les importations pour être une soumission complète.Javascript (ECMAScript 6) -
315308 caractèresn
pour faire varier la taille de l'image (et le nombre d'itérations).f(87);f(0);f(0);
appels (vers la fin) pour modifier les valeurs de couleur RVB. (f(8);f(8);f(8);
est en niveaux de gris.)Avec
f(8);f(23);f(87);
:la source
d=document
vous sauverait un peu plus. (Aussi, y a-t-il une raison pour créer la toile? CodeGolf suppose-t-il un certain niveau de HTML disponible?)document.createElement`canvas`
et sauvegarder 2 octets. Identique à lagetContext`2d`
.J, 73 octets
Modifier , certains expliquant:
la source
(0,?$~99 3)
ce qui produit 100 triplets RGB, un pour chaque niveau. En raison du caractère aléatoire, vous pouvez obtenir moins de 100 triplets, ce qui permet à certains niveaux d’effectuer une transition plus douce (tout en conservant des couleurs différentes).Mathematica,
2141912151930Depuis la version 10.0, il y a une fonction intégrée: (19 octets)
Pour se conformer aux exigences de la plage de coordonnées, 11 octets supplémentaires sont nécessaires. (30 octets)
Une caisse roulée à la main:
la source
{b, -2, 2, .01}, {a, -2, 2, .01}
est plus court et plus proche des règlesThe fractal coordinates range from approximately -2-2i to 2+2i
.Python avec Pylab + Numpy, 151 octets
Je ne pouvais pas supporter de voir une entrée Python non-DQ'ed, mais je pense que je me suis vraiment surpassée sur celui-ci, et je l'ai réduite à 153 caractères!
Aussi, notamment, l'avant-dernière ligne génère 4 avertissements d'exécution distincts, un nouveau record personnel!
la source
import
et*
, et ne pas définirf
du tout devrait être plus court, sauf si j'ai mal compris quelque chose, ce qui est possible. Vous devez également le modifier de manière à ce que 0 itération et 1 itération soient distiguées (elles sont actuellement toutes les deux en gris).wc
, mais peut-être essayer à lastat -c %s
place. Les bordures supérieure et inférieure noires font-elles partie de l'image?from numpy import*
place deimport numpy as n
et à lamgrid
place den.mgrid
.C + Allegro 4.2.2 - 248 octets
Sortie:
la source
... allegro.h>
etx=-1, ...
? Je suppose que Notepad ++ le compte comme\r\n
=0D 0A
.0.01
peut être tapé comme.01
.Windows PowerShell (v4), 299 octets
Instructions
Commentaire
la source
lt2
pourlt4
en faire un "ensemble de mandelbrot" au lieu de l'image que vous avez maintenant. De nombreux points de l'ensemble sont engloutis par les bandes de couleurs.a*a+b*b
passqrt(a*a+b*b)
-lt4
. Ce qui est bien - merci. J'ai mis à jour ma réponse avec le code corrigé et l'image. (Il faudra que je repense à ma compréhension de ce que ça fait, car il me manque quelque chose).Python + PIL , 166 octets
Sortie (s'ouvrira dans le visualiseur par défaut * .bmp):
la source
y
boucle.r=range(d*d)
, utilisezx/d
etx%d
pour x et y.Image.show()
enregistre implicitement un fichier temporaire).BBC Basic (228 octets)
Qu'en est-il des langues dont personne n'a jamais entendu parler dans le code golf? Le plus probablement pourrait être optimisé, mais je ne suis pas tout à fait où - améliorations possibles. Basé sur http://rosettacode.org/wiki/Mandelbrot_set#BBC_BASIC , mais j’ai essayé de coder le golf autant que possible.
Le
>
symbole sur l'image est prompt et il est généré automatiquement après l'exécution du programme.la source
NEXT Y,X
?APL, 194 caractères / octets *
Ceci est pour Dyalog APL avec
⎕IO ⎕ML←1 3
La plupart de l'espace est pris par les appels d'API pour afficher un bitmap dans une fenêtre (lignes 2, 3, 4)
S'il y avait un raccourci pour le faire, le code serait réduit à 60 caractères (ligne 1)
PLZ HELP TROUVEZ LE COURT RACCOURCI KTHX
Version non-golfée (ligne 1 seulement)
Capture d'écran:
(La version gratuite fonctionne sous OS X sous Wine. Oui, je suis bon marché comme ça.)
*: Dyalog possède son propre jeu de caractères sur un octet, avec les symboles APL mappés sur les valeurs supérieures de 128 octets, de sorte que le code entier puisse être stocké dans 194 octets. Chaque affirmation de cette note de bas de page est probablement vraie. Restez calme et continuez à jouer au golf.
la source
Mathematica 10.0, 19 caractères
MandelbrotSetPlot
est une nouvelle fonction de Mathematica 10.0.la source
R,
199211 caractèresAncienne solution à 199 caractères:
Avec indentation:
Edit: Solution à 211 caractères qui colore différemment l’intérieur du jeu et l’extérieur du premier calque:
Avec indentation:
la source
rainbow()
:)Java - Traitement (271 octets)
Étendu:
la source
TI-80 BASIC,
125 à106 octetsBasé sur la réponse de Digital Trauma.
la source
GLSL - 225 octets:
Définition de variables dans le code (242 octets):
Voir dans ShaderToy
Cela nécessite qu'une texture de palette appropriée soit chargée en tant que
iChannel0
. (La coloration ici provient de la texture "pixel aléatoire" sur ShaderToy).la source
Octave (
212136 octets)(Incluant maintenant quelques idées dues à @ChrisTaylor.)
Avec des espaces:
Sortie:
Pour convertir en Matlab, changez "
m+=abs(z)<2
" par "m=m+(abs(z)<2)
". [+3 octets]Pour que le rapport de format 1: 1, ajoutez "
;axis image
". [+11 octets]Ma première réponse (212 octets):
la source
;axis image
". Est-ce nécessaire pour se qualifier?Applesoft BASIC,
302286280 octetsCela sélectionne des points aléatoires à dessiner, ainsi il fonctionnera pour toujours et ne remplira jamais complètement le plan.
Il s'avère que Applesoft BASIC est pardonne vraiment le manque d'espace. Un seul espace est nécessaire dans tout le programme.
Sortie après 14 heures:
GIF:
Avant de jouer au golf:
Remarque:
POKE 49234,0
(dans Applesoft BASIC) place la machine en mode graphique complet.Une version optimisée pour les affichages N & B:
Sortie après 12 heures:
Une version qui fonctionnera sous GW-BASIC (DOS):
la source
gnuplot 110 (105 sans nouvelles lignes)
Entrée obligatoire dans le gnuplot. Cela a été fait d'innombrables fois mais celui-ci est à partir de zéro (pas que c'est difficile). J'aime la façon dont le
gnuplot
golf est intrinsèque à ses commandes :)ungolfed:
Cependant, je suis PROFONDÉMENT déçu de la saisie de nombres complexes.
x*{1,0}+y*{0,1}
doit être le plus triste moyen existant de construire un nombre complexe.Oups, l'image:
Augmentez la résolution des isosamples. Nous pourrions aussi dire
unset tics
etunset colorbox
pour une image pure, mais je pense que cette version se qualifie très bien.la source
*{1,0}
c'est l'unité et c'est plutôt une façon de dire code-bowling*1
, et peut probablement être abandonnée. (non testé)Matlab (89 bytes)
Sortie -
Ne satisfait pas à l'exigence voulant que les cellules internes soient noires ou blanches, mais cela peut être satisfait en (1) utilisant
imshow(K)
au lieu deimagesc(K)
(nécessite 1 octet de moins mais nécessite la boîte à outils de traitement d'image) ou (2) en ajoutcolormap hot
(nécessite 12 autres octets).Version non-lisée -
la source
C-C
lieu de mon0*e(401)
. De plus, vous n'utilisez pasN
. Et nous pouvons être un peu plus courts en utilisant monm+=abs(z)<2
idée à la place de votreK(~K&abs(Z)>2)=j
.colormap jet
etcolormap hot
sont toutes les deux incorrectes cependant - elles n’ont que 64 couleurs distinctes.colormap(hot(101))
ne me semble pas distinctement visible.colormap([0,0,0;jet(100)])
est peut-être acceptable mais douteux.K=K+abs(Z)<2
signifieK=((K+abs(Z))<2)
. (Je me suis donc trompé sur l'estimation d'un octet à éliminer+=
.)JavaScript + HTML5 (356B)
(Remarque: les lignes se terminant par '//' sont ajoutées ici pour une meilleure lisibilité)
Version performante (375B):
Version lente (356B): supprimez la 'var' et les paramètres de la fonction interne pour que la portée globale soit utilisée.
Essayez-le: http://jsfiddle.net/neuroburn/Bc8Rh/
la source
var w,
au début et changerfunction(x,i,j,k,l,c,o)
enfunction()
.Javascript, 285B
Basé sur mon code et quelques améliorations sur le code de MT0 , j'ai maintenant 285B en couleurs:
en action: http://jsfiddle.net/acLhe/7/
était: Coffeescript, 342B
Coffeescript est censé être lisible: - / le voir en action: http://jsfiddle.net/acLhe/6/
la source
QBasic, QuickBasic, QB64 -
156153Palette DOS standard:
la source
Tcl / Tk, 316
322324336348349351352353354355Maintenant, une version plus courte utilisant des triplets de couleurs de style abrégé #RGB de 3 lettres (au lieu de triplets de #RRGGBB), qui donne des couleurs différentes
Et un peu plus de golf.
Tcl / Tk, 325
331333345357358360361362364365Je pense que je gagnerais si le critère était la beauté!
Présentation:
la source
rename set s
au sommet, puis remplacer tous lesset
pars
Excel VBA,
251246224223221 octets5 octets sauvés grâce à ceilingcat 23 octets sauvés grâce à Taylor Scott
Sortie:
J'ai créé une version qui le faisait il y a longtemps, mais qui comportait de nombreux extras, tels que permettre à l'utilisateur de choisir la couleur de base et les calculs faciles à suivre. Jouer au golf était un défi intéressant. La
Color
méthode utilise1E6
comme moyen d’obtenir une large gamme de couleurs puisque les couleurs valides sont0
à2^24
. Le régler pour10^6
donner de belles zones de contrasteExplication / Mise en forme automatique:
J'ai également joué avec
D=999
etj=1 to 998
pour obtenir une image beaucoup plus grande et plus précise. Les résultats ne sont pas pertinents pour le défi car ils sont beaucoup trop volumineux mais ils sont bien.la source
j<99
parj<D
.()
du nom de sous, vous devez changer(j<99)
pour(j<d)
et vous pouvez, dans le but de faire des cellules carrées utilisent uniquementCells.RowHeight=48
à la place duCells.RowHeight=9
,Cells.ColumnWidth=1
- cela ne fait déconner avec votre sortie plus difficile , mais a été accepté comme valable par la communauté -RowHeight
astuce du post de conseils VBA et je voulais l'intégrer après avoir obtenu toutes mes jolies images. C'était un bon chunk'o'bytes, merci.2^20
avec1E6
Perl + GD, 264
Golfé à partir de ce code
la source
Flotteur, 620 pixels
Un langage que j’ai inventé lorsque j’ai été inspiré par mon propre défi, ainsi que par le langage ésotérique Piet.
la source