var QUESTION_ID=67472,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/67472/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;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-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("{{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 SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;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>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></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>{{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>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
**Leaderboard:**
Réponses:
JavaScript (ES7),
444240 octetsBarré 44 est toujours régulier 44 :(
Merci à @apsillers d' avoir économisé 2 octets!
Explication
La partie intéressante est
-1-~((s-14)**1.3)
.(s-14)**1.3
produit1
,2
,4
et6
pour les valeurs15 - 18
. Tout nombre inférieur à15
provoque une erreur car l'implémentation JavaScript d'exponentielle ne peut pas fonctionner sur des valeurs négatives avec un exposant fractionnaire. Fondamentalement, toute valeur de for les < 15
renvoieNaN
, donc le-1-~
est là pour le convertir en un nombre (0
).Solution ES6 (42 octets)
Tester
Ce test utilise à la
Math.pow
place l'opérateur exponentiel (**
) afin qu'il puisse s'exécuter dans n'importe quel navigateur standard.Afficher l'extrait de code
la source
|t
au lieu de&&t
. L' opération ECMAScriptToInt32
toujours exercer des pressions sur le résultat d'map
ici à0
, car les tableaux multi-éléments toujoursToNumber
-ify àNaN
. (Ce serait un problème si la spécification autorisait les tableaux à élément unique en entrée, mais cela nécessite 6 éléments.)CJam, 18 octets
ou
Testez-le ici.
Explication
L'idée est de décomposer le coût en points en trois composantes:
Les trois composants peuvent être calculés via une seule soustraction et en restreignant le résultat à des valeurs non négatives.
la source
Pyth, 14 octets
Suite de tests
Celui-ci utilise les mêmes moyens de calcul fondamentaux que Martin Büttner, à savoir:
Cela dit, les moyens de calcul sont très différents. Pour générer la liste des nombres à soustraire, j'utilise l'expression
+14yB8
.yB8
signifie "Bifurquer 8 sur la fonction y". y double les nombres, donc cela donne[8, 16]
. Ensuite, nous ajoutons le 14, donnant la liste[14, 8, 16]
.Ensuite, nous prenons le produit cartésien avec l'entrée et soustrayons chaque paire de valeurs.
Ensuite, effectuez l'opération de maximisation, nous filtrons simplement les valeurs positives uniquement et additionnons le reste.
la source
Samau , 19 octets
Je ne sais pas si la question est postée après le dernier commit de ma nouvelle langue. Ils sont tous les deux il y a 2 heures. Mais toutes les fonctionnalités utilisées ici ont été ajoutées avant cela.
Samau utilise CP737 comme encodage de caractères par défaut.
la source
PowerShell, 48 octets
(Je suis sûr que ce n'est pas optimal.)
Prend les arguments de ligne de commande d'entrée et les canalise dans une boucle
|%{...}
. À chaque itération, nous incrémentons notre total$t+=
avec le nombre actuel moins 8$_-8
plus le résultat de l'indexation dans une table de hachage pour les valeurs les plus chères@{...}[$_]
. Ensuite, nous sortons simplement$t
à la fin.la source
(🐂👍) Ox ++, 248 octets (62 caractères)
Langue sur laquelle je travaille. Collez le code ici .
la source