В ожидании временного отключения MathJax отображенный MathJax в этом вопросе был заменен изображениями. Вы все еще можете публиковать ответы, но вам придется просматривать отображенный MathJax на другом сайте .
PPCG только что получил MathJax ! Это означает, что теперь мы можем легко включать хорошо отформатированные математические формулы в сообщения. ( Handy MathJax учебник. )
Например, вот золотое сечение, выраженное в виде бесконечной непрерывной дроби :
Код MathJax для этого уравнения
$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}}$$
Вы можете найти это, щелкнув правой кнопкой по формуле и следуя Show Math As → TeX Commands .
На $$
средства он отображается на его собственный в центре страницы вместо встроенного. Используйте сингл $
для inline.
Вызов
Напишите программу, которая принимает неотрицательное целое число n и выводит код MathJax для такого количества «шагов» непрерывной дроби для золотого сечения.
Чтобы сохранить стандартность ответов, вы должны использовать этот точный синтаксис MathJax:
Для n = 0 вывод должен быть
$$\varphi=1+\dots$$
.
Который отображается как:Для n = 1 вывод должен быть
$$\varphi=1+\cfrac1{1+\ddots}$$
.
Который представлен как:Для n = 2 вывод должен быть
$$\varphi=1+\cfrac1{1+\cfrac1{1+\ddots}}$$
.
Который отображается как:Для n = 3 вывод должен быть
$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}$$
.
Который отображается как:
Эта модель продолжается для больших п. Можно сказать, что n представляет количество линий деления в уравнении.
Примечания
\cfrac
используется вместо более распространенного\frac
.\dots
используется вместо\ddots
для n = 0.- Возьмите ввод из стандартного ввода или командной строки.
- Вывод в стандартный вывод (с необязательным завершающим переводом строки).
- В качестве альтернативы вы можете написать функцию, которая принимает n как целое число и возвращает код MathJax в виде строки (или все еще печатает ее).
счет
Наименьшая подача в байтах побеждает. Tiebreaker переходит к более раннему представлению.
источник
Uncaught ReferenceError: textbox is not defined
Ответы:
CJam,
5150 байтОбъяснение кода:
Несколько примеров:
N = 0
N = 4
N = 15
ОБНОВЛЕНИЕ - 1 байт сохранен благодаря Sp3000!
Попробуйте это онлайн здесь
источник
"$$\varphi=1+""\cfrac1{1+"ri:R*'\"ddots"R!>'}R*'$_
\v
к\\v
.Python,
706867 байтЭто определяет анонимную функцию, которая просто использует умножение строк и форматирование строк.
(Спасибо @xnor за указание, что это
\\c
может быть записано как\c
, посколькуc
не может быть экранирован. К сожалению, это не так\\v
, поскольку\v
ASCII 11.)Предыдущие попытки:
источник
> <> ,
8986 + 3 = 89 байтБеги с
-v
флагом, напримерУдивительно, но> <> здесь не так уж и плохо, поскольку мы можем имитировать умножение строк, имея счетчик, который мы уменьшаем на каждой итерации.
(-3 байта благодаря @randomra)
источник
Сетчатка , 160 + 7 = 167 байт
; +
(\d*)#(?:(((((((((9)|8)|7)|6)|5)|4)|3)|2)|1)|0) $1$1$1$1$1$1$1$1$1$1$2$3$4$5$6$7$8$9$10# ;
#Каждая строка входит в отдельный исходный файл, поэтому я добавил 1 байт для каждого файла после первого . Однако для удобства Retina теперь также поддерживает
-s
флаг командной строки, который позволяет поместить все это в один файл (в этом случае символы новой строки обрабатываются как разделители файлов).Большая часть кода (98 байт) используется для преобразования входных данных из десятичной в унарную (файлы с 3 по 6). Основная идея кода заключается в том, чтобы окружить входные данные
$$\varphi=1+\dots...$$
, затем преобразовать входные данные в унарные, а затем расширить\dotsN
или\ddotsN
перейти к следующему уровню непрерывной дроби (при уменьшенииN
доN-1
).источник
Юлия,
7673 байтаЭто создает лямбда-функцию, которая принимает одно целое число в качестве входных данных и возвращает MathJax в виде строки. Чтобы назвать его, дайте ему имя, например
f=n->...
.К сожалению, в строках Julia необходимо избегать обратной косой черты и знака доллара, поскольку они оба имеют особое значение. Конкатенация строк выполняется с использованием
*
и повторения строк с^
.Примеры:
Предложения приветствуются как всегда!
Изменить: Сохранено 3 байта благодаря plannapus!
источник
"d"^(n>0)
вместо того,(n>0?"d":"")
чтобы сделать его короче."string"^0
это законно.Элемент, 63 символа
Это самое простое решение. К сожалению, большое количество символов в выводе приводит к значительному увеличению длины программы (размещение строк в программе напрямую приводит к выполнению операций символами). Я уверен, что есть место для игры в гольф, но сейчас у меня нет больше времени.
Поскольку этот язык все еще относительно неизвестен, здесь есть ссылка на переводчик , написанный на Perl.
источник
T-SQL,
229227138Прошло некоторое время с тех пор, как я сделал ответ на SQL, и, как всегда, он очень многословен. Edit Конечно , я более сложное это и не нужен рекурсивный запрос вообще.
оригинал
Это создает встроенную табличную функцию, которая использует рекурсивный запрос для добавления
cfrac1{1+\
в дополнительную итерацию. Изменение точек на ddots было дорого, но спасло пару избавиться от замены :). Кроме того, необходимость приведения оригинальной строки как VARCHAR (MAX) стоит немного.Он используется следующим образом SQLFiddle :
источник
Рубин,
76757170 байтЭто кажется подозрительно простым, поэтому, пожалуйста, дайте мне знать, если я что-то напутал.
Между прочим, это первое, что я написал в Ruby - я искал язык, который поддерживал бы повторение строк путем умножения, и Ruby, похоже, добился цели.
Применяться так:
источник
J, 60 байт
Использование:
Метод:
Строка
'$$\varphi=1+\ cfrac1{1+\ d dots } $$ '
разрезается на пробелы, и части повторяются,1 n signum(n) 1 n 1
а затем эти части объединяются.Попробуйте это онлайн здесь.
источник
R,
9390Почти так же, как и другие ответы. Спасибо @plannapus за совет по сканированию.
cat
используется, а не paste0, так как результат будет\\
скорее, чем\
.В использовании
источник
n
как stdin при первом появлении, вы можете сохранить некоторые символы:cat("$$\\varphi=1+\\",rep("cfrac1{1+\\",n<-scan()),if(n)"d","dots",rep("}",n),"$$",sep="")
JavaScript,
11410910685 байт благодаря Джорджу РейтуЭто моя первая запись в соревновании по кеглю! Пожалуйста, скажите мне, как улучшить.
Предыдущая запись (106 байт):
Предыдущая запись (109 байт):
Предыдущая запись (114 байт):
Вставьте в консоль браузера и назовите,
f(n)
гдеn
число шагов.Упрощенный код :
источник
Pyth - 52 байта
Простой подход в Pyth, в значительной степени украденный из решения Python @ Sp3000. Использует оператор форматирования строки
%
.Попробуйте это онлайн здесь .
источник
Pyth, 50 байтов
источник
JavaScript (ES6), 76
80Частично рекурсивный. Одиночный / двойной d является наиболее раздражающей частью.
Тест в консоли Firefox / FireBug
источник
Питон,
90116так как наиболее эффективное решение уже было опубликовано несколько раз, вместо этого я заменяю строку
Редактировать: черт, упустил из виду
dots
вместоddots
forn=0
, теперь рекурсивное решение с добавленным дополнительным предложением слишком уродливо, чтобы конкурировать.источник
n=0
специальный случай (точки вместо ddots).Хаскелл, 86
По сути тот же подход, что и все решения здесь.
drop(0^n)"ddots"
это мило, хотя!источник