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>
Antworten:
MATL , 5 Bytes
Probieren Sie es online!
Erläuterung
quelle
7B
dort zu bekommen[1 1 1]
[a,b,c,...]
Wie bekommst du eine Liste ,a+b
aber vermeidest siea
?Python, 25 Bytes
Um zu sehen, warum dies funktioniert, drehen Sie die Erweiterung im OP um 45 Grad:
quelle
Python 2, 28 Bytes
Nur 3 mal die Summe und minus eines von jedem Endelement
quelle
a
ist eigentlich, wenn die Liste leer ist (erster Testfall)?a[0]
wird ein werfenIndexError
, nein?05AB1E ,
115 Bytes6 Bytes gespart dank Adnan .
Probieren Sie es online!
Erläuterung
quelle
€Ð¦¨O
:)?€Ð
, obwohl ich es€D
zuvor verwendet habe : PJavaScript (ES6),
4033 BytesGibt zurück,
NaN
wenn eine leere Liste angegeben wird.quelle
v=>eval(v.join`*3+`+"*2")-v[0]
R
75 70 52 34 3331 BytesSummiere mal drei und subtrahiere das erste und das letzte Element
Bearbeiten: 3 zusätzliche Bytes dank @rturnbull gespeichert
quelle
Scala, 47 Bytes
Stellt eine 0 voran und hängt sie an, verwendet dann ein Schiebefenster der Größe 3, um die Nachbarn zu summieren, und berechnet die Gesamtsumme
quelle
Java 7, 72 Bytes
quelle
float
anstelle vondouble
:)int
s?Mathematica,
343229 BytesLass dich inspirieren Lynns saubere Python-Antwort ...
oder
oder
Leider ist dieser Ansatz in Mathematica nicht so praktisch wie in Python, da es keine kurze und sichere Möglichkeit gibt, das erste und letzte Element einer Liste zu verwerfen, die möglicherweise leer ist.
quelle
Check
MATLAB,
312826 Bytes3 Bytes gespart dank @Luis
Dadurch wird eine anonyme Funktion mit dem Namen
ans
erstellt, die wie folgt aufgerufen werden kann:ans([1, 2, 3, 4, 5])
Um eine Online-Demo (die Octave verwendet) zur Verfügung zu stellen, musste ich
'same'
statt's'
als letzte Eingabe verwendenconv
Online Demo
Erläuterung
Wir führen Convolution (
conv
) mit einem1 x 3
Kernel aller Einsen durch (erstellt durch Erstellen eines Arrays1:3
und anschließender Vergleich mit Null>0
) und behalten die Größe des Originals bei, indem'same'
wir die dritte Eingabe als oder in MATLAB angeben, auf die wir diese einfach kürzen können's'
. Wir wenden dann die Summe auf das Ergebnis an.quelle
's'
Gelee , 5 Bytes
Probieren Sie es online!
Übersetzung meiner Python-Antwort .
quelle
ḊṖ+ḤS
,Ṗ++ḊS
,+Ḋ+ṖS
,+Ṗ+ḊS
, ...J 9 Bytes
Denn
[1, 2, 3, 4, 5]
die Nachbarn sindDann schauen Sie sich die Diagonalen der Summen an
Wir brauchen also nur die Summe der Eingaben zu finden, wobei der Kopf und der Schwanz entfernt sind.
Verwendung
Erläuterung
quelle
Brain-Flak , 68 Bytes
Probieren Sie es online!
Erläuterung:
quelle
PowerShell v2 +, 40 Byte
Summiert ähnlich wie bei den anderen Antworten die Liste, multipliziert mit 3, subtrahiert die Endelemente. Bei Leereingaben wird ein spektakulärer Fehler ausgegeben und dann ausgespuckt.
0
Da STDERR jedoch standardmäßig ignoriert wird, ist dies in Ordnung.quelle
ParameterArgumentValidationErrorEmptyStringNotAllowed
ಠ_ಠ Was für eine Ausnahme!Ruby,
353331 BytesInspiriert von Lynns Lösung:
Das
to_a
Segment ist dazu da, das leere Array zu handhaben.EDIT: Danke an m-chrzan und histocrat.
quelle
:+
.[*(a*3)[1..-2]]
macht.to_a
in zwei weniger Bytes.Array#sum
.Perl 6 , 25 Bytes
Erweitert:
Prüfung:
quelle
PHP, 39 Bytes
Laufen Sie wie folgt:
Erläuterung
Die Herausforderung kann auf das 3-fache Hinzufügen jeder Zahl mit Ausnahme der ersten und der letzten Zahl (zweimal hinzugefügt) reduziert werden. Deshalb gebe ich 3 mal die Summe abzüglich der ersten und letzten Zahl zurück.
quelle
> <> , 25 (+3 für
-v
) = 28 BytesNimmt eine Eingabe von dem Stapel mit
-v
und übernimmt stdin leer ist, die sich auf einen schaffen-1
Wert.quelle
C # mit LINQ, 42 Bytes
Benötigt den
System.Linq
Namespace.84 Bytes
Volles Programm mit Testfällen:
quelle
Schläger 48 Bytes
Ungolfed:
Testen:
Ausgabe:
quelle
Gloo , 12 Bytes
Es stellte sich heraus, dass eine Funktion von Gloo nicht wie beabsichtigt funktioniert, also musste ich dies auf schmerzhafte Weise tun.
Erläuterung:
quelle
Elixir, 93 bytes
Anonymous function using the capture operator.
Full program with test cases:
Try it online on ElixirPlayground !
quelle
TI-Basic, 17 bytes
Simply three times the sum of the list, minus the first and last element.
quelle
Ans
is an invalid form of input.{1,3,5,7,2,6}:prgmNEIGHBOR
Ans
as input.Ruby, 41 bytes
Full program with test cases:
My first attempt in Ruby.
quelle
Array#sum
. I haven't yet installed the preview release though to test whether this can simply be dropped into this solution.Javascript, 46 bytes
Show code snippet
Thanks @rlemon for the extra 2 bytes
quelle
Pyke,
95 bytesTry it here!
quelle
Java 8, 60
quelle
C++, 67 bytes
Usage:
quelle
Haskell, 25 bytes
From fastest
via prettiest
down to ugliest but shortest
quelle
Batch, 67 bytes
If there are no parameters, the last command turns into
0 * 3 - -0
.quelle