Не використовуючи цифри, отримайте найвищу зарплату. Але не перебільшуйте!


227

Оскільки я подаю заявку на деякі робочі місця, в оголошенні про роботу яких не вказано зарплату, я уявив собі особливо злого інтерв'юера, який би дав кандидату можливість самостійно визначати зарплату ... "гольфуючи" це!

Тож просто так:

Не використовуючи цифри, напишіть код, який видає річну зарплату, яку ви хочете запропонувати.

Однак, можливість писати стислий код - наріжний камінь цієї компанії. Таким чином, вони реалізували дуже тугий схід старшинства куди

роботодавці , які пишуть код, б байт довго може заробити максимум ($ 1'000'000) · б -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

Рахунок

Значення, яке ви отримуєте, - це ваш рахунок! (Звичайно, найвища зарплата виграє.)


Таблиця лідерів

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

Щоб переконатися, що ваша відповідь відображається, будь ласка, почніть свою відповідь із заголовка, використовуючи наступний шаблон Markdown:

# 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)


Редагувати: (округлена) максимально дозволена оцінка на кількість байтів, для швидшого ознайомлення - текст тут :

введіть тут опис зображення


61
Це одне з небагатьох (іммо) успішних невідомих викликів без введення випадкових даних. Унікальна ідея!
Містер Xcoder

2
Приємний виклик! Чи можемо ми вивести повністю форматоване значення валюти, якщо бажаєте? Як $80,662.67замість $80662.6659? Здається, що правила забороняють коску, це означає, що я не міг використовувати жодних вбудованих валютних функцій.
BradC

6
Я сподіваюся, що ви не заперечуєте, я додав варіант фрагменту Leaderboard, який сортується за балами замість байтів. Чудовий перший виклик!
ETHproductions

9
Щойно помітив новий тег дописувача. Добре побудований виклик, з таким високим підсумком та великою кількістю відповідей лише за кілька днів, мені цікаво, чи це може бути прийнятним для цього року «Новачок року»;)
Шиєру Асакото,

2
Я висунув цей виклик як кандидата в категорії «Новачок року - виклики» в кращому варіанті PPCG 2018, як я вже говорив тоді.
Шиеру Асакото

Відповіді:


109

баш, 127127 дол

x;echo \$$?$?

Спробуйте в Інтернеті!

Оскільки xкоманди не існує, вона помиляється та встановлює вихідний код на 127.

Потім код виводить знак долара, після чого $?двічі. У $?змінному зберігає код виходу попередньої команди, так що це виводить $127127в 13 байт .


52
Як не дивно , якщо ви на Mac і у вас встановлений XQuartz, це не буде працювати , тому що x дійсно існує. Як бонус він зазнав аварії при спробі відкрити його, тому я отримав $11замість цього!
numbermaniac

13
Використання ]замість того x, що раніше існує, рідше існує.
п.т.

@numbermaniac Також були знайдені такі команди для встановлення на ubuntu 19.04: e, q, r. Але wце річ (близька до who) та вийти успішно, тому ви отримуєте за це $ 00!
val

67

Java 8, 131,199,00 дол. (15 байт)

v->"$"+'e'*'ԓ'

Спробуйте в Інтернеті.

Пояснення:

v->            // Method with empty unused parameter and String return-type
  "$"+         //  Return a dollar sign, concatted with:
      'e'*'ԓ'  //  131199 (101 * 1299)

131,199.00<131,199.31

Я використовував програму для генерації символу ASCII для друку в діапазоні, [32, 126]який при діленні 131199мав би найменший розмір десяткових значень. Оскільки я 101можу розділити 131199рівномірно, в результаті чого 1299мені лише 31 цент не вистачає моєї максимально можливої ​​зарплати, виходячи з мого рахунку 15 байтів.


12
Данг, вражаючий результат!
ETHproductions


41

CJam , (5 байт) $ 294204.018 ...

'$PB#

Спробуйте в Інтернеті!

Пояснення:

Я отримав це з відповіді Денніса, але шукав комбінації чисел, які дали б більший результат. Я майже здався, але побачив, що Pце змінна для , і що . Буква має значення 11 у CJam, даючи код вище.π 11294000ππ11294000B


