Выход Pi без математики [закрыт]


56

Как можно меньше байт, ваша задача - написать программу, которая выдает:

3.14

На празднование позднего дня Пи, конечно! :)

правила

Вы можете сделать это как угодно, но есть некоторые ограничения.

  • Вы не можете использовать арифметические операции где-либо в вашей программе. Это включает в себя +, -, *, /, %, ^(возведение в степень), и т.д ... Это также включает в себя приращением (обычно ++), декремента ( --), битовые операции , и любые встроенные функции , которые могут быть использованы в качестве замены , таких как sum(), prod(), mod(), double(), pow(), sqrt(), inc()и dec()т. д. (по усмотрению автора)
  • Цифры 3, 1и не4 могут появляться где-либо в вашем коде.
  • Вы можете не использовать какие - либо предопределенные переменные / постоянные , что ваш язык может иметь в качестве замены 3, 1и 4. (По усмотрению автора)
  • Вы также можете не использовать любые тригонометрические функции , такие как sin(), cos(), tan(), arcsin(), arccos(), arctan(), sinh(), cosh(), tanh()и т.д. ... (усмотрение автора)
  • Вы не можете использовать встроенные или предопределенные значения Pi (или 3.14). Нет веб-запросов .
  • Ваша программа не может требовать какого-либо ввода (кроме запуска).
  • 3.14это единственное , что вы можете выводить, это не может быть частью более длинного / большего вывода ..

победитель

Ответ с наименьшим количеством байтов 18 апреля выигрывает. Удачи!

Ждем умных ответов от умных умов! Малболе кто-нибудь? :П


3
Вы можете уточнить, что ^это оператор возведения в степень, а не побитовый оператор XOR.
ace_HongKongIndependence

2
Разрешены ли побитовые операторы?
ProgramFOX

1
@ProgramFOX Ну, они могут быть использованы в качестве замены для нормальной работы, так что нет. Не допускается. Я буду редактировать пост.
kukac67

1
Веб-запросы разрешены?
swish

7
@swish: я бы не стал использовать веб-запросы, потому что это относится к списку стандартных «лазеек», которые больше не смешны
ProgramFOX

Ответы:


25

CJam - 8 6

S`,'.E

CJam - это новый язык, который я разрабатываю, похожий на GolfScript - http://sf.net/p/cjam .
Вот объяснение:

Sпеременная, предварительно инициализированная пробелом (""),
`генерирует строковое представление последнего значения - которое точно " "(3 символа)
,вычисляет длину строки (3)
'., если символ точки
Eявляется переменной, инициализированной до 14; 3, 1 и 4 не допускаются, но это ничего не говорит о 14 :)

Кредиты для Doorknob для идеи backtick


1
@ Brillia, и я бы согласился на использование E.
kukac67

6
@ kukac67 Хотя я еще не выпустил официальный релиз (выйду сегодня), я уже сделал текущий код CJam доступным через hg. Если вы получите код CJam за 1 день до публикации вопроса, он запустит мою программу правильно (поэтому я не внес изменений для решения этой проблемы). Но я все равно не против.
aditsu

33
время разрабатывать HQ9 + π ...
Nzall

2
@AnonymousPi Каждый может свободно голосовать за ответы, которые он выбирает. Возможно, их больше впечатляют другие ответы, даже если они не такие короткие.
aditsu

2
Почему у вас есть переменная, предварительно инициализированная до 14?
user2357112

113

PHP - 22 байта

<?=date('n.j',8899e5);

День Пи в 1998 году был действительно крутым!


13
@ kukac67: n.jэто формат и 8899e5метка времени Unix от 14 марта 1998 года.
ProgramFOX

7
Это так умно.
Амаль Мурали

7
Вы можете сохранить 7 символов, удалив ,8899e5. Это будет правильно один раз в год.
Дамир Касипович

1
@ Тимо Ты прав, но в нем есть недопустимая цифра «3»;).
Blackhole

18
@ Blackhole 20 байтов: <?=date('w.W',78e5);1 апреля 1970 года было средой на неделе 14.
прим

92

С, 39

Предполагается, что машина имеет младший порядок и использует стандарт IEEE с плавающей точкой.

