var QUESTION_ID=96188,OVERRIDE_USER=41257;function answersUrl(e){return"http://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"http://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>
Respuestas:
MATL , 5 bytes
Pruébalo en línea!
Explicación
fuente
7B
allí para llegar[1 1 1]
[a,b,c,...]
, ¿cómo se obtienea+b
pero se evitaa
?Python, 25 bytes
Para ver por qué esto funciona, gire la expansión en el OP 45 grados:
fuente
Python 2, 28 bytes
Solo 3 veces la suma y menos uno de cada elemento final
fuente
a
pasa si es la lista vacía (primer caso de prueba)?a[0]
arrojará unIndexError
, no?05AB1E ,
115 bytesGuardado 6 bytes gracias a Adnan .
Pruébalo en línea!
Explicación
fuente
€Ð¦¨O
Funciona :)?€Ð
aunque lo haya usado€D
antes: PJavaScript (ES6),
4033 bytesDevuelve
NaN
cuando se le da una lista vacía.fuente
v=>eval(v.join`*3+`+"*2")-v[0]
R,
75 70 52 34 3331 bytesSuma por tres y resta el primer y el último elemento
Editar: Guardado 3 bytes adicionales gracias a @rturnbull
fuente
Scala, 47 bytes
Antepone y agrega un 0, luego utiliza una ventana deslizante de tamaño 3 para sumar los vecinos y calcula la suma total
fuente
Java 7, 72 bytes
fuente
float
lugar dedouble
:)int
s?Mathematica,
343229 bytesTomando un poco de inspiración la aseada respuesta de Lynn a Python ...
o
o
Desafortunadamente, este enfoque no es tan conveniente en Mathematica como lo es en Python, porque no hay una forma corta y segura de descartar el primer y último elemento de una lista que podría estar vacía.
fuente
Check
MATLAB,
312826 bytes3 bytes guardados gracias a @Luis
Esto crea una función anónima llamada
ans
que se puede llamar así:ans([1, 2, 3, 4, 5])
Para proporcionar una demostración en línea (que usa Octave), tuve que usar en
'same'
lugar de's'
como la última entrada paraconv
Demo en línea
Explicación
Realizamos convolución (
conv
) con un1 x 3
núcleo de todos los 1 (creados al hacer una matriz1:3
y luego compararlos con cero>0
) y mantenemos el tamaño del original especificando la tercera entrada como'same'
o en MATLAB simplemente podemos acortar esto's'
. Luego aplicamos la suma al resultado.fuente
's'
Jalea , 5 bytes
Pruébalo en línea!
Traducción de mi respuesta de Python .
fuente
ḊṖ+ḤS
,Ṗ++ḊS
,+Ḋ+ṖS
,+Ṗ+ḊS
, ...J, 9 bytes
Para
[1, 2, 3, 4, 5]
, los vecinos sonLuego mira a lo largo de las diagonales de las sumas
Por lo tanto, solo necesitamos encontrar la suma de la entrada con su cabeza eliminada y con su cola eliminada.
Uso
Explicación
fuente
Brain-Flak , 68 bytes
Pruébalo en línea!
Explicación:
fuente
PowerShell v2 +, 40 bytes
Similar a las otras respuestas, suma la lista, multiplica por 3, resta los elementos finales. Barfs muestra un error espectacular para la entrada vacía, y luego escupe
0
, pero como STDERR se ignora por defecto, esto está bien.fuente
ParameterArgumentValidationErrorEmptyStringNotAllowed
ಠ_ಠ ¡Qué excepción!Ruby,
353331 bytesInspirado por la solución de Lynn:
los
to_a
segmento está ahí para manejar la matriz vacía.EDITAR: Gracias a m-chrzan e histocrat.
fuente
:+
.[*(a*3)[1..-2]]
lo hace.to_a
en dos bytes menos.Array#sum
.Perl 6 , 25 bytes
Expandido:
Prueba:
fuente
PHP, 39 bytes
Corre así:
Explicación
El desafío se puede reducir a sumar cada número 3 veces, excepto el primer y el último número (agregado dos veces). Por lo tanto, devuelvo 3 veces la suma, menos el primer y el último número.
fuente
> <> , 25 (+3 para
-v
) = 28 bytesToma datos de la pila con
-v
y asume que stdin está vacío, confiando en que proporcione un-1
valor.fuente
C # con LINQ, 42 bytes
Requiere el
System.Linq
espacio de nombres.C #, 84 bytes
Programa completo con casos de prueba:
fuente
Raqueta 48 bytes
Sin golf:
Pruebas:
Salida:
fuente
Gloo , 12 bytes
Resulta que una característica de Gloo no funciona según lo previsto, así que tuve que hacerlo de una manera dolorosa.
Explicación:
fuente
Elixir , 93 bytes
Función anónima utilizando el operador de captura.
Programa completo con casos de prueba:
¡Pruébelo en línea en ElixirPlayground !
fuente
TI-Basic, 17 bytes
Simplemente tres veces la suma de la lista, menos el primer y el último elemento.
fuente
Ans
es una forma de entrada no válida.{1,3,5,7,2,6}:prgmNEIGHBOR
Ans
como entrada.Ruby, 41 bytes
Programa completo con casos de prueba:
Mi primer intento en Ruby.
fuente
Array#sum
. Sin embargo, aún no he instalado la versión de vista previa para probar si esto simplemente se puede incluir en esta solución.Javascript, 46 bytes
Mostrar fragmento de código
Gracias @rlemon por los 2 bytes adicionales
fuente
Pyke,
95 bytesPruébalo aquí!
fuente
Java 8, 60
fuente
C ++, 67 bytes
Uso:
fuente
Haskell, 25 bytes
Desde el más rápido
vía más bonita
hasta el más feo pero más corto
fuente
Lote, 67 bytes
Si no hay parámetros, el último comando se convierte en
0 * 3 - -0
.fuente