6
Оскільки ваш рахунок - це ваша зарплата, ви повинні згадати це у заголовку. Ця відповідь наразі виграє. :)
Денніс

37

R , 20 байт,$103540.9

T=pi+pi;cat("$",T^T)

Спробуйте в Інтернеті!

Максимум на 20 байт є $105737.1, тому це досить близько до межі зарплати!

Це було б приємно підняти, і якщо мені заплатять за гольф на коді ......


2
це може бути способом поєднання piз сумою набору даних ... вимагає програмного підходу для оцінки різних комбінацій операторів / наборів даних / pi, щоб максимально наблизитись до максимального. Зараз на це немає часу, але це звучить як приємний виклик сам по собі.
JayCe

29

GS2 , (5 байт) 292 929 дол

•$☺↔A

Повна програма (показана тут на кодовій сторінці 437 ). (Максимально досяжна зарплата при 5 байтах - 299069,75 дол. США)

Спробуйте в Інтернеті!

На основі відповіді Денніса GS2 відповідь ...

•$☺↔A                             []
•$    - push '$'                  ['$']
  ☺   - push unsigned byte:
   ↔  -   0x1d = 29               ['$',29]
    A - push top of stack twice   ['$',29,29,29]
      - implicit print            $292929

1
Це 11 байт, навіть якщо це 5 символів.
dotancohen

3
@dotancohen: 0x0724011d41це 5 байт по моєму рахунку ...
eggyal

2
@eggyal: Я пропустив трохи про кодову сторінку 437. Приємний дотик!
dotancohen

3
Шановний виборець, чи можу я отримати зворотній зв'язок; Я не бачу, що неправильно, не корисно чи незрозуміло.
Джонатан Аллан

27

R , 21 байт 99649,9 дол

cat("$",min(lynx^pi))

Спробуйте в Інтернеті!

Інший Rпідхід - див. Також відповідь Джузеппе

Дуже близько до максимум 101937 доларів за цей рахунок.

Бонус: object.size()

R , 24 байти 89096 доларів

cat("$",object.size(ls))

Спробуйте в Інтернеті!

Це, мабуть, залежить від системи, але коли я передавав це на TIO, я отримав $ 89096 - близько до межі 92223 на 24 байти.


акуратний! Я думав про спробу вибрати хороший набір даних, але не можу зрозуміти, де їх шукати ... Я думаю, що datasetsпакет має багато сенсу.
Джузеппе

@Giuseppe Я просто намагаюся prodі sumвипадково ... але прода збільшується занадто швидко!
JayCe

sum(volcano)є, 690907але це повинно бути приблизно 1 байт для роботи, ха-ха
Джузеппе

Чудова ідея використання наборів даних!
digEmAll

@Giuseppe гарний улов Я цілком не помітив цього! дух.
JayCe

26

JavaScript (ES6), 19 байт, $ 109 839

_=>atob`JDEwOTgzOQ`

Спробуйте в Інтернеті!

109839109884


Без atob()(Node.js), 26 байт, $ 86,126

_=>'$'+Buffer('V~').join``

Спробуйте в Інтернеті!

Зв'язування '$' з кодами ASCII 'V' (86) і '~' (126).


Нічого собі Buffer. Вперше визнав цей клас; ')
Шиеру Асакото