main(){printf("%.2f",*(float*)"P@I@");}

Интересный факт, что "P@I@"это на самом деле не связано с, PIно эквивалентно тому, 0x40494050что является представлением3.144550323486328

http://ideone.com/uXVEtl


3
Это довольно круто.
wchargin

1
В вашем коде предполагается ввод типов на машине с прямым порядком байтов.
Наюки

@NayukiMinase, да, вы правы, на это стоит обратить внимание. И это также предполагает использование стандарта IEEE с плавающей точкой.
Майкл М.

И он содержит неопределенное поведение (неявное объявление функции variadic)
rubenvb

5
Этот код фактически предполагает, что машина - это машина Майкла :-).
Конрад Боровски

50

постоянный ток , 11 9 байт

zE[.]znPp
  • z Вставить текущую глубину стека (0) в стек
  • EНажмите E 16 (== 14 10 )
  • [.] Нажмите на строку "."
  • z Вставьте текущую глубину стека (3) в стопку
  • n Поп 3 и распечатать как число
  • PПоп "." и печатать как символ
  • p Поп 14 и распечатать как число с новой строкой

Выход:

$ dc <<< zE[.]znPp
3.14
$ 

Таким образом, "использовать базу ввода" является оператором? Это пахнет как арифметическая операция, но, вероятно, все еще в силе.
Brilliand

@ Brilliand В этом вопросе я не вижу ничего, что запрещало бы базовые преобразования. На самом деле ОП, похоже, поощряет базовые преобразования в комментарии здесь codegolf.stackexchange.com/a/25681/11259
Цифровая травма

Я согласен, что это действительно; Я просто думаю, что когда базовое преобразование является оператором, а не частью синтаксиса чисел, оно стирает грань между встроенными данными и арифметической операцией.
Brilliand

Я думаю, что это должно быть 15 байтов?
Зарегистрированный пользователь

9
@AdityaPatil Почему? dcэто язык и переводчик, как и все остальные языки здесь. dc -e это просто вызов этого переводчика. Я мог бы так же легко сохранить 9-байтовую программу в файле и запустить dc pi.dc. Если эти байты нужно посчитать, то то же самое должно быть применимо ко всем другим языкам. Например, включить python во все записи Python или ruby golfscript.rb во все записи Golfscript. Я полагаю, что согласованная конвенция здесь не должна включать их, если не будут приняты особые варианты.
Цифровая травма

42

JavaScript ( ES5 ) 20 байт

Вариант решения JS от m.buettner.

(x='.'+0xE).length+x

Изменить: JavaScript ( ES5 ) 18 байт

Вариант идеи ComFreek об использовании функции декодирования base64.

atob('Mw')+'.'+0xE

Изменить: Javascript ( ES5 ) 16 байт

Если унарному +оператору разрешено приводить строку к числу, его можно уменьшить до:

+atob('MDMuMTQ')

ВАУ! Это действительно умно!
kukac67

9
@NateEldredge Это конкатенация строк, а не арифметика.
Томсминг

использование +принято здесь?
phuclv

1
Я нахожу решение Javascript самым элегантным, и я собирался опубликовать свое, пока не заметил, что в нем есть «4»: atob ('My4xNA =='), lol.
rdev5

1
@ Денис, ты прав, он все еще там. Это даже там, если я скопировать + вставить результат из консоли. Я не доволен этим, поэтому я вернусь к 16-байтовому решению.
nderscore

39

Haskell, 41 байт

Когда в Австралии день пи?

p=(\(a:n:y:t:i:m:e:_)->[m,a,t,e])['.'..]

Отредактировано, чтобы добавить: как и другой ответ на Haskell, который выводит строку, поэтому имеет кавычки. Вы можете набрать 33, и быть строго в рамках правил, но это менее весело:

p=putStr$map([','..]!!)[7,2,5,8]

Хаха, вау. Это хорошо!
Ry-

Можете ли вы объяснить, почему это работает?
yhager

5
Мне это очень нравится, +1. Но я думаю, что технически ".." вызывает оператор приращения, который был запрещен. (На самом деле, голосование также вызывает операцию приращения, поэтому ее также следует запретить ;-)
Марк ван Леувен,

