Escreva um código para determinar a resposta aceita

14

Poste uma resposta a esta pergunta que avalie qualquer resposta a ela e determine se ela vence.

Quem ganha:

  • O vencedor é a resposta que vence de acordo com o maior número de respostas às 1700 UTC, domingo, 2 de março.
  • Você é bem-vindo e incentivado a alterar sua própria resposta à medida que o concurso avança. Por favor, não mude os outros.
  • Os laços são determinados pelo código mais curto.
  • Independentemente de quanto sockpuppeting você possa fazer normalmente, se algo é suspeito, eu vou desqualificá-lo.
  • Não aceitarei minha própria resposta, mas a usarei para avaliar a sua.

Regras:

  • Seu cálculo deve fornecer uma pontuação numérica para qualquer resposta arbitrária (para facilitar, a entrada no seu algoritmo é o ID da resposta ou a marcação da resposta na página).
  • Sua pontuação deve ter pelo menos um vencedor e deve ser possível obter uma resposta além da sua.
  • Seu algoritmo não pode usar algo muito específico para sua resposta, nem nome de usuário ou registro de data e hora. Serei o juiz final do que significa "muito específico", mas encorajo o policiamento comunitário e a vergonha pública.
  • Seu código deve compilar, executar e fornecer uma pontuação dada qualquer resposta.
  • Inclua um link para executar seu código, se ele não estiver listado no Ideone . Ver abaixo.

Idiomas ideone

Não que Charles
fonte
1
Algum motivo especial para a restrição "Por favor, contribua apenas com uma resposta"? Se eu desenvolver dois algoritmos muito diferentes com dois critérios muito diferentes, não posso postar os dois?
Victor Stafusa
@ Victor Acho que você está certo. Posso cumprir essa regra, mas vou desligar o pessoal por empilhar o baralho.
Não que Charles
O vencedor deve determinar corretamente que ele próprio é o vencedor? Ou seja, se as respostas A, B e C dizem que D é o vencedor, mas D diz que A é o vencedor, D é o vencedor mesmo que seja uma resposta errada?
Victor Stafusa
@ Victor O vencedor não precisa estar correto. Isso seria muito difícil.
Não que Charles
Desde quando o Ideone permite acesso à rede?
nyuszika7h

Respostas:

6

R, 1 caracter

1

Você pode fornecer o ID de uma resposta como um argumento de linha de comando, se desejar. :) Link para ideone.

Elaboração adicional

Como não é prático para uma resposta executar outras respostas (idiomas diferentes, etc.) e avaliá-las com base em seus resultados, a única maneira que eu posso ver para eles darem uma pontuação é usar alguma métrica de código.

Percebi que todas as outras respostas até agora atribuem uma pontuação mais alta a programas mais curtos. Eu acredito que este é o código mais curto possível, por isso deve ter uma classificação alta no resultado de outras respostas.

Como e qual resposta meu código fornece para outras respostas parece menos relevante. O único aspecto importante é que outros colocam minha resposta em alta.

Andris
fonte
Por favor elabore.
rahulroy9202
1
@ rahulroy9202 Resposta atualizada com o meu raciocínio.
Andris
2
: D bom ponto. Suas suposições são lógicas. A menos que alguém descubra uma maneira de imprimir 1 sem nenhum código. : D
rahulroy9202
@ rahulroy9202 Acho que não é possível postar um bloco de código em branco, mesmo que isso seja possível em um idioma, você não pode postar o "código" aqui. : D
Andris
tente <code> </code> dentro da resposta e meu código a lerá como resposta de 0 caracteres. : D
rahulroy9202
3

R, 1 caracter

0

Seguindo a resposta de @ Andris, agora existem dois códigos com um único caractere: o de Andris e o meu. Uma vez que amarramos os olhos das outras respostas, nenhum de nós "venceu" completamente, então minha resposta não "vence". :-)

jvriesem
fonte
2

Rubi, 368 caracteres

require 'json'
require 'open-uri'
v='body';w="#{v}_markdown";s='comments'
x=if(d=JSON.parse(open("http://api.stackexchange.com/2.2/answers/#{ARGV[0]}?site=codegolf&filter=!%29r%28UkmOhmCPjXru-TDty").read)['items'][0]).include?(s) then d[s].map{|c|c[w].length*[1,c[w].index('`')||1,c[w].index('\n')||1].max}.reduce(:+) else -2 end
puts d['score']*150+5*(d[v].match(/<(..).*?\1.*?\1/m))[0].ord+x-$~.end(0)

Boa sorte!

Não que Charles
fonte
2

JavaScript- 190 char

Suposição: O primeiro bloco de código é a resposta.

var ans=$('.answer'),s=999,sa;
for(i=0;i<ans.length;i++){
    var x =  ans[i].getElementsByTagName('code');   
    var z = x[0].innerHTML.replace(/\s/g,'').length;
    if(s>z){
        s=z;
        sa=ans[i];
        }    
}
console.log(sa);

Pode ser testado no console do navegador. Pressupõe que a resposta mais curta seja a resposta correta.

Como executar - No Chrome / Firefox, abra o console enquanto estiver nesta página, cole o código e execute.

rahulroy9202
fonte
Ele também funciona no console IE 11 :)
ComFreek