1
@ user71546 Це можна зробити в 24 байтах за 91126 доларів, якщо дозволено тисячу роздільників. Але, мабуть, їх немає ... :(
Арнольд

BufferКонструктор застарілий, тому в наступних версіях його буде довше
mcfedr

@mcfedr Ми не переймаємось кодом гольфу, доки належним чином вказана робоча версія перекладача.
Рікінг

24

Brainfuck , що самозмінюється, 16 байт, 124444 доларів

<.<++.+.++..../$

Спробуйте в Інтернеті!


1
Ви не закінчилися з використанням :, тому ви можете вийняти його та додати ще +$ 124444.
Nitrodon

@Nitrodon Ага, дякую
користувач202729

Після друку 1, чому б не рахувати, 3а потім друкувати тільки 3s? Ви б зберегли байт і надрукували більшу кількість.
12431234123412341234123

@ 12431234123412341234123 Вам потрібно буде зберегти два байти. В іншому випадку з 15 байтами вам дозволяється лише до 131199 доларів, це 133333 доларів занадто багато.
hvd

21

PHP, $ 131116 (8 байт)

Не бачив одного для php і хотів підкинути його. Я знаю, що десь у php - це поганий набір тексту, який би розрізав це навпіл, але зараз не можу його знайти.

$<?=ERA;

Це просто використовує короткі теги PHP та вбудовані PHP в константи.

Спробуйте в Інтернеті!


1
Ха я завтра
вимкну

4
Замість цього <?="$".просто зробіть $<?=і збережіть кілька байт.
Ісмаїл Мігель

2
@IsmaelMiguel приємно дякую! Знизив його до 8 байт, але не знадобилося досить довго, щоб зрозуміти, як отримати інші ~ 70 тис. Дол моєї зарплати.
mschuett

1
Нічого не знав про цю константу, але я не міг знайти в документах, чи може хтось допомогти на цьому?
Rafee

3
@Rafee - це фактично не зафіксовано жодного місця, яке я можу знайти. Це мовна константа, яку додали 17 років тому github.com/php/php-src/commit/… . Я знайшов це, скидаючи всі наявні константи, а потім просто починаю грепати за найкоротші. Здається, це надає ОС, яку можна побачити тут gnu.org/software/libc/manual/pdf/libc.pdf на сторінці 195.
mschuett


17

Excel 19 байт $ 107899,616068361

="$"&CODE("(")^PI()

Пояснення:

     CODE("(")        // find ASCII code of ( which is 40
              ^PI()   // raise to power of Pi  (40^3.141592654)
 "$"&                 // append $ to the front of it
=                     // set it to the cell value and display

2
Ласкаво просимо до PPCG!
Luis felipe De jesus Munoz

6
+1 Ще краще, вони будуть вражені вашими навичками Excel і хочуть, щоб ви були менеджером облікового запису.
theREALyumdub

2
@theREALyumdub це те, що повинно бути хорошою справою? Я не впевнений, що б я взяв цю зарплату, якщо це означає, що я маю щодня працювати з Excel;)
Аарон

Я б заперечував із форматом бухгалтерського обліку Excel, що ви можете пропустити $ повністю і просто встановити форматування на облік.
Selkie

Формат @Selkie Accounting додає коску, яку заборонено. Ви можете використовувати власний формат у $ #. Я не був би впевнений, чи слід вважати це 15 символами з = CODE ("*") ^ PI () за $ 125773 або 17 символів (додавши 2 для літер формату) з = CODE (")") ^ PI () за 116603 доларів США, або якщо це заборонено.
Keeta

12

vim, 99999 $ 110000 $ 120000

i$=&pvh*&ur

Спробуйте в Інтернеті!

Використовує регістр виразів (зверніть увагу, що є символ <Cr>, який невидимий у більшості шрифтів, між $та =, усього 13 байтів ), щоб вставити значення 'pvh'параметра, кратне значення 'ur'параметра.

'previewheight' - це параметр, який контролює висоту вікон попереднього перегляду, яка за замовчуванням становить 12.

'undoreload' - це максимальна кількість рядків, яку може мати буфер, перш ніж vim відмовиться від зберігання його в пам'яті для скасування, і він за замовчуванням до 10000.


12

Желе ,  256000 доларів 256256  (6 байт ) 257256 доларів

⁹‘”$;;

Повна програма. (Максимально досяжна зарплата @ 6 байт - 260847,43 дол. США)

Спробуйте в Інтернеті!

Як?

⁹‘”$;; - Main Link: no arguments
⁹      - Literal 256                            256
 ‘     - increment                              257
  ”$   - single '$' character                   '$'
    ;  - concatenate                            ['$',257]
     ; - concatenate                            ['$',257,256]
       - implicit print                      -> $257256

Попередній...

5 байт 256256 доларів

”$;⁹⁺

('$' об'єднати 256, повторити 256 - викликати тимчасову неявну друк)

6 байт 256000 доларів:

⁹×ȷṭ”$

(256 × 1000 ṭack '$')


1
Це схоже на 5 символів , але 11 байт .
dotancohen

9

@Carmeister: Приємно!
dotancohen


@NieDzejkob дійсно доступно 6 байт - у мене зараз $ 257256 :)
Джонатан Аллан

11

C #