Я действительно думал об этом - у меня был еще более короткий ответ: p=[2.9,2.92..]!!([0,6..]!!2)... и в этом ..он выглядит неправильно. Но Хаскелл строго типизирован, и прирост в ответе, который я дал, Charне Numявляется и не арифметическим - вещь, которая фактически запрещена. Мне нужно fromEnumпреобразовать символы обратно в числа, чтобы использовать их таким образом. Во всяком случае, моя совесть чиста :)
bazzargh

6
@yhager: ['.' ..] - это последовательность символов "./0123456 ..." (и т. д.). (a: n: y: t: i: m: e: _) - это сопоставление с шаблоном, вытягивающее первые 7 символов, [m, a, t, e] переставляет 4 из них в «3.14». Зная, что это то, что вы хотите сделать, это вопрос поиска в словаре, чтобы найти слова с правильной структурой. Что я и сделал ... например, другая пара была "безобразной мастью". Тогда вы придумаете шутку :)
bazzargh

32

Азбука Морзе, 33 байта

morse -d ...-- .-.-.- .---- ....-

Технически говоря, информация занимает всего 21 байт.


11
Мы определенно нуждаемся в большем количестве решений для гольфа в азбуке Морзе ...
перестал поворачиваться против часовой стрелки

26
Технически говоря, я бы сказал, 21 бит , а не байты
Майкл М.

14
@ Майкл, так как азбука Морзе может быть либо точкой, тире, либо пробелом, не потребуется ли более 1 бита для хранения 1 операции?
smcg

5
@smcg ButSpacesAreForWeakPeopleWhoCan'tReadThingsLikeThis
Коул Джонсон

8
Столько, сколько мне нравится азбука Морзе (и, следовательно, это решение) - но это не так с правилом 3: «Вы не можете использовать любые предопределенные переменные / константы, которые ваш язык может иметь в качестве замены 3, 1 и 4». или даже правило 2: «Цифры 3, 1 и 4 могут нигде не появляться в вашем коде.»?
Кратенко

27

J - 15 11 10 символов

Короче, используя фантастику i:.

6{i:6.28j8

Разъяснение:

  • 6.28j8 - Комплекс № 6.28 + 8i.
  • i:- Здесь происходит волшебство. i:на комплексном числе A + Bi B ≠ 0 отбирает B + 1 одинаково расположенных точек из интервала [-A, A].
  • 6{ - Возьмите элемент с индексом 6, который как раз и получается 3.14.

Ранее у нас была следующая ерунда:

|.'.'2}":22b8d5

Объяснил взрывом:

         22b8d5  NB. 8d5 in base 22 = 4163
       ":        NB. convert to string
  '.'2}          NB. change character at index 2 to '.'
|.               NB. reverse to make '3.14'

Вместо этого |.'.'2}":22b8d5вы можете сохранить 2 символа, выбрав число, которое не требует перестановки:'.'1}":16bbc6
рациональный,

3
@epicwisdom Цифры 3, 1 и 4 запрещены. Я должен использовать номер в форме , 41X3потому что я только разрешено изменять символы с индексами 0 и 2.
algorithmshark

20

Командная строка Linux, 35 байт

Этот не близок к победе, но вот для удовольствия:

ping -w2 67502862|grep -oP '.\..\d'

Выход (через 2 секунды):

$ ping -w2 67502862|grep -oP '.\..\d'
3.14
$

Цитата из вопроса: «Нет веб-запросов».
Ручка двери

9
@ Doorknob ICMP эхо-запрос! = Веб-запрос. Несмотря на это, пинг до 4.6.3.14, от которого я не получаю ответа, поэтому не похоже, что я получаю какую-либо полезную информацию из Интернета
Digital Trauma

10
@ Doorknob Но если это все еще беспокоит вас, мы можем сделать это :;ping -t${#?} -qc2 67502862|grep -oP '.\..\d'. Это устанавливает TTL в 1, поэтому исходящее ICMP-эхо сбрасывается вашим маршрутизатором, прежде чем он когда-либо попадет в Интернет
Digital Trauma

1
Вы можете сохранить 9 секунд, используя ping -w2 67502862. (Редактировать ниндзя, потому что, прежде чем я советовал w1, почти нарушил правила.)
lolesque

@lolesque Спасибо. Тем не менее, результат игры не улучшается ;-)
Digital Trauma

