var QUESTION_ID=191101;
var OVERRIDE_USER=8478;
var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;function answersUrl(d){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+d+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(d,e){return"https://api.stackexchange.com/2.2/answers/"+e.join(";")+"/comments?page="+d+"&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(d){answers.push.apply(answers,d.items),answers_hash=[],answer_ids=[],d.items.forEach(function(e){e.comments=[];var f=+e.share_link.match(/\d+/);answer_ids.push(f),answers_hash[f]=e}),d.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(d){d.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),d.has_more?getComments():more_answers?getAnswers():process()}})}getAnswers();var SCORE_REG=function(){var d=String.raw`h\d`,e=String.raw`\-?\d+\.?\d*`,f=String.raw`[^\n<>]*`,g=String.raw`<s>${f}</s>|<strike>${f}</strike>|<del>${f}</del>`,h=String.raw`[^\n\d<>]*`,j=String.raw`<[^\n<>]+>`;return new RegExp(String.raw`<${d}>`+String.raw`\s*([^\n,]*[^\s,]),.*?`+String.raw`(${e})`+String.raw`(?=`+String.raw`${h}`+String.raw`(?:(?:${g}|${j})${h})*`+String.raw`</${d}>`+String.raw`)`)}(),OVERRIDE_REG=/^Override\s*header:\s*/i;function getAuthorName(d){return d.owner.display_name}function process(){var d=[];answers.forEach(function(n){var o=n.body;n.comments.forEach(function(q){OVERRIDE_REG.test(q.body)&&(o="<h1>"+q.body.replace(OVERRIDE_REG,"")+"</h1>")});var p=o.match(SCORE_REG);p&&d.push({user:getAuthorName(n),size:+p[2],language:p[1],link:n.share_link})}),d.sort(function(n,o){var p=n.size,q=o.size;return p-q});var e={},f=1,g=null,h=1;d.forEach(function(n){n.size!=g&&(h=f),g=n.size,++f;var o=jQuery("#answer-template").html();o=o.replace("{{PLACE}}",h+".").replace("{{NAME}}",n.user).replace("{{LANGUAGE}}",n.language).replace("{{SIZE}}",n.size).replace("{{LINK}}",n.link),o=jQuery(o),jQuery("#answers").append(o);var p=n.language;p=jQuery("<i>"+n.language+"</i>").text().toLowerCase(),e[p]=e[p]||{lang:n.language,user:n.user,size:n.size,link:n.link,uniq:p}});var j=[];for(var k in e)e.hasOwnProperty(k)&&j.push(e[k]);j.sort(function(n,o){return n.uniq>o.uniq?1:n.uniq<o.uniq?-1:0});for(var l=0;l<j.length;++l){var m=jQuery("#language-template").html(),k=j[l];m=m.replace("{{LANGUAGE}}",k.lang).replace("{{NAME}}",k.user).replace("{{SIZE}}",k.size).replace("{{LINK}}",k.link),m=jQuery(m),jQuery("#languages").append(m)}}
body{text-align:left!important}#answer-list{padding:10px;float:left}#language-list{padding:10px;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="https://cdn.sstatic.net/Sites/codegolf/primary.css?v=f52df912b654"> <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><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><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody> </table>
b/0 = b
, se eu dividir as duas partes atéb
então1/0 = 1
. Preciso dec
-números para dividir assim?b/b = 0
quando normalmente (e tenho certeza de que é facilmente comprovado por todos os vários axiomas) esperado 1 (caso contrário, o inverso multiplicativo de b parece não ser o inverso multiplicativo). Tenho certeza que você simplesmente não pode brigar contra a divisão por zero adicionandob=1/0
ou algo parecido.0b
e não0
? Se as duas expressões são equivalentes então a questão não teria nenhuma premissa3.1b/0
Respostas:
Malbolge Unshackled (variante de rotação de 20 trit), 3,62e6 bytes
O tamanho desta resposta excede o tamanho máximo do programa postável (eh); portanto, o código está localizado no meu repositório GitHub (nota: não copie o código usando CTRL + A e CTRL + C, basta clicar com o botão direito e clicar em "Salvar elemento de destino como. .. ").
Como executar isso?
Isso pode ser uma parte complicada, porque o intérprete ingênuo de Haskell levará anos e mais anos para executar isso. O TIO possui um intérprete decente do Malbogle Unshackled, mas, infelizmente, não poderei usá-lo (limitações).
O melhor que eu pude encontrar é a variante fixa de largura de rotação de 20 trit, que executa muito bem, calculando (praticamente) instantaneamente .
Para tornar o intérprete um pouco mais rápido, removi todas as verificações do intérprete Malbolge Unshackled de Matthias Lutter.
Está funcionando!
fonte
PHP ,
65646158 bytes-1 byte usando um em
b
vez de''
(string vazia). Como "b" s são cortados, será o mesmo que uma string vazia neste caso específico.-3 bytes usando em
substr
vez deexplode
para obter a primeira parte da entrada.-3 bytes usando métodos melhores para detectar
1
e-1
.Experimente online!
Testes: Experimente online!
Se a primeira parte da entrada antes de "/" (como chamamos
$n
) for 0, imprime 0.$n
Caso contrário, imprime- se com qualquer "b" no final aparado e casos especiais de -1 e 1 manipulados, para que o dígito "1" não seja impresso. E no final acrescenta um único "b". A parte de corte é garantir que não recebamos um "b" duplo no final, como "3bb".fonte
$n==-1
por$n>0
(-2 bytes) parece funcionar. Você poderia tentar isso.$n<0
, também não funcionará, já que temos entradas como-8/0
.$n==-1?'-':$n
por$n+1?$n:'-'
para economizar 2 bytes!Geléia , 19 bytes
Experimente online!
Programa completo.
fonte
Gelatina , 18 bytes
Acabei roubando o Erik
ṾṖ$İƑ¡
para este (caso contrário, eu também teria 19) ...Um programa completo que imprime o resultado.
Experimente online! Ou veja a suíte de testes .
Quão?
fonte
v
...: DPerl 6 , 32 bytes
Experimente online!
Um par de expressões regulares, um para verificar se a entrada for
0/0
, e o outro para substituir o arrasto/0
com apenasb
(e para remover a idadeb
,1
e / ou-1
)Explicação (antiga)
fonte
Retina ,
2824 bytesExperimente online!
Primeiro tente usar o Retina, para que haja provavelmente um espaço considerável para jogar golfe.
fonte
\b
faz (eu sou que inexperientes com regex), eu estava um pouco desapontado ao descobrir que ele não pode ser encurtado para o personagem backspace impublicável. De qualquer forma, obrigado\b
é apenas uma representação ASCII do caractere backspace em strings normais: PPython 3 , 68 bytes
Experimente online!
fonte
import re
surge a bytecount a 64.Barril , 18B
Todo o crédito é para Jono 2906.
Explicação
TIO!
fonte
Wolfram Language (Mathematica) , 37 bytes
Experimente online!
Leva uma lista de caracteres como entrada.
fonte
JavaScript (ES6), 45 bytes
Experimente online!
Comentado
fonte
C,
209203137bytes-66 bytes graças ao ceilingcat
TIO
fonte
Brainfuck, 25 bytes
Explicação
fonte
b/0
esperadob
, tenhobb
;0/0
esperado0
, tenho0b
;-1/0
esperado-b
, entendi-1b
./0
parab
e não leva em consideração qualquer dos casos, para0b
,1b
,-1b
ou quaisquer entradas que já contêm umab