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>
Ответы:
Pyth,
2322 байтаЗапускает 10000 итераций. Число может быть изменено без стоимости байта. Ввод разделен новой строкой. Занимает около 9 секунд на моем компьютере.
демонстрация
источник
MATL , 44
46байтовПри этом используется версия 3.1.0 языка, которая является более ранней, чем эта проблема.
Вычисление выполняется с помощью цикла, который рисует 1000 случайных реализаций. Это займет пару секунд, чтобы бежать. Это может быть сделано быстрее в векторизованном виде. Вход имеет форму
[N M]
.Старая версия : генерирует случайную колоду карт и проверяет ее дважды: сначала в прямом, а затем в обратном направлении.
Новая версия : генерирует случайную колоду карт, а затем добавляет перевернутую версию с
0
промежуточным символом. Таким образом, проверка может быть выполнена только один раз в прямом направлении. Это экономит два байта.пример
объяснение
источник
LabVIEW, 58 примитивов LabVIEW
Создает массивы карт, затем перетасовывает их. Найдите 1с, затем проверьте соседние карты на 2с.
источник
Pyth, 16 байт
Демонстрация.
Это следует за
стратегия программирования. Победное обоснованное предположение в этом случае
что примерно говорит о том, что есть
N
шансы попасть в ведра, а доля действительных ведер есть2 / M
. Ведра, являющиеся слотами, располагаются рядом с0
s, а шансы -1
s.Кажется, что ошибка никогда не превышает 3% (на удивление), и, похоже, сходится к 0%, когда параметры становятся больше (как я и ожидал).
Ввод разделен новой строкой.
Вы можете сохранить персонажа, если вы примете очевидный факт
False == 0
, и сделайтеJE&>J1-1^-1c2JQ
вместо этого.источник
MATL ,
4438 байтПри этом также используется версия MATL 3.1.0 , которая является более ранней, чем эта задача.
Новая версия, спасибо Луису Мендо за сохранение 4 байта!
Старая версия (44 байта):
объяснение
Например,
Примечание (21/5/16): Начиная с выпуска MATL 18.0.0,
X+
оно было удалено, ноY+
может использоваться вместо него. Изменения с версии MATL 3.1.0 до 18.0.0 означают, что этот ответ теперь может быть записан всего 31 байтом*xO1e4:"2:Gtb*Z@w\TT2&Y+1=ah]Ym
.источник
[1 1]
вTTo
. Кроме того, вам не нужна запятаяMathematica,
939291 байтВсе еще ищу закрытую форму ...
источник