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:**
Odpowiedzi:
JavaScript (ES7),
444240 bajtówPrzekreślone 44 jest nadal regularne 44 :(
Dzięki @apsillers za uratowanie 2 bajtów!
Wyjaśnienie
Interesującą częścią jest
-1-~((s-14)**1.3)
.(s-14)**1.3
produkuje1
,2
,4
a6
dla wartości15 - 18
. Dowolna liczba mniejsza niż15
powoduje błąd, ponieważ implementacja JavaScript wykładniczej nie może działać na wartościach ujemnych z wykładnikiem ułamkowym. Zasadniczo dowolna wartośćs < 15
powoduje, że zwracaNaN
, więc-1-~
istnieje rzutowanie na liczbę (0
).Rozwiązanie ES6 (42 bajty)
Test
W tym teście zastosowano
Math.pow
zamiast tego wykładniczy operator (**
), dzięki czemu można go uruchomić w dowolnej standardowej przeglądarce.Pokaż fragment kodu
źródło
|t
zamiast&&t
. Operacja ECMAScriptToInt32
zawsze będzie wymuszać wynikmap
tutaj0
, ponieważ tabliceToNumber
wieloelementowe zawsze to potwierdząNaN
. (Byłby to problem, gdyby specyfikacja dopuszczała tablice jednoelementowe jako dane wejściowe, ale wymaga 6 elementów.)CJam, 18 bajtów
lub
Sprawdź to tutaj.
Wyjaśnienie
Chodzi o rozkład kosztu punktowego na trzy elementy:
Wszystkie trzy składniki można obliczyć za pomocą pojedynczego odjęcia i ograniczenia wyniku do wartości nieujemnych.
źródło
Pyth, 14 bajtów
Zestaw testowy
Wykorzystuje to te same podstawowe metody obliczeń, co Martin Büttner, a mianowicie:
Biorąc to pod uwagę, sposoby obliczania są bardzo różne. Aby wygenerować listę liczb do odjęcia, używam wyrażenia
+14yB8
.yB8
oznacza „Bifurcate 8 w funkcji y”. y podwaja liczby, więc daje to[8, 16]
. Następnie dodajemy 14, podając listę[14, 8, 16]
.Następnie bierzemy iloczyn kartezjański z danymi wejściowymi i odejmujemy każdą parę wartości.
Następnie wykonaj operację maksymalizacji, po prostu filtrujemy tylko wartości dodatnie i sumujemy resztę.
źródło
Samau , 19 bajtów
Nie jestem pewien, czy pytanie zostało opublikowane po ostatnim zatwierdzeniu mojego nowego języka. Oboje są 2 godziny temu. Ale wszystkie funkcje tutaj użyte zostały dodane wcześniej.
Samau używa CP737 jako domyślnego kodowania znaków.
źródło
PowerShell, 48 bajtów
(Jestem pewien, że nie jest to optymalne.)
Pobiera wejściowe argumenty wiersza poleceń i łączy je w pętlę
|%{...}
. Przy każdej iteracji zwiększamy naszą sumę$t+=
o bieżącą liczbę minus 8$_-8
plus wynik indeksowania do tablicy mieszającej dla droższych wartości@{...}[$_]
. Następnie po prostu generujemy$t
na końcu.źródło
(🐂👍) Ox ++, 248 bajtów (62 znaki)
Język, nad którym pracuję. Wklej tutaj kod .
źródło