16

GolfScript, 18 13 12

'.'.`,\.,n`,

Старая версия:

'...','.'.,'....',

Это очень художественно, всего 3 уникальных персонажа! ;)

Как это устроено:

# cmd   # stack
'...',  # 3
'.'.    # 3 '.' '.'
,       # 3 '.' 1
'....', # 3 '.' 1 4

Вот объяснение 12-символьной версии (гораздо интереснее, IMO):

'.' # '.'
.`, # '.' 3
\.  # 3 '.' '.'
,   # 3 '.' 1
n`, # 3 '.' 1 4

Это работает, потому что n`,есть 4, так как n`есть '"\n"'. Та же логика для '.'`,. Он также меняет вместо создания новой строки для сохранения символа (спасибо @algorithmshark).

Альтернативная версия:

'pi ','.'.,'day!',

или же

'Hi ','.'.,'PPCG',

Или что-нибудь в этих строках, правда. :П


Только 3 разных персонажа, круто :)
aditsu

Будет ли '.'.`,\.,n`,работать, чтобы сохранить символ? Повторное использование '.'путем дублирования и обмена.
алгоритмистика

@algorithmshark Да, спасибо!
Дверная ручка

Это очень умно! +1
VisioN

это похоже на версию азбуки Морзе
pwned

14

Ответ ОП.

Математика, 21 20 18

Это кажется дешевым ...

Range[2,5,.06][[20]]

или же

Range[2,5,.02][[58]]

Разобрался, как это сделать 18:

Range[-.86,5][[5]]

Хаскелл, 49 48 12

(48 включает символ новой строки)

p=[-6..]
r=concat$show(p!!9):".":(show$p!!20):[]

Запустите его, вызвав rфункцию.

Используя метод, описанный выше в Mathematica, вы можете ввести его в GHCi:

[-2.86..]!!6

Ява 87 86

class P{public static void main(String[]a){System.out.print("tri".length()+"."+0xe);}}

Скала, 27

Перевод с Java в соответствии с предложением Score_Under . (Я действительно не знаю, Scala)

print("tri".length+"."+0xe)

О, 0xeэто умно. Вы не возражаете, если я улучшу свой ответ JS этим? ;)
Мартин Эндер

Большинство java можно напрямую преобразовать в scala, который обычно короче, если вы действительно хотите сэкономить на байтах - если вы используете его как скрипт, все это просто: print ("tri" .length + "." + 0xe)
Score_Under

Да, я думал о том же, что у Юлии короче, чем [-.86:5][5]у 11, но решил, что это не считается, поскольку диапазоны - просто математика.
gggg

12

Баш, 50

Справка / сообщения об ошибках - это не внешние ресурсы, а вывод команды!

Если что-то является нарушением правил, это оно. Это использует совпадение, что сообщение помощи, данное STDERRточной командой

ping6

длиной 314 символов (по крайней мере, в Ubuntu 13.10 с iputils-121221). РЕДАКТИРОВАТЬ: я ценю, что это гораздо менее портативный, чем я ожидал ...

m=`ping6|&wc -c`
false
o=$?
echo ${m:0:o}.${m:o:2}

Первая строка принимает длину символа справочного сообщения и сохраняет его в переменной.

Как и в других моих ответах, следующие несколько строк получают номер 1, принимая статус выхода false(не очень переносимый, но в конце концов это !), Затем используйте это значение, чтобы вставить десятичную точку в последнюю строку.

Выход: 3.14


Вы, сэр, гениальны
Джошуа

1
Ой, "2.81" в Ubuntu 12.04 (iputils-101006). +1 все тоже самое ;-)
Цифровая травма

@DigitalTrauma в соответствии с info ping6Iputils-121221

Также ознакомьтесь с моим chmodинтересным ответом на этот вопрос по адресу codegolf.stackexchange.com/a/25724/16402

2
еще короче:ping6|&wc -c|sed 's/./&./'
malkaroee

11

Bash + TeX 28 байт

Если у вас установлен TeX:

tex -v|head -c8|cut -d\  -f2

Номер версии TeX асимптотически приближается к пи по мере улучшения программного обеспечения. Таким образом, со временем вы можете использовать эту (несоответствующую) реализацию, чтобы печатать все больше и больше цифр!

tex -v|cut -d\  -f2 | head -n1

Это напечатано 3.1415926 еще в 2011 году; по состоянию на январь 2014 года будет напечатано 3.14159265.


Я люблю это!
gniourf_gniourf

Вы можете использовать, tex -v|grep -oP '.\..\d'чтобы сохранить 4 байта. (Regex украден из ответа DigitalTrauma .) В любом случае, +1, потому что я только что подумал о том же ответе.
ace_HongKongIndependence

10

JavaScript, 20 байт

'...'.length+'.'+0xe

Используйте его в консоли, чтобы результат был напечатан напрямую. В противном случае alert(...)добавим еще 7 символов.

Так же, как и мой другой ответ, я только заметил, что в JS он намного короче.

Идея использования 0xe14 взята из представления ОП с любезного разрешения ОП.


1
Это хорошо, вы можете использовать его :)
kukac67

1
Альтернативное 20-байтовое решение:(x='.'+0xE).length+x
nderscore

@nderscore, это довольно изящная идея. Если вы разместите это в качестве другого ответа, вы получите мое upovote;)
Мартин Эндер

10

Дата GNU, 17 байтов

date -d2/5 +%u.%y

Этот гарантированно будет работать только в этом году, но я не вижу никаких ограничений в правилах по этому поводу ;-)

Значение +просто указывает начало спецификатора формата dateи не является арифметическим сложением. То же самое с -указанием даты ввода.

Выход:

$ date -d2/5 +%u.%y
3.14
$

only guaranteed to work this yearЭто нормально .. :)
kukac67

10

Баш, 17 байт

tr 0 .<<<$[62#MC]

Тире, 41 байт

perl -pechomp,s/./$./<<$


..










.

Bash будет громко жаловаться на отсутствующий маркер конца, а Dash нет, поэтому решение Bash без сообщений об ошибках потребует двух дополнительных байтов.
Деннис

+1 тоже. Я думаю, @TheDoctor забыл нажать кнопку upvote?
Цифровая травма

@DigitalTrauma упс ... исправлено
TheDoctor

7

Баш 23 22

seq 2 .02 5|sed -n 58p

Shell (без расширения истории) 20

seq 2 .02 5|sed 58!d

seq 2 .06 5|sed -n 20pтакже работает, как указано в ответе OP Mathematica.
user80551

sed 58!dнемного короче.
Деннис

@Dennis Weird, гном-терминальные заменители, !dс dpkg ...которых была моя последняя команда, с которой я начинал d. Работает нормально, kshно zshговорит, zsh: event not found: dчто это определенно заменяет что-то.
user80551

Это из-за расширения истории Баша . Он отключен по умолчанию для сценариев, поэтому, если вы сохраните pi.shи выполните ту же команду bash pi.sh, она будет работать нормально.
Деннис

6

Python, 39 или 28 47 или 34

(Спасибо Score_Under за то, что вы так много играли в гольф)

print"%s.%s%c"%(len('aaa'),len('a'),52)

+ здесь оператор объединения строк, а не сложение.

Скопировать 0xeтрюк с ОП, вот 28 символов с помощью @psal

print('%X.%s'%(675,0xE))[2:]

Старые версии:

print str(len('aaa'))+'.'+str(len('a'))+chr(52)

print str(len('aaa'))+'.'+str(0xe)

print"%s.%s"%(len('aaa'),0xe)

Второй можно сократить, удалив пробел после печати и используя формат «% s» вместо str (). ср print"%s.%s"%(len('aaa'),0xe)на 29 байтов. Вы можете сделать то же самое с первым: print"%s.%s%c"%(len('aaa'),len('a'),52)на 39 байтов.
Score_Under

@Score_Under О, я думал, что использование %sвсе еще требует str. Спасибо за совет :)
ace_HongKongIndependence

1
еще одно решение на 29 байтов:print('%s,%s'%(0xE9,0xE))[2:]
луковица

1
... и в 28 байтах:print('%X.%s'%(675,0xE))[2:]
луковица

5

GolfScript, 8 байт

'??.'(\(

Эта программа содержит непечатные символы ASCII, поэтому ее нельзя вставить напрямую. Вместо этого знаки вопроса в приведенном выше коде должны быть заменены байтами 03и 0Eшестнадцатеричными.

Для удобства вот шестнадцатеричный дамп самой программы. Пользователи Unix / Linux могут запустить этот шестнадцатеричный дамп xxd -rдля восстановления программы:

0000000: 2703 0e2e 2728 5c28                      '...'(\(

Объяснение:

  • Первые пять байтов программы образуют строковый литерал в одинарных кавычках, кодирующий три символа с кодами ASCII 3, 14 и 46 (= период ASCII).

  • (обрезает первый символ в строке и помещает его код ASCII (3) в стек. \меняет два верхних элемента в стеке, вытягивая строку обратно в верх, а второй (отбрасывает другой символ из строки, снова помещая свой код ASCII (14) в стек.

Поэтому в конце программы стек (исключая пустую строку ввода) выглядит следующим образом:

3 "." 14

В конце программы поведение интерпретатора GolfScript по умолчанию состоит в том, чтобы привести в порядок и распечатать все в стеке, получая желаемый результат.


1
Щелчок! У меня была точно такая же идея , только на 12 часов позже. Я думаю, что я должен прочитать страницу 2, прежде чем писать ... Ну что ж, откат, +1 к вам.
Деннис

5

Баш - 39

Мы все знаем, что первые несколько цифр числа Pi можно вычислить из следующего утверждения:

Можно мне большой контейнер кофе

Нам нужно только 2 знака после запятой, верно?

m=May
i=I
h=have
echo ${#m}.${#i}${#h}


4

Perl 15 20 байт

print 05706=~s/0/./r
print 0xbc6=~s/0/./r

Разве PI__ не является чем-то постоянным, связанным с Pi?
Лламагеддон

Это не константа. Это две строки XOR-ред.
nderscore

Побитовые операторы не допускаются.
kukac67

О, это не так. Ну, вот и мое гипотетическое решение. Тем не менее, если побитовые операторы не разрешены, есть ли что-то еще, кроме как считать длины строк?
Лламагеддон

Есть несколько ответов, которые используют числа в разных базах.
kukac67

4

тр + баш, 17 байт

tr a-j 0-9<<<d.be

Эти -символы здесь не являются арифметическими операторами вычитания. Они указывают на диапазон.

Выход:

$ tr a-j 0-9<<<d.be
3.14
$

Умный, хотя в переводе персонажа действительно скрытая арифметика.
Пьер Арло,

@ArlaudPierre Правда, хотя я бы сказал, что почти все решения здесь так или иначе имеют скрытую арифметику. Если вы посмотрите на фактические машинные инструкции, выполненные для любого из этих ответов, я думаю, что у всех есть какие-то побитовые или арифметические инструкции, которые запрещены для явного использования этим вопросом.
Цифровая травма

@ArlaudPierre Вопрос требует вывода строки «3.14». Независимо от языка, где-то под капотом, это выродится в write()вызов или подобное. Под крышками обязательно будет некоторая арифметика, гарантирующая правильное количество записанных байтов, если нигде больше. Я думаю, что вопрос заключается в том, чтобы скрыть необходимые арифметические / побитовые вычисления.
Цифровая травма

4

БАШ, 57

Это длиннее, чем большинство ответов, но в попытках нет ничего плохого.

f=`echo aaaaaaaaaaaaa|wc -c`;e=`echo aa|wc -c`;echo $e.$f

дает

3.14

3
Извините за повторную игру в гольф ответы каждого: P, В том же духе, что и я, я нашел:c=wc\ -c;echo `$c<<<..`.`$c<<<''``$c<<<...`
Score_Under

4

С, 36

main(){printf("%d\b.%o\b",' ','`');}

