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>
Jawaban:
MATL , 5 byte
Cobalah online!
Penjelasan
sumber
7B
sana untuk mendapatkan[1 1 1]
[a,b,c,...]
, bagaimana Anda mendapatkana+b
tetapi menghindaria
?Python, 25 byte
Untuk melihat mengapa ini bekerja, putar ekspansi di OP dengan 45 derajat:
sumber
Python 2, 28 byte
Hanya 3 kali jumlah dan minus satu dari setiap elemen ujung
sumber
a
daftar kosong (test case pertama)?a[0]
akan melemparIndexError
, bukan?05AB1E ,
115 byteDisimpan 6 byte berkat Adnan .
Cobalah online!
Penjelasan
sumber
€Ð¦¨O
berhasil :)?€Ð
meskipun saya telah menggunakan€D
sebelumnya: PJavaScript (ES6),
4033 byteKembali
NaN
ketika diberikan daftar kosong.sumber
v=>eval(v.join`*3+`+"*2")-v[0]
R,
75 70 52 34 3331 byteJumlahkan tiga kali dan kurangi elemen pertama dan terakhir
Sunting: Disimpan 3 byte tambahan berkat @rturnbull
sumber
Scala, 47 byte
Tambahkan dan tambahkan a 0, kemudian gunakan jendela geser ukuran 3 untuk menjumlahkan tetangga, dan menghitung jumlah total
sumber
Java 7, 72 Bytes
sumber
float
alih-alihdouble
:)int
?Mathematica,
343229 byteMengambil beberapa inspirasi, jawaban Python yang rapi dari Lynn ...
atau
atau
Sayangnya, pendekatan ini tidak begitu nyaman di Mathematica seperti di Python, karena tidak ada cara pendek dan aman untuk membuang elemen pertama dan terakhir dari daftar yang mungkin kosong.
sumber
Check
MATLAB,
312826 byte3 byte disimpan berkat @Luis
Ini menciptakan fungsi anonim bernama
ans
yang dapat disebut seperti:ans([1, 2, 3, 4, 5])
Dalam rangka memberikan demo online (yang menggunakan Octave), saya harus menggunakan
'same'
bukannya's'
sebagai input terakhirconv
Demo online
Penjelasan
Kami melakukan konvolusi (
conv
) dengan1 x 3
kernel semua 1's (dibuat dengan membuat array1:3
dan kemudian membandingkannya dengan nol>0
) dan mempertahankan ukuran aslinya dengan menetapkan input ketiga sebagai'same'
atau di MATLAB kita dapat mempersingkat ini menjadi's'
. Kami kemudian menerapkan jumlah pada hasilnya.sumber
's'
Jelly , 5 byte
Cobalah online!
Terjemahan dari jawaban Python saya .
sumber
ḊṖ+ḤS
,Ṗ++ḊS
,+Ḋ+ṖS
,+Ṗ+ḊS
, ...J, 9 byte
Karena
[1, 2, 3, 4, 5]
, para tetangga adalahKemudian lihat diagonal angka-angka
Jadi kita hanya perlu menemukan jumlah input dengan kepalanya dilepas dan ekornya dilepas.
Pemakaian
Penjelasan
sumber
Brain-Flak , 68 byte
Cobalah online!
Penjelasan:
sumber
PowerShell v2 +, 40 byte
Mirip dengan jawaban lain, jumlahkan daftar, lipat dengan 3, kurangi elemen akhirnya. Tidak ada kesalahan spektakuler untuk input kosong, dan kemudian
0
dimuntahkan, tetapi karena STDERR diabaikan secara default, ini OK.sumber
ParameterArgumentValidationErrorEmptyStringNotAllowed
ಠ_ಠ Pengecualian!Ruby,
353331 byteTerinspirasi oleh solusi Lynn:
Itu
to_a
segmen yang ada untuk menangani array kosong.EDIT: Terima kasih kepada m-chrzan dan histokrat.
sumber
:+
.[*(a*3)[1..-2]]
tidak.to_a
dalam dua byte lebih sedikit.Array#sum
.Perl 6 , 25 byte
Diperluas:
Uji:
sumber
PHP, 39 byte
Jalankan seperti ini:
Penjelasan
Tantangan dapat dikurangi dengan menambahkan setiap angka 3 kali, kecuali angka pertama dan terakhir (ditambahkan dua kali). Karena itu saya mengembalikan 3 kali jumlah, minus angka pertama dan terakhir.
sumber
> <> , 25 (+3 untuk
-v
) = 28 byteMengambil input dari stack dengan
-v
dan menganggap stdin kosong, bergantung padanya untuk memberikan-1
nilai.sumber
C # dengan LINQ, 42 byte
Membutuhkan
System.Linq
namespace.C #, 84 byte
Program lengkap dengan kasus uji:
sumber
Racket 48 byte
Tidak Disatukan:
Pengujian:
Keluaran:
sumber
Gloo , 12 Bytes
Ternyata fitur Gloo tidak berfungsi sebagaimana mestinya jadi saya harus melakukan ini dengan cara yang menyakitkan.
Penjelasan:
sumber
Elixir , 93 byte
Fungsi anonim menggunakan operator tangkap.
Program lengkap dengan kasus uji:
Cobalah online di ElixirPlayground !
sumber
TI-Basic, 17 byte
Cukup tiga kali jumlah dari daftar, minus elemen pertama dan terakhir.
sumber
Ans
adalah bentuk input yang tidak valid.{1,3,5,7,2,6}:prgmNEIGHBOR
Ans
sebagai input.Ruby, 41 byte
Program lengkap dengan kasus uji:
Upaya pertama saya di Ruby.
sumber
Array#sum
. Saya belum menginstal rilis preview untuk menguji apakah ini dapat dimasukkan ke dalam solusi ini.Javascript, 46 byte
Tampilkan cuplikan kode
Terima kasih @rlemon untuk 2 byte tambahan
sumber
Pyke,
95 byteCoba di sini!
sumber
Java 8, 60
sumber
C ++, 67 byte
Pemakaian:
sumber
Haskell, 25 byte
Dari tercepat
via tercantik
ke paling jelek tapi terpendek
sumber
Batch, 67 byte
Jika tidak ada parameter, perintah terakhir berubah menjadi
0 * 3 - -0
.sumber