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>
Réponses:
MATL , 5 octets
Essayez-le en ligne!
Explication
la source
7B
là pour obtenir[1 1 1]
[a,b,c,...]
, comment obtenez-vousa+b
mais évitez-vous de l'obtenira
?Python, 25 octets
Pour voir pourquoi cela fonctionne, faites pivoter l'expansion de l'OP de 45 degrés:
la source
Python 2, 28 octets
Juste 3 fois la somme et moins un de chaque élément d'extrémité
la source
a
la liste est vide (premier cas de test)?a[0]
va jeter unIndexError
, non?05AB1E ,
115 octets6 octets enregistrés grâce à Adnan .
Essayez-le en ligne!
Explication
la source
€Ð¦¨O
marche :)?€Ð
même si j'en ai utilisé€D
auparavant: PJavaScript (ES6),
4033 octetsRenvoie
NaN
lorsque donné une liste vide.la source
v=>eval(v.join`*3+`+"*2")-v[0]
R,
75 70 52 34 3331 octetsAdditionner trois fois et soustraire le premier et le dernier élément
Edit: enregistré 3 octets supplémentaires grâce à @rturnbull
la source
Scala, 47 octets
Ajoute et ajoute un 0, puis utilise une fenêtre coulissante de taille 3 pour additionner les voisins et calcule la somme totale
la source
Java 7, 72 octets
la source
float
double
int
s?Mathematica,
343229 octetsInspiré par la réponse soignée de Lynn en Python ...
ou
ou
Malheureusement, cette approche n'est pas aussi pratique dans Mathematica que dans Python, car il n'existe aucun moyen court et sûr de supprimer le premier et le dernier élément d'une liste qui pourrait être vide.
la source
Check
MATLAB,
312826 octets3 octets économisés grâce à @Luis
Cela crée une fonction anonyme nommée
ans
qui peut être appelée comme:ans([1, 2, 3, 4, 5])
Afin de fournir une démo en ligne (qui utilise Octave), j'ai dû utiliser
'same'
au lieu de's'
comme dernière entrée pourconv
Démo en ligne
Explication
Nous effectuons la convolution (
conv
) avec un1 x 3
noyau de tous les 1 (créé en créant un tableau1:3
puis en le comparant à zéro>0
) et conservons la taille de l'original en spécifiant la troisième entrée comme'same'
ou dans MATLAB, nous pouvons simplement raccourcir cela's'
. Nous appliquons ensuite la somme au résultat.la source
's'
Gelée , 5 octets
Essayez-le en ligne!
Traduction de ma réponse Python .
la source
ḊṖ+ḤS
,Ṗ++ḊS
,+Ḋ+ṖS
,+Ṗ+ḊS
, ...J, 9 octets
Car
[1, 2, 3, 4, 5]
les voisins sontRegardez ensuite le long des diagonales des sommes
Il suffit donc de trouver la somme de l'entrée avec sa tête retirée et sa queue retirée.
Usage
Explication
la source
Brain-Flak , 68 octets
Essayez-le en ligne!
Explication:
la source
PowerShell v2 +, 40 octets
Semblable aux autres réponses, résume la liste, multiplie par 3, soustrait les éléments finaux. Supprime une erreur spectaculaire pour une entrée vide, puis crache
0
, mais comme STDERR est ignoré par défaut, c'est OK.la source
ParameterArgumentValidationErrorEmptyStringNotAllowed
ಠ_ಠ Quelle exception!Rubis,
353331 octetsInspiré par la solution de Lynn:
Le
to_a
segment est là pour gérer le tableau vide.EDIT: Merci à m-chrzan et histocrat.
la source
:+
.[*(a*3)[1..-2]]
fait.to_a
en deux octets de moins.Array#sum
.Perl 6 , 25 octets
Étendu:
Tester:
la source
PHP, 39 octets
Courez comme ceci:
Explication
Le défi peut être réduit à l'ajout de chaque numéro 3 fois, sauf le premier et le dernier numéro (ajouté deux fois). Par conséquent, je retourne 3 fois la somme, moins le premier et le dernier nombre.
la source
> <> , 25 (+3 pour
-v
) = 28 octetsPrend l'entrée de la pile avec
-v
et suppose que stdin est vide, en s'appuyant sur elle pour fournir une-1
valeur.la source
C # avec LINQ, 42 octets
Nécessite l'
System.Linq
espace de noms.C #, 84 octets
Programme complet avec cas de test:
la source
Raquette 48 octets
Non golfé:
Essai:
Sortie:
la source
Gloo , 12 octets
Il s'avère qu'une fonctionnalité de Gloo ne fonctionne pas comme prévu, j'ai donc dû le faire de manière douloureuse.
Explication:
la source
Elixir , 93 octets
Fonction anonyme utilisant l'opérateur de capture.
Programme complet avec cas de test:
Essayez-le en ligne sur ElixirPlayground !
la source
TI-Basic, 17 octets
Simplement trois fois la somme de la liste, moins le premier et le dernier élément.
la source
Ans
c'est une forme d'entrée invalide.{1,3,5,7,2,6}:prgmNEIGHBOR
Ans
en entrée.Rubis, 41 octets
Programme complet avec cas de test:
Ma première tentative en Ruby.
la source
Array#sum
. Je n'ai pas encore installé la version d'aperçu pour tester si cela peut simplement être déposé dans cette solution.Javascript, 46 octets
Afficher l'extrait de code
Merci @rlemon pour les 2 octets supplémentaires
la source
Pyke,
95 octetsEssayez-le ici!
la source
Java 8, 60
la source
C ++, 67 octets
Usage:
la source
Haskell, 25 octets
Du plus rapide
via plus jolie
jusqu'à la plus laide mais la plus courte
la source
Lot, 67 octets
S'il n'y a pas de paramètres, la dernière commande devient
0 * 3 - -0
.la source