1
Если мы объединим его с моим ответом, мы можем сэкономить 2 байта, чтобы получить оценку 34 :main(){printf("%d\b.%d",' ',0xe);}
vsz

3

JavaScript - 23 байта

atob('Mw')+atob('LjE0')

Спасибо nderscore (см. Его комментарии)!


Ницца:
D Я

Это содержит 4хотя;)
nderscore

@nderscore Ах! Вы правы! Будет ли btoa()работать, чтобы получить 3.14как-то?
kukac67

@ kukac67 Набор символов base64 не содержит точку :(
nderscore

3
23-байтовая «легальная» версия: atob('Mw')+atob('LjE0')и 14-байтовая «нелегальная» версия:atob("My4xNA")
nderscore

3

C #

 ((int)'ĺ').ToString("#\\.##");

character является символом 314, а не предопределенной переменной или константой. .ToString форматирует вывод в цифру, точку, а затем еще 2 цифры.


Хорошо, но в настоящее время он не выводится и не компилируется.
Руди Кершоу

Console.Write (((INT) 'L') ToString ( "# \\ ##.").);
Grax32

3

GolfScript, 13 10

{xy}.*'.'\

Спасибо Ilmari Karonen за улучшенную версию!

xи yявляются непечатаемыми символами (см. http://www.asciitable.com/ для получения дополнительной информации) соответственно ETXи SO, которые декодируют до 3 и 14.

Что этот код делает, должно быть довольно ясно.

Примечание: следующее правило

You may not use any predefined variables/constants that your language may have as a replacement for 3, 1, and 4. (Author's discretion)

не прерывается, так как символы ASCII не являются ни переменными, ни константами.


The digits 3, 1, and 4 may not appear anywhere in your code.,Your program cannot require input of any kind (besides running it).
user80551

Цифры нигде не появляются. Там нет ввода.
Vereos

И ваш окончательный код ...?
user80551

{}.*.{}.*и внутри скобок есть 2 непечатаемых символа, соответственно ( asciitable.com ) ETXиSO
Vereos

2
Вы можете сократить это до {xy}.*'.'\ (10 символов). Мой еще короче, хотя. ;-) Но +1 за то, что научил меня { }.*{ }.%), я должен помнить об этом трюке.
Ильмари Каронен

3

Новичок на сайте и пока не могу писать комментарии, поэтому я опубликую его здесь. Просто интересно об этом решении Javascript:

'...'.length+'.'+0xe

и это правило:

3.14 - единственное, что вы можете выводить, оно не может быть частью более длинного / большего вывода.

Если я запускаю этот код в консоли браузера, я получаю:

"3.14"

или используя Node в командной строке:

'3.14'

но если я запускаю этот код:

parseFloat('...'.length+'.'+0xe)

Я получил:

3.14

Используя Node.js для запуска файла .js, я могу написать:

console.log('...'.length+'.'+0xe)

и получить:

3.14

1
Никогда не было ограничений на то, каким типом может быть полученное значение. Итак, строка или число не имеют значения. Кавычки вокруг строки не считаются частью вывода.
nderscore

Добро пожаловать в CodeGolf и программирование головоломок @RobertMunn! Этот ответ действителен, поскольку он подчиняется всем правилам ... Имейте в виду, что consoleпри отображении их можно заключать строки в кавычки ... Вы использовали, +но не арифметически, он используется в качестве конкатенатора, так что это действительно ... Также Вы могли бы сделать это меньше, используя, alertа не console.log... Но в противном случае, большие усилия. Мы надеемся, что вам здесь понравится ...
WallyWest

Это очень мило! Вы должны рассмотреть возможность добавления названия языка и количества байтов (например, Javascript, 20)
Vereos

1
Спасибо Эйс, я просто изучаю правила здесь. Я не мог оставить комментарий, поэтому я разместил отдельно, я думаю, это было больше разъяснения о правилах публикации, которые nderscore и WallyWest разъяснили для меня. Я ценю терпение каждого с новичком.
Роберт Манн

2

Mathematica, 56 байт

(l=ToString@StringLength@#&)@"..."<>"."<>l@"."<>l@"...."

Не так много, чтобы сказать. Я генерирую цифры как длины строк и объединяю их.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.