Повна програма, 72 байти, 40448 доларів 66 байт, 43008 доларів

class P{static void Main()=>System.Console.Write("$"+('T'<<'i'));}

Спробуйте в Інтернеті!

Пояснення

Оператор лівого зсуву розглядає знаки 'T'і 'i'як цілі числа 84 і 105 відповідно і виконує зсув

Лямбда, 19 байт, $ 109568 17 байт, 118784 доларів

o=>"$"+('t'<<'j')

Спробуйте в Інтернеті!

Редагувати Завдяки @ LegionMammal978 та @Kevin за збереження 2 байт


5
Просто цікаво, чому ви включаєте крапку з комою на кінці лямбда?
LegionMammal978

1
На додаток до того , що @ LegionMammal978 згадується (задній точкою з коми не повинні враховуватися в байт-лічильник для Java / C # лямбда), приймаючи невикористаний порожній параметр ви можете Гольф ()=>в o=>протягом ще -1 байт.
Kevin Cruijssen

2
Дійсно, і за допомогою Кевіна, і за моєю порадою, лямбду можна пограти в гольф o=>"$"+('t'<<'j')із $ 118784.
LegionMammal978

@Kevin Я не знав про це, дякую за інформацію.
pmysl

@ LegionMammal978 Дякуємо за вказівку на непотрібну крапку з комою та за надання оновленої лямбда. Я, мабуть, якось пропустив цю крапку з комою
pmysl

9

PHP, 13 байт, $ 144000 Зарплата

На жаль, для цієї роботи потрібен переїзд до Маврикію (ну, я міг би рухатись трохи менше на схід, проте кожен часовий пояс менший приносив би падіння зарплати на 36 тис. Доларів США.) Щоб компенсувати незручності, моя зарплата збільшується на 1 долар щороку.

$<?=date(ZL);

Це просто виставляє Zчасовий пояс у лічені секунди і додає, чи це високосний рік чи ні.


9

brainfuck , 43 байти, $ 58888

++++++[>++++++<-]>.<++++[>++++<-]>+.+++....

Спробуйте в Інтернеті!

Як це працює

++++++[>++++++<-]>.  write 36 to cell one and print (36 is ASCII for $)

<++++[>++++<-]>+.    add 17 to cell 1 and print (cell 1 is now 53, ASCII for 5) 

+++....              add 3 to cell 1 and print 4 times (cell 1 is now 56, ASCII for 8)

1
Ласкаво просимо до PPCG! Сподіваюсь, ви будете триматися
Джо Кінг,

8

Python 3 , (22 байти) $ 98,442

print('$',ord('𘂊'))

Спробуйте в Інтернеті!

Так само, як відповідь Рубіно Дорнокба , 4-байтний символ Unicode, що використовується тут 𘂊, має порядкове значення максимальної цілої зарплати, яку можна досягти в 22 байтах.

Зауважте, що print()друкує свої неназвані аргументи, розділені пробілами за замовчуванням ( sepє необов'язковим іменованим аргументом).


ви можете зробити трохи краще, ніж це, використовуючи f рядки: print (f "$ {ord ('𘫿')}") становить 21 байт і виводить $ 101119
Метт,

2
@Matt - це 24 байти (я думав про f-string, але зрозумів, що додаткові брекети коштують 2 байти)
Джонатан Аллан

Доказ того, що Python 2 заробить більшу зарплату.
mbomb007

8

Gol> <> , 207680 доларів у 8 байт

'o**n; $

Спробуйте в Інтернеті!

Як це працює:

'        Start string interpretation. Pushes the ASCII value of every character until it wraps back around to this character
 o       Output the top stack value as ASCII. This is the $ at the end of the code
  **     Multiply the top 3 stack values (This is the ASCII of 'n; ', 110*59*32
    n    Output top of stack as integer.
     ;   Terminate program
       $ (Not run, used for printing the $)

Цікаво, що ви можете використовувати hзамість цього n;, який приносить результат 'o**h5$з показником 231504 доларів, але ви не можете використовувати 0-9, і немає іншого 1-байтового способу просунути 53, значення ASCII5


1
Ласкаво просимо до PPCG!
Mego


6

Математика, 18 байт, 107 163,49 доларів

$~Print~N[E^(E!E)]

Повна програма; запустити за допомогою MathematicaScipt -script. Вихідні дані $107163.4882807548супроводжуються новим рядком. Я перевірив , що це саме високу тонування рішення виду де складається з , , , і .$~Print~N[expr]exprPiEI+-* /()!


Про що I?
користувач202729

@ user202729 Ні, не допомагає; будь-яке число, яке фактично використовує, Iа не просто I Iабо I/I, як правило, має + 0.*Iйого N.
LegionMammal978

Дуже хороша! Я добирався до "$"~Print~Exp[E!N@E](що така ж довжина, як "$"~Print~N[E^(E!E)]), але з лапками навколо $, вихід був ледь за межі.
Міша Лавров

Що я придумав - це друк [$, N [Pi ^ (Pi * Pi)]], що дало $ 80662,7. Я спробував різні комбінації Pi, E, +, *, ^ (думав про те, але не бачив жодного ефективного способу його використання), але мені ніколи не спадало на думку спробувати!
Мені Розенфельд

$~Print~⌈E^(E!E)⌉з лівим і правим стелевими символами з одним символом було б трохи більше і 17 байт
співав jaeyong


6

JavaScript (Node.js) , 23 байти, 65535 дол

_=>"$"+ +(~~[]+`xFFFF`)

Спробуйте в Інтернеті!

Це найкраще, що я можу отримати atob, хоча там є великий простір для покращення

Ви знаєте, відсутність короткого символу для функції перетворення ascii висмоктує багато.

ПІСЛЯ цілого дня

JavaScript (Node.js) , 30 байт, $ 78011

_=>"$"+`𓂻`.codePointAt(![])

Спробуйте в Інтернеті!

або: 29 байт, 80020 дол

_=>"$"+`򀀠`.codePointAt(!_)

Де 򀀠єU+13894 INVALID CHARACTER

Ой String.codePointAt! Я просто повністю забув це!

Анекдот (15B, 130000 доларів), зовсім не марно, а просто заради розваги

_=>"$十三萬"

Отже, чому б не _=>"$⑮萬"^ _ ^
тш

2
Я зараз
сміюся,

Як щодо x1683F?
Густ ван де Валь

Просто використання _=>"$"+parseInt('1V0I',36)також вище, ніж у вас до цього часу, тому ви можете також додати його. Шкода, що ви не можете перетворити базову 64 в десяткову в JavaScript ...
Густ ван де Валь

@GustVanDeWal, на жаль, ви не можете використовувати цифри в коді.
Шиеру Асакото

6

MATLAB, 17 байт, $ 112222

['$','..////'+pi]

Стара відповідь:

['$','RRUUTR'-'!']

1
приємно використовувати автоматичне перетворення коду ascii завдяки+pi
Хокі

e не є вбудованою постійною в
matlab

6

Рубі, 119443 дол

$><<?$<<?𝊓.ord

Спробуйте в Інтернеті!

Максимальний цілий вихід для 17 байт. Символ Unicode - U + 1D293, що становить 119443 у шістнадцятковій формі.


Якщо ви хочете ризикнути, спробуйте 10 байт $><<?$<<$$у довго працюючій системі. Відповіді до 177827 є дійсними.
AShelly

Я думаю, ви маєте на увазі "у десятковій формі", або, принаймні, є певна двозначність.
jpmc26




5

Befunge-93 , 9 байт, $ 192448

a>$",**.@

Спробуйте в Інтернеті!

Виходи $192448, всього два долари та дев'ять центів, ніж максимум. Це навіть працює як поліглот з належними реалізаціями Befunge-98 , де навіть не потрібно викидати невпізнану помилку інструкцій!

Пояснення:

a>$        Basically no-ops
   "       Wrapping string that pushes the code and a lot of spaces to the stack
    ,      Print the $
     **    Multiply the byte values of a, > and a space
           62*97*32 = 192448
       .@  Print the number and terminate

5

Cubix , $ 155088 (12 байт)

*Ouo'ე'$/@

Спробуйте в Інтернеті!

Цікавою проблемою було сподівання звести це до 7 або 8 байт, але це виявилося важким. Натискає символи ე та $ до стеку, виводить $кратну вершину стека, виводить число та зупинки. Ще сподіваюся знайти нижчий байт

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.