/* 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>
Ответы:
Графический калькулятор Sharp EL-9300, 296 байт
Это был мой графический калькулятор для средней школы , который лет 20 назад! Я помню, как писал для этого генератор Мандельброта. И конечно же, он все еще находится в памяти NV:
Рендеринг занял около 90 минут.
Это совершенно безвкусно. Я уверен, что смогу сэкономить немного места, но я просто хотел поделиться этим историческим любопытством!
Мне нравится, что единственными доступными управляющими утверждениями являются
goto
s.Вот фото. У меня нет других способов получить графический вывод:
источник
zx²+zy²>4
не может ли это бытьAbs(x)>2
?Я столкнулся с этим на днях. Я не беру на себя ответственность, но, черт возьми, это круто
Python 2:
http://preshing.com/20110926/high-resolution-mandelbrot-in-obfuscated-python/
источник
LaTeX, 673 байта
PDF-изображение состоит из цветных квадратных блоков размером 1 бп × 1 бп.
Ungolfed
источник
Сборка x86 для DOS,
208177173 байтаПолный бинарный файл в HEX, который я создал вручную:
Образец изображения:
Полный исходный код в читаемом ASM довольно длинный (я использовал это, чтобы выяснить, как я кодировал эту присоску):
Он предназначен для компиляции с TASM, запускается в MCGA и ожидает нажатия клавиши перед завершением программы. Цвета - это просто стандартная палитра MCGA.
РЕДАКТИРОВАТЬ: Оптимизировал его, теперь он рисует в обратном направлении (хотя то же изображение), и сохранил 31 байт!
РЕДАКТИРОВАТЬ 2: Чтобы смягчить ОП, я воссоздал двоичный файл вручную. Таким образом, я также сбрил еще 4 байта. Я задокументировал каждый шаг процесса, показывая всю мою работу, чтобы любой мог следовать за ней, если он действительно этого захочет, (предупреждение, это скучно и очень долго): http://lightning.memso.com/media/perm/ mandelbrot2.txt
Я использовал пару регулярных выражений в EditPadPro, чтобы найти все
; Final: ...
записи в файле и вывести их как шестнадцатеричный двоичный файл в файл .com. Полученный двоичный файл - это то, что вы видите в верхней части этого поста.источник
#define
операторы в C. Это просто отнимает много времени, чтобы заменить все вручную.Java,
505405324 байтаПросто стандартный расчет,
с Golfitudeтеперь с дополнительной Golfitude.Golfed:
С переносами строк:
источник
f.setSize(n,668);
- сильно зависит от используемой темы, но я приму это.double
гдеfloat
можно было бы использовать, если бы вы попыталисьJFrame
=>Frame
сбривает 2 символа. Хотя ты больше не можешь закрыть окно. ;)final
модификатора. И вы не должны опускать импорт, чтобы быть полным представлением.Javascript (ECMAScript 6) -
315308 символовn
чтобы изменить размер изображения (и количество итераций).f(87);f(0);f(0);
вызовах (ближе к концу), чтобы изменить значения цвета RGB. (f(8);f(8);f(8);
Оттенки серого.)С
f(8);f(23);f(87);
:источник
d=document
спас бы вас еще немного. (Кроме того, есть ли причина для создания холста? Предполагает ли Codegolf определенный уровень доступного HTML?)document.createElement`canvas`
и сохранить 2 байта. Так же, какgetContext`2d`
.J, 73 байта
Изменить , некоторые объяснения:
источник
(0,?$~99 3)
которого получается триплеты по 100 ГБ, по одному на каждый уровень. Из-за случайности вы можете получить менее 100 триплетов, поэтому некоторые уровни будут иметь более плавный переход (но все равно будут иметь разные цвета).Mathematica,
2141912151930Начиная с версии 10.0 имеется встроенное: (19 байт)
Для соответствия требованиям диапазона координат требуется 11 дополнительных байтов. (30 байт)
Ручной случай:
источник
{b, -2, 2, .01}, {a, -2, 2, .01}
Короче и ближе к правиламThe fractal coordinates range from approximately -2-2i to 2+2i
.Питон с Pylab + Numpy, 151 байт
Я не мог видеть запись Python без DQ, но я думаю, что я действительно превзошел себя в этом, и я сделал это до 153 символов!
Кроме того, в частности, от второй до последней строки выводятся 4 разных предупреждения во время выполнения, новый личный рекорд!
источник
import
и*
, не определяяf
вообще, должно быть короче, если я не понял что-то, что возможно. Вы также должны изменить это так, чтобы 0 итераций и 1 итераций были выделены (они оба серые).wc
, но, возможно, попробуюstat -c %s
вместо этого. Являются ли черные верхние и нижние границы частью изображения?from numpy import*
вместоimport numpy as n
иmgrid
вместоn.mgrid
.C + Allegro 4.2.2 - 248 байт
Выход:
источник
... allegro.h>
иx=-1, ...
? Я полагаю, Notepad ++ считает это\r\n
=0D 0A
.0.01
можно напечатать как.01
.Windows PowerShell (v4), 299 байт
инструкции
Комментарий
источник
lt2
его,lt4
чтобы сделать его «набором Мандельброта» вместо того изображения, которое у вас есть сейчас. Многие точки набора поглощаются цветными полосами.a*a+b*b
нетsqrt(a*a+b*b)
-lt4
. Что хорошо - спасибо. Я обновил свой ответ с исправленным кодом и изображением. (Придется переосмыслить мое понимание того, что он делает, так как я что-то упустил).Python + PIL , 166 байт
Вывод (откроется в программе просмотра * .bmp по умолчанию):
источник
y
петли.r=range(d*d)
, используйтеx/d
иx%d
для х и у.Image.show()
неявно сохраняет временный файл).BBC Basic (228 байт)
А как насчет языков, о которых никто никогда не слышал в кодовом гольфе? Скорее всего, можно оптимизировать, но я не совсем там, где возможны улучшения. На основании http://rosettacode.org/wiki/Mandelbrot_set#BBC_BASIC , но я старался как можно больше кодировать в гольф.
>
Символ на изображение стремителен, и это автоматически после запуска программы.источник
NEXT Y,X
?APL, 194 символа / байт *
Это для Dyalog APL с
⎕IO ⎕ML←1 3
Большая часть пространства используется вызовами API для отображения растрового изображения в окне (строки 2, 3, 4).
Если бы был ярлык, чтобы сделать это, код был бы до 60 символов (строка 1)
PLZ HELP НАЙТИ SHORTCUT KTHX
Неуправляемая версия (только строка 1)
Скриншот:
(Бесплатная версия запускается в OS X под Wine. Да, я такой дешевый.)
*: Dyalog имеет свой собственный однобайтовый набор символов с символами APL, сопоставленными с верхними 128-байтовыми значениями, поэтому весь код может храниться в 194 байтах. Каждое утверждение в этой сноске, возможно, верно. Сохраняйте спокойствие и продолжайте играть в гольф.
источник
Mathematica 10,0, 19 символов
MandelbrotSetPlot
это новая функция в Mathematica 10.0.источник
R,
199211 символовСтарое решение на 199 символов:
С отступом:
Изменить: Решение на 211 символов, которые по-разному окрашивают внутреннюю часть набора и внешнюю часть первого слоя:
С отступом:
источник
rainbow()
:)Java - обработка (271 байт)
Expanded:
источник
TI-80 BASIC,
125106 байтОсновано на ответе Digital Trauma.
источник
GLSL - 225 байт:
Определение переменных в коде (242 байта):
Смотрите это в ShaderToy
Это требует, чтобы подходящая текстура палитры была загружена как
iChannel0
. (Раскраска здесь из текстуры "случайный пиксель" на ShaderToy).источник
Октава (
212136 байт)(Теперь включаем некоторые идеи из-за @ChrisTaylor.)
С пробелами:
Выход:
Чтобы преобразовать в Matlab, измените "
m+=abs(z)<2
" на "m=m+(abs(z)<2)
". [+3 байта]Чтобы сделать соотношение сторон 1: 1, добавьте «
;axis image
». [+11 байт]Мой первый ответ (212 байт):
источник
;axis image
". Это необходимо для квалификации?Applesoft BASIC,
302286280 байтОн выбирает случайные точки для рисования, поэтому он будет работать вечно и может никогда не заполнить всю плоскость.
Оказывается, Applesoft BASIC действительно прощает отсутствие мест. Во всей программе необходим только один пробел.
Выход через 14 часов:
GIF:
Перед игрой в гольф:
Примечание:
POKE 49234,0
(в Applesoft BASIC) переводит аппарат в режим полной графики.Версия, оптимизированная для черно-белых дисплеев:
Выход через 12 часов:
Версия, которая будет работать в GW-BASIC (DOS):
источник
Гнуплот 110 (105 без перевода строки)
Обязательный вступительный взнос. Это было сделано бесчисленное количество раз, но это с нуля (не то, что это сложно). Мне нравится, как
gnuplot
гольф его команды по своей природе :)ungolfed:
Тем не менее, я глубоко разочарован введением комплексных чисел.
x*{1,0}+y*{0,1}
должен быть самым печальным из существующих способов построения комплексного числа.К сожалению, изображение:
Установите isosamples выше для лучшего разрешения. Можно также сказать
unset tics
иunset colorbox
о чистом изображении, но я думаю, что эта версия вполне подходит.источник
*{1,0}
это единство, оно больше похоже на боулинг-код*1
, и, вероятно, его можно отбросить. (не проверено)Matlab (89 байт)
Выход -
Не удовлетворяет требованию, что внутренние ячейки должны быть черными или белыми, но это может быть удовлетворено либо (1) использованием
imshow(K)
вместоimagesc(K)
(требуется 1 байт меньше, но требуется набор инструментов для обработки изображений), либо (2) добавлениемcolormap hot
(требуется еще 12) байт).Безголовая версия -
источник
C-C
вместо моего0*e(401)
. Кроме того, вы не используетеN
. И мы можем стать немного короче, используя моюm+=abs(z)<2
идею вместо вашейK(~K&abs(Z)>2)=j
.colormap jet
иcolormap hot
оба неверны - они имеют только 64 разных цвета.colormap(hot(101))
не выглядит визуально различимым для меня.colormap([0,0,0;jet(100)])
возможно приемлемо, но сомнительно.K=K+abs(Z)<2
значитK=((K+abs(Z))<2)
. (Так что я ошибся в оценке одного байта для исключения+=
.)JavaScript + HTML5 (356B)
(Примечание: строки, заканчивающиеся на «//», добавлены здесь для удобства чтения)
Исполнительская версия (375B):
Медленная версия (356B): удалите 'var' и параметры из внутренней функции, чтобы использовать глобальную область.
Попробуйте это: http://jsfiddle.net/neuroburn/Bc8Rh/
источник
var w,
в начале и изменитеfunction(x,i,j,k,l,c,o)
наfunction()
.Javascript, 285B
Основываясь на моем коде и некоторых улучшениях в коде MT0 , я получил цвет до 285B:
в действии: http://jsfiddle.net/acLhe/7/
был: Coffeescript, 342B
Coffeescript должен быть читаемым: - / увидеть его в действии: http://jsfiddle.net/acLhe/6/
источник
QBasic, QuickBasic, QB64 -
156153Стандартная палитра DOS:
источник
Tcl / Tk, 316
322324336348349351352353354355Теперь укороченная версия с использованием трехбуквенных цветовых триплетов в стиле #RGB (вместо триплетов #RRGGBB), что приводит к различным цветам.
И еще немного игры в гольф.
Tcl / Tk, 325
331333345357358360361362364365Думаю, я бы победил, если бы критерием была красота!
Презентация:
источник
rename set s
в верхней части , а затем заменить всеset
ВУs
Excel VBA,
251246224223221 байтСэкономлено 5 байт благодаря floorcat Сэкономлено 23 байт благодаря Тейлор Скотт
Выход:
Я сделал версию, которая сделала это давным-давно, но у нее было много дополнительных возможностей, таких как предоставление пользователю возможности выбрать основной цвет и простую для понимания математику. Игра в гольф была интересной задачей.
Color
Метод использует в1E6
качестве средства , чтобы получить широкий диапазон цветов , так как действительные цвета0
к2^24
. Установка его10^6
дала хорошие контрастные области.Объяснение / Автоформатирование:
Я также поиграл с
D=999
и,j=1 to 998
чтобы получить более крупное и более точное изображение. Результаты не имеют никакого отношения к проблеме , потому что они слишком большие , но они являются в чистом виде.источник
j<99
наj<D
.()
из вспомогательного названия, вы должны изменить ,(j<99)
чтобы(j<d)
и вы можете, с целью сделать квадратные ячейки использовать толькоCells.RowHeight=48
на местеCells.RowHeight=9
,Cells.ColumnWidth=1
- это делает возиться с выходом более трудным , но было принято как действительные сообществом -RowHeight
трюк из поста с советами VBA и намеревался интегрировать его после того, как я получил все свои красивые картинки. Это был хороший chunk'o'bytes, спасибо.2^20
с1E6
Perl + GD, 264
Гольф от этого кода
источник
Floater, 620 пикселей
Язык, который я придумал, когда меня вдохновил мой собственный вызов, а также эзотерический язык Пита.
источник