Escribir código para determinar la respuesta aceptada

14

Publique una respuesta a esta pregunta que evalúe cualquier respuesta a esta pregunta y determine si gana.

Quién gana:

  • El ganador es la respuesta que gana según la mayoría de las respuestas a las 1700 UTC, el domingo 2 de marzo.
  • Lo invitamos y lo alentamos a cambiar su propia respuesta a medida que avanza el concurso. Por favor, no cambies a los demás.
  • Los lazos están determinados por el código más corto.
  • Independientemente de la cantidad de calcetines que normalmente hagas, si algo es sospechoso, te descalificaré.
  • No aceptaré mi propia respuesta, pero la usaré para evaluar la suya.

Reglas:

  • Su cálculo debe proporcionar un puntaje numérico para cualquier respuesta arbitraria (para facilitarlo, la entrada a su algoritmo es la identificación de la respuesta o la reducción de la respuesta en la página).
  • Su puntaje debe tener al menos un ganador, y debe ser posible que gane una respuesta además de la suya.
  • Su algoritmo no puede usar algo muy específico para su respuesta, ni puede usar el nombre de usuario o las marcas de tiempo. Seré el juez final de lo que significa "muy específico", pero aliento la vigilancia comunitaria y la vergüenza pública.
  • Su código debe compilar, ejecutar y dar una puntuación dada cualquier respuesta.
  • Incluya un enlace a una forma de ejecutar su código si no figura en Ideone . Vea abajo.

Idiomas ideone

No es que Charles
fuente
1
¿Alguna razón especial para la restricción "Por favor solo contribuya con una respuesta"? Si desarrollo dos algoritmos muy diferentes con dos criterios muy diferentes, ¿no puedo publicar ambos?
Victor Stafusa
@Victor, supongo que tienes razón. Puedo relajarme con esa regla, pero cerraré a la gente por apilar la baraja.
No es que Charles
¿Debería el ganador determinar correctamente que es él mismo el ganador? IE, si las respuestas A, B y C dicen que D es el ganador, pero D dice que A es el ganador, ¿es D el ganador incluso si es una respuesta incorrecta?
Victor Stafusa
@Victor El ganador no tiene que ser correcto. Eso sería demasiado difícil.
No es que Charles
¿Desde cuándo Ideone permite el acceso a la red?
nyuszika7h

Respuestas:

6

R, 1 char

1

Puede proporcionar el id de una respuesta como argumento de línea de comando si lo desea. :) Enlace a ideone.

Elaboración adicional

Dado que no es práctico que una respuesta ejecute otras respuestas (diferentes idiomas, etc.) y las evalúe en función de su resultado, la única forma que les queda para que den una puntuación es usar alguna métrica de código.

He notado que todas las otras respuestas hasta ahora dan una puntuación más alta a los programas más cortos. Creo que este es el código más corto posible, por lo que debería tener una clasificación alta en el resultado de otras respuestas.

Cómo y qué respuesta da mi código para que otras respuestas sean menos relevantes. El único aspecto importante es que otros califican mi respuesta como alta.

Andris
fuente
Por favor elabora.
rahulroy9202
1
@ rahulroy9202 Respuesta actualizada con mi razonamiento.
Andris
2
: D buen punto. Tus suposiciones son lógicas. A menos que alguien descubra una forma de imprimir 1 sin ningún código. : D
rahulroy9202
@ rahulroy9202 Creo que no es posible publicar un bloque de código en blanco, por lo que incluso si esto es posible en un idioma, no podría publicar el "código" aquí. : D
Andris
pruebe <code> </code> dentro de la respuesta y mi código lo leerá como 0 char answer. : D
rahulroy9202
3

R, 1 char

0

Siguiendo la respuesta de @ Andris, ahora hay dos códigos que tienen un solo personaje: el de Andris y el mío. Dado que nos enfrentamos a los ojos de las otras respuestas, ninguno de nosotros ha "ganado" directamente, por lo que mi respuesta no "ganará". :-)

jvriesem
fuente
2

Ruby, 368 char

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)

¡Buena suerte!

No es que Charles
fuente
2

JavaScript- 190 char

Asunción: El primer bloque de código es la respuesta.

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);

Se puede probar en la consola del navegador. Se supone que la respuesta más corta es la respuesta correcta.

Cómo ejecutar: en Chrome / Firefox, abra la consola mientras está en esta página y pegue el código y ejecute.

rahulroy9202
fuente
También funciona en la consola IE 11 :)
ComFreek