var QUESTION_ID=67431,OVERRIDE_USER=31729;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:
Pyth,
2322 byteMenjalankan 10000 iterasi. Jumlahnya dapat diubah tanpa biaya byte. Input dipisahkan baris baru. Membutuhkan waktu sekitar 9 detik di komputer saya.
Demonstrasi
sumber
MATL , 44
46byteIni menggunakan rilis 3.1.0 bahasa, yang lebih awal dari tantangan ini.
Perhitungan dilakukan dengan loop yang menarik 1000 realisasi acak. Butuh beberapa detik untuk menjalankannya. Itu bisa dilakukan lebih cepat dengan cara vektor. Input berupa formulir
[N M]
.Versi lama : menghasilkan setumpuk kartu acak dan memeriksanya dua kali: pertama di depan dan kemudian di belakang.
Versi baru : menghasilkan setumpuk kartu acak dan kemudian menambahkan versi membaliknya dengan
0
di antaranya. Dengan begitu pengecekan bisa dilakukan hanya sekali, ke arah depan. Ini menghemat dua byte.Contoh
Penjelasan
sumber
LabVIEW, 58 LabVIEW Primitif
susunan kartu creats kemudian mengocoknya. Cari 1s kemudian periksa kartu yang berdekatan untuk 2s.
sumber
Pyth, 16 byte
Demonstrasi.
Ini mengikuti
strategi pemrograman. Tebakan berpendidikan menang dalam hal ini adalah
yang secara kasar mengatakan bahwa ada
N
peluang untuk jatuh ke ember, dan sebagian kecil dari ember yang valid adalah2 / M
. Bucket yang menjadi slot ditempatkan di sebelah0
s, dan kemungkinan menjadi1
s.Kesalahan tampaknya tidak pernah naik di atas 3% (mengejutkan), dan tampaknya konvergen ke 0% ketika parameter semakin besar (seperti yang saya harapkan).
Input dipisahkan baris baru.
Anda dapat menyimpan karakter jika Anda menerima fakta yang jelas-jelas jelas itu
False == 0
, dan lakukanJE&>J1-1^-1c2JQ
sebaliknya.sumber
MATL ,
4438 byteIni juga menggunakan MATL versi 3.1.0 , yang lebih awal dari tantangan ini.
Versi baru, terima kasih kepada Luis Mendo karena telah menghemat 4 byte!
Versi lama (44 byte):
Penjelasan
Sebagai contoh,
Catatan (21/5/16): Pada rilis MATL 18.0.0,
X+
telah dihapus, tetapiY+
dapat digunakan sebagai gantinya. Perubahan dari MATL versi 3.1.0 ke 18.0.0 berarti bahwa jawaban ini sekarang dapat ditulis hanya dalam 31 byte*xO1e4:"2:Gtb*Z@w\TT2&Y+1=ah]Ym
,.sumber
[1 1]
menjadiTTo
. Selain itu, Anda tidak memerlukan komaMathematica,
939291 byteMasih mencari formulir tertutup ...
sumber