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:**
Respuestas:
JavaScript (ES7),
444240 bytesTachado 44 sigue siendo regular 44 :(
¡Gracias a @apsillers por guardar 2 bytes!
Explicación
La parte interesante es
-1-~((s-14)**1.3).(s-14)**1.3produce1,2,4y6para los valores15 - 18. Cualquier número que sea menor que15causa un error porque la implementación de JavaScript de exponencial no puede operar en valores negativos con un exponente fraccionario. Básicamente, cualquier valor des < 15hace que regreseNaN, por lo que-1-~está allí para convertirlo en un número (0).Solución ES6 (42 bytes)
Prueba
Esta prueba utiliza
Math.powen su lugar el operador exponencial (**) para que pueda ejecutarse en cualquier navegador estándar.Mostrar fragmento de código
fuente
|tlugar de&&t. La operación ECMAScriptToInt32siempre obligará al resultado demapaquí a0, porque las matrices de elementos múltiples siempre seToNumberclasificarán comoNaN. (Esto sería un problema si la especificación permitió arrays de un solo elemento como entrada, pero requiere 6 elementos.)CJam, 18 bytes
o
Pruébalo aquí.
Explicación
La idea es descomponer el costo en tres componentes:
Los tres componentes pueden calcularse mediante una única resta y restringir el resultado a valores no negativos.
fuente
Pyth, 14 bytes
Banco de pruebas
Utiliza los mismos medios fundamentales de cálculo que Martin Büttner, a saber:
Dicho esto, los medios de cálculo son muy diferentes. Para generar la lista de números para restar, utilizo la expresión
+14yB8.yB8significa "Bifurcar 8 en la función y". y dobla los números, entonces esto da[8, 16]. Luego, agregamos 14, dando la lista[14, 8, 16].Luego, tomamos el producto cartesiano con la entrada y restamos cada par de valores.
A continuación, realice la operación de maximización, simplemente filtramos solo los valores positivos y sumamos el resto.
fuente
Samau , 19 bytes
No estoy seguro si la pregunta se publica después de la última confirmación de mi nuevo idioma. Ambos son hace 2 horas. Pero todas las características utilizadas aquí se agregaron antes de eso.
Samau utiliza CP737 como codificación de caracteres predeterminada.
fuente
PowerShell, 48 bytes
(Estoy bastante seguro de que esto no es óptimo).
Toma argumentos de línea de comandos de entrada y los canaliza en un bucle
|%{...}. Cada iteración, incrementamos nuestro total$t+=con el número actual menos 8$_-8más el resultado de indexar en una tabla hash para los valores más caros@{...}[$_]. Luego simplemente salimos$tal final.fuente
(🐂👍) Ox ++, 248 bytes (62 caracteres)
Idioma en el que estoy trabajando. Pega el código aquí .
fuente