Alors que je postulais à des emplois dont l’emploi ne mentionne pas le salaire, j’imaginais un intervieweur particulièrement pervers qui donnerait au candidat la possibilité de décider de son propre salaire ... en le "jouant au golf"!
Donc ça va simplement comme ça:
Sans utiliser de chiffres, écrivez un code indiquant le salaire annuel que vous souhaitez recevoir.
Cependant, être capable d'écrire du code concis est une pierre angulaire de cette société. Donc, ils ont mis en place une échelle d'ancienneté très serrée où
les employeurs qui écrivent du code qui est b octets peuvent gagner un maximum de (1'000'000 $) · b -0,75 .
nous examinons (ce sont les parties entières, juste pour des raisons d'affichage):
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
Le défi
Ecrivez un programme ou une fonction qui ne prend aucune entrée et génère un texte contenant un signe dollar ( $
, U + 0024) et une représentation décimale d'un nombre (entier ou réel).
- Votre code ne peut pas contenir les caractères
0123456789
.
Dans la sortie:
Il peut éventuellement y avoir un seul espace entre le signe dollar et le nombre.
Les espaces et les lignes vides et les nouvelles lignes sont acceptables, mais toute autre sortie est interdite.
Le nombre doit être exprimé en nombre décimal en utilisant uniquement les caractères
0123456789.
. Cela exclut l'utilisation de la notation scientifique.N'importe quel nombre de décimales est autorisé.
Une entrée est valide si la valeur générée n’est pas supérieure à (1 000 000 $) · b -0,75 , où b est la longueur en octets du code source.
Exemple de sortie (les guillemets ne doivent pas être affichés)
"$ 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
Le score
La valeur que vous produisez est votre score! (Le salaire le plus élevé gagne, bien sûr.)
Classement
Voici un extrait de pile permettant de générer un classement régulier et un aperçu des gagnants par langue.
Pour vous assurer que votre réponse apparaît, commencez votre réponse par un titre, en utilisant le modèle Markdown suivant:
# Language Name, $X (Y bytes)
où X
est votre salaire et Y
la taille de votre soumission. (Le Y bytes
peut être n'importe où dans votre réponse.) Si vous améliorez votre score, vous pouvez conserver les anciens scores dans le titre en les passant à travers. Par exemple:
# Ruby, <s>$111111.111... (18 bytes)</s> <s>$111999 (17 bytes)</s> $123456 (16 bytes)
Vous pouvez également faire du nom de la langue un lien, qui apparaîtra ensuite dans l'extrait de classement:
# [><>](http://esolangs.org/wiki/Fish), $126,126 (13 bytes)
Edit: (arrondi) score maximum autorisé par nombre d'octets, pour une référence plus rapide - texte ici :
la source
$80,662.67
au lieu de$80662.6659
? Vos règles semblent exclure la virgule, ce qui signifie que je ne peux utiliser aucune fonction de devise intégrée.Réponses:
bash, 127127 $
Essayez-le en ligne!
Comme la
x
commande n'existe pas, elle commet une erreur et définit le code de sortie sur127
.Ensuite, le code affiche un signe dollar suivi de
$?
deux fois. Les$?
magasins variables du code de sortie de la commande précédente, cette sorties$127127
à 13 octets .la source
x
il existe. En prime, il s'est écrasé en essayant de l'ouvrir, alors j'ai eu à la$11
place!]
au lieu dex
, le premier est moins susceptible d'exister.w
est une chose (proche dewho
) et de sortir avec succès, donc vous obtenez 00 $ pour cela!Java 8, 131 199,00 $ (15 octets)
Essayez-le en ligne.
Explication:
J'ai utilisé un programme pour générer un caractère imprimable ASCII dans la plage
[32, 126]
qui, lors de la division131199
, aurait la plus faible quantité de valeurs décimales. Étant donné que je peux me101
diviser de131199
manière égale,1299
il ne me manque que 31 centimes de mon salaire maximum possible sur la base de mon décompte d'octets de 15.la source
CJam , 5 octets, 262'144 $
Essayez-le en ligne!
Comment ça fonctionne
la source
CJam , (5 bytes) 294204.018 $ ...
Essayez-le en ligne!
Explication:
Je l'ai tiré de la réponse de Dennis, mais j'ai cherché des combinaisons de nombres qui donneraient un résultat plus élevé. J'ai failli abandonner, mais j'ai vu qu'ilπ π114 294000
P
la variable pour et que . La lettre a une valeur de 11 dans CJam, donnant le code ci-dessus.π 11 ≈ 294000B
la source
R , 20 octets,
$103540.9
Essayez-le en ligne!
Le maximum pour 20 octets est
$105737.1
, donc c'est assez proche du plafond de salaire!Ce serait une belle augmentation, et si je suis payé pour faire du golf de code ......
la source
pi
avec la somme d'un jeu de données ... nécessiterait une approche programmatique pour évaluer diverses combinaisons d'opérateurs / de jeux de données / pi afin d'être aussi proche que possible du maximum possible. Pas le temps pour ça maintenant, mais ça sonne comme un beau défi en soi.GS2 , (5 octets) 292 929 $
Un programme complet (montré ici en utilisant la page de code 437 ). (Le salaire maximum réalisable @ 5 octets est de 299069,75 $)
Essayez-le en ligne!
S'appuie sur la réponse GS2 de Dennis ...
la source
0x0724011d41
est de 5 octets par mon compte ...R , 21 octets 99649,9 $
Essayez-le en ligne!
Une
R
approche différente - voir aussi la réponse de GiuseppeTrès proche du maximum de 101937 $ pour ce compte.
Prime:
object.size()
R , 24 octets 89096 $
Essayez-le en ligne!
Cela dépend probablement du système, mais quand je l'ai sur TIO, j'ai reçu $ 89096 - proche de la limite de 92223 pour 24 octets.
la source
datasets
paquet a beaucoup de sens.prod
etsum
au hasard ... mais prod augmente trop vite!sum(volcano)
est,690907
mais cela devrait être d'environ 1 octet pour travailler, hahaJavaScript (ES6), 19 octets, 109 839 $
Essayez-le en ligne!
Sans
atob()
(Node.js), 26 octets, 86 126 $Essayez-le en ligne!
La concaténation de '$' avec les codes ASCII de 'V' (86) et '~' (126).
la source
Buffer
. C'est la première fois que l'on reconnaît cette classe; ')Buffer
le constructeur est obsolète, donc cela deviendra plus long dans les futures versionsBrainfuck à modification automatique , 16 octets, 124444 $
Essayez-le en ligne!
la source
:
, vous pouvez donc le supprimer et en ajouter un autre+
pour 124444 $.1
, pourquoi ne pas compter3
et imprimer seulement3
s? Vous voudriez enregistrer un octet et imprimer un nombre plus élevé.PHP, 131116 $ (8 octets)
Je n'en ai pas vu un pour php et je voulais en jeter un. Je sais qu’un endroit dans php est un mauvais cast de typographie qui couperait cela en deux mais je ne le trouve pas pour le moment.
Cela profite simplement des balises courtes PHP et des constantes PHP intégrées.
Essayez-le en ligne!
la source
<?="$".
, faites$<?=
et enregistrez quelques octets.GS2 , 5 octets, 291'000 $
Ceci est une représentation CP437 du code source binaire.
Essayez-le en ligne!
Comment ça fonctionne
la source
Excel 19 octets $ 107899.616068361
Explication:
la source
vim,
99999$ 110000$ 120000 $Essayez-le en ligne!
Utilise le registre d'expression (notez qu'il existe un caractère <Cr> invisible dans la plupart des polices entre
$
et et=
pour un total de 13 octets ) afin d'insérer la valeur de l''pvh'
option multipliée par la valeur de l''ur'
option.'previewheight'
est l’option qui contrôle la hauteur des fenêtres d’aperçu, qui est 12 par défaut.'undoreload'
est le nombre maximum de lignes qu'un tampon peut avoir avant que vim n'abandonne le stockage en mémoire pour l'annulation, et le nombre par défaut est 10 000.la source
Gelée ,
$ 256000 $ 256256(6 octets ) $ 257256Un programme complet. (Le salaire maximum réalisable à 6 octets est de 260847,43 $)
Essayez-le en ligne!
Comment?
Précédent...
5 octets $ 256256
('$' concaténer 256, répéter 256 - provoquant une impression implicite intermédiaire)
6 octets $ 256000:
(256 × 1000 ṭack '$')
la source
C #
Programme complet,
72 octets, 40448 dollars,66 octets, 43008 dollarsEssayez-le en ligne!
Explication
L'opérateur de décalage à gauche traite les caractères
'T'
et'i'
comme des nombres entiers respectivement 84 et 105 et effectue un décalageLambda,
19 octets, 109568 dollars,17 octets, 118784 dollarsEssayez-le en ligne!
Edit Merci à @ LegionMammal978 et @Kevin pour la sauvegarde de 2 octets
la source
()=>
ào=>
-1 un octet supplémentaire.o=>"$"+('t'<<'j')
avec 118784 $.PHP, 13 Bytes, $ 144000 Salaire
Malheureusement pour cet emploi, il est nécessaire de déménager à Maurice (bon, je pourrais me déplacer légèrement vers l’est, mais chaque fuseau horaire de moins donnerait une baisse de salaire de 36 000 dollars). Pour compenser cet inconvénient, mon salaire augmente de 1 dollar par an.
Cela met simplement
Z
le fuseau horaire en secondes et indique s'il s'agit ou non d'une année bissextile.la source
brainfuck , 43 bytes, $ 58888
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 3 , (22 bytes) 98 442 $
Essayez-le en ligne!
Tout comme la réponse Ruby de Doorknob , le caractère Unicode de 4 octets utilisé ici
𘂊
, a une valeur ordinale du salaire entier maximal pouvant être atteint sur 22 octets.Notez que
print()
ses arguments non nommés sont séparés par des espaces par défaut (sep
c'est un argument nommé optionnel).la source
Gol> <> , 207680 $ en 8 octets
Essayez-le en ligne!
Comment ça fonctionne:
Il est intéressant de noter que vous pouvez utiliser à la
h
place den;
, ce qui donne'o**h5$
un score de 231504 $, mais vous ne pouvez pas utiliser 0 à 9, et il n’existe pas d’autre moyen à un octet d’ajouter 53, la valeur ASCII de5
la source
Gelée , 8 octets, 210176,48625619375
3535 (
⁽½"
) multipli (×
) ed par son sqrt (½
).Essayez-le en ligne!
la source
Mathematica, 18 octets, 107 163,49 $
Programme complet; courir en utilisant
MathematicaScipt -script
. Sorties$107163.4882807548
suivies d'un retour à la ligne final. J'ai vérifié que ce soit la solution de la forme la plus haute notation où est composé de , , et .$~Print~N[expr]
expr
Pi
E
I
+-* /()!
la source
I
?I
et non pas simplementI I
ouI/I
sera généralement un+ 0.*I
cloué sur sonN
."$"~Print~Exp[E!N@E]
(ce qui est la même longueur que"$"~Print~N[E^(E!E)]
), mais avec les guillemets tout autour$
, la sortie était à peine supérieure à la limite.$~Print~⌈E^(E!E)⌉
avec des caractères de plafond gauche et droit avec un caractère, ce serait un peu plus et 17 octets05AB1E (5 octets), 262626 $
Essayez-le en ligne!
$
["$", 26, 26, 26]
J
la source
JavaScript (Node.js) , 23 octets, 65535 $
Essayez-le en ligne!
C’est le meilleur que je puisse obtenir sans
atob
qu’il y ait un grand espace d’amélioration tbhVous savez, ne pas avoir de caractère court pour la fonction de conversion ASCII aspire BEAUCOUP.
Après une journée entière
JavaScript (Node.js) , 30 octets, 78011 $
Essayez-le en ligne!
ou: 29 octets, 80020 $
Où
estU+13894 INVALID CHARACTER
Oh
String.codePointAt
! J'ai juste complètement oublié ça!Une blague (15 milliards, 130000 $), pas vaild du tout mais juste pour le plaisir
la source
_=>"$⑮萬"
^ _ ^x1683F
vous_=>"$"+parseInt('1V0I',36)
est également plus élevé que ce que vous avez jusqu'à présent, alors vous voudrez peut-être aussi l'ajouter. Dommage que vous ne puissiez pas convertir la base 64 en décimale en JavaScript ...MATLAB, 17 octets, 112222 $
Ancienne réponse:
la source
+pi
Ruby, 119443 $
Essayez-le en ligne!
La sortie entière maximale pour 17 octets. Le caractère Unicode est U + 1D293, ce qui correspond à 119443 en hexadécimal.
la source
$><<?$<<$$
sur un système fonctionnant longtemps. Les réponses jusqu'à 177827 sont valides.dc , $ 169169 10 octets
Essayez-le en ligne!
Ceci affiche 13 (
D
) au carré, deux foisla source
Japt, 5 octets, 262144 $
Essaye-le
Explanation
I
est la constante Japt pour64
, la met en³
cubes et la'$+
concatène ensuite avec le symbole dollar.la source
"${I³
Befunge-98 (PyFunge) , 8 octets, 209728 $
Essayez-le en ligne!
Le caractère
:
a été calculé à l'aide de la méthode suivante:Utilisation
@
etf
fonctionne également, mais donne seulement $ 208896.la source
Befunge-93 , 9 octets, 192448 $
Essayez-le en ligne!
Sorties
$192448
, juste deux dollars et neuf cents de moins que le maximum. Cela fonctionne même comme un polyglotte avec les implémentations appropriées de Befunge-98 , où il n'est même pas nécessaire de générer une erreur d'instruction non reconnue!Explication:
la source
Cubix , 155088 $ (12 octets)
Essayez-le en ligne!
Un problème intéressant, espérait obtenir 7 ou 8 octets, mais cela s’avérait difficile. Pousse les caractères ე et $ sur la pile, génère les
$
multiples supérieurs de la pile, génère le nombre et s'arrête. J'espère toujours trouver une option d'octet inférieurla source