Поскольку я подаю заявку на работу, на которой в объявлении о работе не указана зарплата, я представил себе особенно злого интервьюера, который дал бы кандидату возможность самому определять свою зарплату ... «играя в гольф»!
Так что все идет просто так:
Не используя цифры, напишите код, который выводит годовую зарплату, которую вы хотели бы предложить.
Тем не менее, возможность написать краткий код является краеугольным камнем этой компании. Таким образом, они внедрили очень жесткую лестницу старшинства, где
работодатели, которые пишут код длиной b байтов, могут заработать максимум ($ 100000) · b -0,75 .
мы смотрим (это целые части, просто из соображений отображения):
1 byte → $1'000'000 15 bytes → $131'199
2 bytes → $594'603 20 bytes → $105'737
3 bytes → $438'691 30 bytes → $78'011
4 bytes → $353'553 40 bytes → $62'871
10 bytes → $177'827 50 bytes → $53'182
Соревнование
Напишите программу или функцию, которая не требует ввода и выводит текст, содержащий знак доллара ( $
, U + 0024) и десятичное представление числа (целое или действительное).
- Ваш код не может содержать символы
0123456789
.
На выходе:
При желании между знаком доллара и числом может быть один пробел.
Конечные и ведущие пробелы и новые строки допустимы, но любые другие выходные данные запрещены.
Число должно быть выражено как десятичное число, используя только символы 0123456789.
. Это исключает использование научных обозначений.
Разрешено любое количество знаков после запятой.
Запись действительна, если значение, которое она выводит, не превышает ($ 1'000'000) · b -0,75 , где b - длина байта исходного кода.
Пример вывода (кавычки не должны выводиться)
"$ 428000" good if code is not longer than 3 bytes
"$321023.32" good if code is not longer than 4 bytes
" $ 22155.0" good if code is not longer than 160 bytes
"$ 92367.15 \n" good if code is not longer than 23 bytes
"300000 $" bad
" lorem $ 550612.89" bad
"£109824" bad
"$ -273256.21" bad
"$2.448E5" bad
Результат
Значение, которое вы выводите, является вашим счетом! (Самая высокая зарплата выигрывает, конечно.)
Leaderboard
Вот фрагмент стека, который генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, $X (Y bytes)
где X
ваша зарплата и Y
размер вашего представления. ( Y bytes
Может быть где угодно в вашем ответе.) Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>$111111.111... (18 bytes)</s> <s>$111999 (17 bytes)</s> $123456 (16 bytes)
Вы также можете сделать имя языка ссылкой, которая затем будет отображаться в фрагменте списка лидеров:
# [><>](http://esolangs.org/wiki/Fish), $126,126 (13 bytes)
var QUESTION_ID=171168,OVERRIDE_USER=77736;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body.replace(/<(s|strike)>.*?<\/\1>/g,"");s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a1=r.match(SCORE_REG),a2=r.match(LANG_REG),a3=r.match(BYTES_REG);a1&&a2&&e.push({user:getAuthorName(s),size:a3?+a3[1]:0,score:+a1[1].replace(/[^\d.]/g,""),lang:a2[1],rawlang:(/<a/.test(a2[1])?jQuery(a2[1]).text():a2[1]).toLowerCase(),link:s.share_link})}),e.sort(function(e,s){var r=e.score,a=s.score;return a-r});var s={},r=1,a=null,n=1;e.forEach(function(e){e.score!=a&&(n=r),a=e.score,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.lang).replace("{{SCORE}}","$"+e.score.toFixed(2)).replace("{{SIZE}}",e.size||"?").replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);s[e.rawlang]=s[e.rawlang]||e});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){var r=e.rawlang,a=s.rawlang;return r>a?1:r<a?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SCORE}}","$"+o.score.toFixed(2)).replace("{{SIZE}}",o.size||"?").replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var LANG_REG=/<h\d>\s*((?:[^\n,](?!\s*\(?\d+\s*bytes))*[^\s,:-])/,BYTES_REG=/(\d+)\s*(?:<a[^>]+>|<\/a>)?\s*bytes/i,SCORE_REG=/\$\s*([\d',]+\.?\d*)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:520px;float:left}table thead{font-weight:700}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="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Score</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td><td>Size</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SCORE}}</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>{{SCORE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Изменить: (округленное) максимально допустимое количество очков на количество байтов, для более быстрой ссылки - текст здесь :
$80,662.67
вместо$80662.6659
? Ваши правила, кажется, исключают запятую, что означает, что я не мог использовать какие-либо встроенные функции валюты.Ответы:
Баш, $ 127127
Попробуйте онлайн!
Так как
x
команда не существует, она ошибается и устанавливает код выхода на127
.Затем код выводит знак доллара, за которым следует
$?
дважды. В$?
переменном хранит код выхода предыдущей команды, так что это выводит$127127
в 13 байт .источник
x
что существует. В качестве бонуса он рухнул при попытке открыть его, поэтому я получил$11
вместо этого!]
вместоx
первого менее вероятно, чтобы существовать.w
это вещь (близкоwho
) и успешно завершить , так что вы получите $ 00 за это!Java 8, 131 199,00 долл. США (15 байт)
Попробуйте онлайн.
Объяснение:
Я использовал программу для генерации печатного символа ASCII в диапазоне,
[32, 126]
который при делении131199
будет иметь наименьшее количество десятичных значений. Так как101
могу делить131199
равномерно, в результате1299
я только на 31 цент меньше моей максимально возможной зарплаты, основанной на моем числе байтов 15.источник
CJam , 5 байтов, $ 262'144
Попробуйте онлайн!
Как это устроено
источник
CJam , (5 байт) $ 294204,018 ...
Попробуйте онлайн!
Объяснение:
Я получил это из ответа Денниса, но искал комбинации чисел, которые дали бы более высокий результат. Я почти сдался, но я увидел, чтоπ π11≈ 294000
P
это переменная для , а это . Буква имеет значение 11 в CJam, давая код выше.л 11 ≈ 294000B
источник
R , 20 байтов,
$103540.9
Попробуйте онлайн!
Максимум для 20 байтов есть
$105737.1
, так что это довольно близко к пределу зарплаты!Это было бы хорошим рейзом, и если мне заплатят за участие в гольф-коде ......
источник
pi
с суммой набора данных ... потребуется программный подход для оценки различных комбинаций операторов / наборов данных / pi, чтобы максимально приблизиться к максимальному значению. Сейчас нет времени для этого, но это звучит как хороший вызов сам по себе.GS2 , (5 байт) $ 292,929
Полная программа (показана здесь с использованием кодовой страницы 437 ). (Максимально достижимая зарплата при 5 байтах составляет $ 299069,75)
Попробуйте онлайн!
Основывается на ответе GS2 Денниса ...
источник
0x0724011d41
по моим подсчетам 5 байтов ...R , 21 байт $ 99649,9
Попробуйте онлайн!
Другой
R
подход - см. Также ответ ДжузеппеОчень близко к максимуму 101937 долларов за этот счет.
Бонус:
object.size()
R , 24 байта $ 89096
Попробуйте онлайн!
Вероятно, это зависит от системы, но когда я делаю это на TIO, я получаю $ 89096 - близко к пределу 92223 для 24 байтов.
источник
datasets
пакет имеет большой смысл.prod
иsum
случайно ... но прод увеличивается слишком быстро!sum(volcano)
есть ,690907
но это должно было бы быть около 1 байт на работу, ха - хаJavaScript (ES6), 19 байт, $ 109 839
Попробуйте онлайн!
Без
atob()
(Node.js), 26 байт, $ 86 126Попробуйте онлайн!
Объединение «$» с кодами ASCII «V» (86) и «~» (126).
источник
Buffer
. Впервые признаю этот класс; ')Buffer
конструктор устарел, так что в будущих версиях он станет длиннееСамомодифицирующийся Brainfuck , 16 байтов, $ 124444
Попробуйте онлайн!
источник
:
, поэтому вы можете удалить его и добавить еще+
за $ 124444.1
почему бы не считать3
и затем распечатать только3
s? Вы бы сохранили байт и напечатали большее число.PHP, $ 131116 (8 байт)
Не видел один для php и хотел бросить один. Я знаю, что где-то в php есть плохой тип, который сократит это пополам, но я не могу найти это прямо сейчас.
Это просто использует преимущества коротких тегов PHP и встроенных констант PHP.
Попробуйте онлайн!
источник
<?="$".
просто сделайте$<?=
и сохраните несколько байтов.GS2 , 5 байтов, $ 291'000
Это представление двоичного исходного кода CP437 .
Попробуйте онлайн!
Как это устроено
источник
Excel 19 байтов $ 107899,616068361
Объяснение:
источник
vim,
$ 99999,$ 110000,$ 120000Попробуйте онлайн!
Использует регистр выражений (обратите внимание, что существует символ <Cr>, который невидим в большинстве шрифтов, между
$
и=
, всего 13 байтов ) для вставки значения'pvh'
параметра, умноженного на значение'ur'
параметра.'previewheight'
это опция, которая контролирует высоту окон предварительного просмотра, которая по умолчанию равна 12.'undoreload'
это максимальное количество строк, которое может иметь буфер, прежде чем vim откажется от сохранения его в памяти для отмены, и по умолчанию он равен 10000.источник
Желе ,
$ 256000, $ 256256(6 байт ), $ 257256Полная программа. (Максимально достижимая зарплата при 6 байтах составляет $ 260847,43)
Попробуйте онлайн!
Как?
Предыдущая ...
5 байт $ 256256
('$' объединяет 256, повтор 256 - вызывает временную неявную печать)
6 байтов $ 256000:
(256 × 1000 ṭack '$')
источник
C #
Полная программа,
72 байта, $ 40448,66 байтов, $ 43008Попробуйте онлайн!
объяснение
Оператор сдвига влево обрабатывает символы
'T'
и'i'
как целые числа 84 и 105 соответственно и выполняет сдвигЛямбда,
19 байт, 109568 $,17 байт, 118784 $Попробуйте онлайн!
Редактировать Спасибо @ LegionMammal978 и @Kevin за сохранение 2 байта
источник
()=>
вo=>
течение еще -1 байт.o=>"$"+('t'<<'j')
с $ 118784.PHP, 13 байт, зарплата $ 144000
К сожалению, для этой работы требуется переезд на Маврикий (ну, я мог бы двигаться немного меньше на восток, однако каждый часовой пояс давал бы снижение зарплаты на 36 тыс. Долл.) Чтобы компенсировать неудобства, моя зарплата увеличивается на 1 долл. Каждый високосный год.
Это просто выделяет
Z
часовой пояс в секундах и добавляет, является ли это високосным годом.источник
брейнфук , 43 байта, $ 58888
Попробуйте онлайн!
Как это устроено
источник
Python 3 , (22 байта)
Попробуйте онлайн!
Как и в случае с ответом Дурнкоба на Ruby , 4-байтовый символ Unicode, используемый здесь
𘂊
, имеет порядковое значение максимальной целочисленной зарплаты, достижимой в 22 байта.Обратите внимание, что
print()
по умолчанию печатаются его безымянные аргументы, разделенные пробелами (sep
это необязательный именованный аргумент).источник
Gol> <> , $ 207680 в 8 байтах
Попробуйте онлайн!
Как это устроено:
Интересно, что вы можете использовать
h
вместо этогоn;
, что дает'o**h5$
счет $ 231504, но вы не можете использовать 0-9, и нет другого 1-байтового способа выдвинуть 53, значение ASCII5
источник
Желе , 8 байтов, $ 210176,48625619375
3535 (
⁽½"
) умножить (×
) на его sqrt (½
).Попробуйте онлайн!
источник
Mathematica, 18 байт, $ 107 163,49
Полная программа; запустить с помощью
MathematicaScipt -script
. Выходы$107163.4882807548
сопровождаются завершающим переводом строки. Я проверил , что это самое высокую тонировку решение вида где состоит из , , , и .$~Print~N[expr]
expr
Pi
E
I
+-* /()!
источник
I
?I
а не простоI I
илиI/I
обычно будет+ 0.*I
привязано к егоN
."$"~Print~Exp[E!N@E]
(который такой же длины, как и"$"~Print~N[E^(E!E)]
), но с кавычками вокруг$
, результат был чуть выше предела.$~Print~⌈E^(E!E)⌉
с символами левого и правого потолка с одним символом это будет немного больше и 17 байтов05AB1E (5 байт), $ 262626
Попробуйте онлайн!
$
["$", 26, 26, 26]
J
источник
JavaScript (Node.js) , 23 байта, $ 65535
Попробуйте онлайн!
Это лучшее, без чего я могу обойтись
atob
, хотя есть большое улучшение пространстваЗнаете, отсутствие короткого символа в функции преобразования ascii отстой МНОГО.
ПОСЛЕ ВСЕГО ДНЯ
JavaScript (Node.js) , 30 байт, $ 78011
Попробуйте онлайн!
или: 29 байт, $ 80020
Где
находитсяU+13894 INVALID CHARACTER
Ох
String.codePointAt
! Я просто полностью забыл это!Одна шутка (15B, $ 130000), совсем не хвалебная, а просто для удовольствия
источник
_=>"$⑮萬"
^ _ ^x1683F
?_=>"$"+parseInt('1V0I',36)
также выше, чем у вас до сих пор, так что вы можете добавить это тоже. Жаль, что вы не можете преобразовать основание 64 в десятичное в JavaScript ...MATLAB, 17 байтов, $ 112222
Старый ответ:
источник
+pi
Рубин, $ 119443
Попробуйте онлайн!
Максимальный целочисленный вывод для 17 байтов. Символ Unicode - это U + 1D293, то есть 119443 в шестнадцатеричном формате.
источник
$><<?$<<$$
в долго работающей системе. Ответы до 177827 действительны.DC , $ 169169 10 байтов
Попробуйте онлайн!
Это печатает 13 (
D
) в квадрате, дваждыисточник
Japt, 5 байтов, $ 262144
Проверь это
Пояснение
I
- константа Джапта для64
, кубизирует³
это и затем'$+
объединяет это с символом доллара.источник
"${I³
Befunge-98 (PyFunge) , 8 байт, $ 209728
Попробуйте онлайн!
Символ
:
был рассчитан с использованием следующего метода:Использование
@
иf
также работает, но дает только 208896 $.источник
Befunge-93 , 9 байт, $ 192448
Попробуйте онлайн!
Выходы
$192448
, всего два доллара и девять центов меньше максимума. Это даже работает как полиглот с правильными реализациями Befunge-98 , где ему даже не нужно выбрасывать нераспознанную ошибку инструкции!Объяснение:
источник
Cubix , $ 155088 (12 байт)
Попробуйте онлайн!
Интересная проблема, надеялся уменьшить это до 7 или 8 байтов, но это оказалось трудным. Выдвигает символы ე и $ в стек, выводит
$
, умножает вершину стека, выводит число и останавливает. Все еще надеемся найти опцию младшего байтаисточник