-FINADO- Haz algo que se parece a otra cosa [cerrado]


78

Escriba un fragmento, una función, un programa, ... que se ofusque de una manera que a primera vista parezca claro que hace otra cosa.

Por ejemplo: escriba un poco de código que agregue dos números, pero cuando le pregunte a alguien "¿qué hace?", Él le dirá que imprime "¡Hola, Mundo!".

Reglas

  • El código debe ser legible para alguien que conozca aproximadamente el idioma que usa (evite el lenguaje intrínseco ofuscado como APL, en su propio interés).
  • El código debe hacer algo inesperado que el lector inicialmente no pudo predecir.
  • Cuando le preguntas a diferentes lectores, deben tener la misma opinión (incorrecta) sobre lo que hace el código.

Clasificación

  • Lea los códigos de otros concursantes durante un máximo de 10-20 segundos, solo para tener una buena idea de lo que sucede allí.
  • Agregue un comentario a la respuesta que diga qué cree que hace el código. Si la respuesta que desea dar ya está allí, simplemente haga +1 en el comentario. (si pierde esa respuesta y agrega otro comentario, no se preocupe, no se contará como otra respuesta).
  • Los puntos se perderán de esta manera: ( maxFalseOpinion- goodGuess) / totalOpinion(ver ejemplo a continuación).
  • Califique a otros concursantes con juego limpio y no comente su propio código.
  • Solo agregue comentarios útiles. Evite "No sé" y "¡bueno!", No se tienen en cuenta para la calificación, pero es el código y no las calificaciones las que deben ofuscarse.

Ejemplo de calificación

El fragmento agrega dos números. Los comentarios dicen:

(3) Muestra "¡Hola, mundo!"
(1) Resta 2 números.
(2) Agrega 2 números.

La cantidad total de puntos es la cantidad máxima de opiniones (3): la cantidad de buenas conjeturas (2) dividida por la cantidad total de conjeturas (3 + 1 + 2 = 6). Resultado: (3 - 2) / 6 = 1/6 = 16.67% .


MÁS SOBRE PUNTOS

La gente parece tener algunos problemas para descubrir los puntos.

Aquí hay una puntuación perfecta:

printf('Hello World');

comentarios:
muestra la cantidad de veces que ha hecho clic en un botón. (17 comentarios).
TOTAL: 17 comentarios

Puntuación: (17-0) / 17 = 1 = 100%

Aquí hay una puntuación pobre:

printf('Hello World');

comentarios:
Imprime "Hello World". (13 comentarios).
TOTAL: 13 comentarios

Puntuación: (0-13) / 13 = -1 = -100%

Aquí hay un puntaje no tan malo:

printf('Hello World');

comentarios:
imprime el nombre de usuario. (2 comentarios)
Muestra la hora actual (15 comentarios).
Devuelve lo que ingresó sin modificación. (3 comentarios).
Imprime "Hola Mundo" (1 comentario).
TOTAL: 21 comentarios

Puntuación: (15 - 1) / 21 = 0.6667 = 66.67%
Explicación:
15 es la suposición principal, lo que la gente dijo más. 1 es el número correcto de conjeturas. 21 es la suma de todos los comentarios.


55
Posibles ideas para los concursantes (especialmente los que escriben C) se pueden encontrar en underhanded.xcott.com
Shiona

3
Tengo la sensación de que las personas serían reacias a comentar si no ven el truco (porque obviamente terminarían mal). Esto modificaría fuertemente los resultados.
ugoren

2
@Haidro, diría que si conoces un poco el idioma y pareces entender lo que hace el programa, entonces comenta. Si no puede entenderlo (por ejemplo, no puedo entender la respuesta de slackwear ), no lo haga.
ugoren

2
¿Cuándo termina el desafío?
WolframH

44
Creo que debería requerir un número mínimo de conjeturas para un ganador: diría que 10. Una respuesta incorrecta de 1 no es muy impresionante, pero es 100%.
ugoren

Respuestas:


79

Javascript

var а;
a = 1;
а++;
alert( a );

Respuesta: sale 1. Los comentarios a continuación lo explican bastante bien: hay dos variables diferentes aquí, una - 'LETRA A LETINA PEQUEÑA A' y '- LETRA A PEQUEÑA CÍRILICA A' .

Hubo 1 respuesta correcta, 50 personas pensaron que da como resultado 2, y con un total de 52 respuestas, el puntaje es (50 - 1) / 52 = 49/52 = 94,23%


57
Salidas 2o al menos eso es lo que espero :)
Alexander

8
Este es el fragmento de JS más astuto que he visto hasta ahora. Bien jugado.
Peter Majeed

1
Para aquellos que no lo entienden (spoilers más adelante): enlace
BlueRaja - Danny Pflughoeft

3
@soandos: (OTRA VEZ, SPOILERS): La variable utilizada en la primera y tercera líneas es diferente de la de la segunda y cuarta. Uno usa a (U + 0061) mientras que el otro usa а (U + 0430). Ver también .
BlueRaja - Danny Pflughoeft

55
Un amigo mío pensó que esto era bastante divertido y se inspiró para escribir este github.com/johnhaggkvist/WATifyJS - Tenía muy poco representante para comentar, así que lo estoy haciendo por él ^ _ ^
Henrik Andersson

32

C, puntaje 33.3%

#include <stdio.h>
int main(int ac, char **av) {
        const char *arg = av[1];
        #define valid_ch(ch) (ch!='&' && ch!='\\')  // All valid except & and \
        while (*arg)
        {
                if (valid_ch(*arg)) putchar(*arg);
                arg++;
        }
        puts("");
        return 0;
}

correr ./prog 'Hello & goodbye, world!'

Puntuación

La respuesta correcta es H\n( whilees parte del comentario, gracias a la línea que termina con \, por lo que no hay bucle), dada por 6 personas.
El error más popular fue Hello goodbye, world\n, dado por 25 personas.
(25 - 6) / 57 = 33,3%.
Gracias a Olivier Dulac por molestarse en calcular.


24
Imprime "¡Hola adiós, mundo! \ N" ...
Vi.

55
Es un bucle sin fin.

55
Solo imprime el primer carácter en el argumento y una nueva línea. Entonces se imprime H\n.
marinus

77
Impresiones: Hello goodbye, world!(no \ n) (2 espacios después de Hello)
Olivier Dulac

66
produce un SEGFAULT.
pascalhein

27

Pitón

a = []
for i in range(10):
    a.append(i * ++i)
for a[i] in a: 
    print(a[i])

Clasificación

  1. Buena respuesta: impresiones 0 1 4 9 16 25 36 49 64 64, cada número en una línea.

  2. Explicación: a pesar de que nadie obtuvo la respuesta correcta, considero que esto fue un intento fallido, porque nadie cometió el error que había pretendido. (Agregaré una explicación real más adelante si nadie más lo hace).

  3. Número de buenas respuestas: 0

  4. Número de personas con la misma respuesta incorrecta: 7

  5. Número total de respuestas: 11

  6. Puntuación: 63,64% (redondeado a dos decimales)

Explicación

Primero, ase crea una lista y se llena con valores i * ++i. No hay ningún ++operador en Python, pero hay un +operador unario , que no hace nada para los enteros, y aplicarlo dos veces aún no hace nada. Entonces acontiene los cuadrados de los enteros de 0a 9.

Lo había puesto ++como una distracción y esperaba que la mayoría de los votantes continuara, pensando que habían encontrado la trampa y caían en la trampa real. No funcionó. Algunos pensaron que ++se trataba de un error de sintaxis, y otros aún buscaron la trampa.

La trampa La trampa estaba en el segundo bucle for:

for a[i] in a: 
    print(a[i])

Estaba seguro de que la mayoría de la gente pensaría que esto imprime todo a[i], es decir 0 1 4 9 16 25 36 49 64 81, cada número en una línea. Eso es lo que obtienes con esta variaton, por ejemplo:

for x in a: 
    print(x)

xse le asignan los valores ay luego xse imprime. En la primera versión, a[i]se le asignan los valores a, y luego a[i]se imprime. La diferencia es que en nuestro caso lo tenemos i == 9, y por lo tanto el valor de a[9]se cambia cada vez a través del ciclo. Cuando finalmente a[9]se imprime, tiene el valor de a[8]y, por lo tanto, 64se imprime nuevamente.


3
Error de sintaxis (no ++en Python).
ugoren

55
SyntaxErroren el segundo for.
Bakuriu

Imprime 81diez veces
Michael0x2a

SyntaxErroren el segundo for. Esto es increíble. Esto realmente debería ganar. Me tomó 5 minutos entender lo que estaba pasando jaja.
rubik

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Edite su contenido y agregue la buena respuesta, la cantidad de buenas respuestas, la cantidad de personas que respondieron en su mayoría a la misma cosa, la cantidad total de respuestas y su puntaje . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

26

JavaScript , puntuación de -100%

No inventé esto, Gary Bernhardt sí, pero es uno de mis favoritos

alert(Array(16).join("wat?" - 1)+", BATMAN!")

37
Salidas NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN, BATMAN! :)
codefreak

1
Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

Parece que ese video es bastante famoso ...
Bakuriu

3
¿Es esto -100%? ...
Alvin Wong

Por supuesto. El batman lo regala.
mplungjan

14

Python, -54.8%

Respuesta: plantea SyntaxError: not a chance

from __future__ import braces

if (input() > 0) {
print 'You entered a positive number';
}
else {
print 'You didn\'t enter a positive number';
}
  • Buenas conjeturas: 24
  • Las mismas malas conjeturas: 7
  • Total de conjeturas: 31

Explicación:

from __future__ import braceses uno de los huevos de pascua en Python. Se entiende como una broma, diciendo que Python nunca usará llaves para determinar el alcance en el futuro.


66
Comprueba si el resultado de una expresión proporcionada por el usuario está firmado.
Felix Dombek

1
Sospecho que hay bastantes errores. Los programadores de Python son tercos;)
grc

12
Este es un error de sintaxis!
Dhara

11
SyntaxError: not a chance
Bakuriu el

2
@BoppreH Por favor, limítese a decir el resultado sin ningún tipo de explicación explícita o vote el comentario que ya indica que el resultado cree que es correcto. Otro tipo de comentarios solo arruina la diversión para los siguientes lectores.
Bakuriu

14

Perl, 26.67%

Resultados:

Esto imprime "Soy ambivalente acerca de decir cualquier cosa".

my $num1,$num2 = @_;le faltan paréntesis. Por lo tanto, es equivalente a my $num1; $num2 = @_;. $num1no se pone a nada.

Por $num1lo tanto, nunca es mayor que cero. La parte sobre el mundo secreto de los peces escondido en la pantalla es, err, un arenque rojo, para que la gente piense que ha encontrado el "truco".

Además, el operador ternario es un valor l en Perl: en 1 ? $a = 1 : $b = 2realidad significa (1 ? $a = 1 : $b) = 2. Lo que ($a = 1) = 2se evalúa significa establecer $aen 2. Contrariamente a las apariencias, se asigna la segunda cadena $num1.

En caso de que se lo pregunte, //es el operador definido u. Si el sub devuelve un valor indefinido, la cadena "Stuff did not happen."se imprimirá. Pero en realidad no sucede. Fue solo para dar a la gente otra opción.

Puntuación:

Total correcto: 5

Total de conjeturas: 30

Puntuación: (13-5) / 30 = 26.67%

no warnings;
no strict;
no feature;
no 5.16;
no Carp;

sub do_mysterious_stuff
{
    my $num1,$num2 = @_;               

    if ($num1 > 0)
    {                                                                                                                  eval q; $num1="This is a secret fish world. Carp cannot be repressed!" or
       $num1 = "Hello, world!";
    }
    else
    {
        $num2 > 0 ? 
            $num1 = "What's up, world?": 
            $num2 = "I am ambivalent about saying anything at all.";
    }

    return $num1;
}

print do_mysterious_stuff(1,1) //"Stuff did not happen.";

2
Resulta, soy ambivalente sobre decir algo en absoluto.
marinus

10
Se imprime This is a secret fish world. Carp cannot be repressed!.
ugoren

13
Al no ser un gurú perl, esto debería imprimirse Hello, world!.
Alexander

2
Bueno, eso es todo chicos. Nunca volveré a tratar con Perl.
Sr. Llama

3
@ContextSwitch y @aidan, el operador ternario es un valor l en Perl. 1 ? $a = 1 : $b = 2en realidad significa (1 ? $a = 1 : $b) = 2. Lo que significa ($a = 1) = 2se evalúa, estableciendo $aen 2. Además, como señaló Primo, my $num1, $num2 = @_;no hace lo que espera porque faltan los paréntesis.

14

PHP 52%

  $arg = 'T';
  $vehicle = ( ( $arg == 'B' ) ? 'bus' :
               ( $arg == 'A' ) ? 'airplane' :
               ( $arg == 'T' ) ? 'train' :
               ( $arg == 'C' ) ? 'car' :
               ( $arg == 'H' ) ? 'horse' :
               'feet' );
  echo $vehicle;

(Copiado textualmente de aquí )

Explicación y puntaje

La respuesta correcta es caballo . Esto no es un truco o un juego de manos. Curiosamente, así es como se define el operador ternario en PHP.
3 eligieron la respuesta correcta: caballo ,
16 personas eligieron el tren que es correcto en literalmente cualquier otro idioma inventado, excepto PHP.
25 respuestas en total, dando una puntuación de (16 - 3) / 25 = 52%


55
pies
Wim

15
impresiones train.
SteeveDroz

3
grabados 'caballo'.
Jonathan


1
Y eso ... es por eso que casi siempre debes usar paréntesis para indicar el orden de las operaciones, incluso si crees que no las necesitas.
Ryan Amos el

12

C ++ 28.9%

#include <iostream>

using namespace std;

void print( void ) {
  static int times = 0;

  switch( times ) {
  case 0:
     cout << "Hello";
     break;
  case 1:
     cout << "World";
     break;
  default:
     cout << "Goodbye";
     break;
  }
  times++;
}

int main(int cout, char* argv[]) {

  print();
  cout << '\n';
  print();
}

Solución

El objetivo de este código es engañar al usuario para que piense que se imprimirá un carácter de nueva línea entre el texto "Hola" y "Mundo". Observe que el primer parámetro de main se llama cout. Dado que, en el ámbito de main, cout es un número entero, el operador << realmente realiza una operación de desplazamiento a la izquierda con un parámetro de '\ n', en lugar de imprimir una nueva línea. La función de impresión está allí principalmente para desviar la atención de los parámetros de entrada en main, pero también para permitir que std :: cout se use sin agregar el prefijo de espacio de nombres.

Puntuación

Cortesía de Alvin Wong.

  • Total 38 respuestas:
  • 12 pensamiento HelloWorld(considerando que minitech y zeel son lo mismo)
  • 23 pensó Hello\nworld 3 pensó otra cosa.
  • El puntaje es (23-12) / 38 = 28.9%

23
Imprime "Hola" en una línea y "Mundo" en la siguiente.
redtuna

2
Imprime "HelloWorld". Pone 1024 coutsi se llama sin parámetros.
Alexander

99
Impresiones HelloWorld.
Ry-

1
Imprime HelloWorld. Y realiza un desplazamiento a la izquierda un poco sabio en el entero "cout".
zeel

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

10

Rubí, 100%

display = lambda { puts "Hello, world!" }
display()

Respuesta correcta:

Imprime "principal" sin nueva línea. Explicación: en Ruby, no se puede llamar a una lambda utilizando la sintaxis de paréntesis normal. En cambio, display () se interpreta como el método incorporado que todos los objetos tienen: o.display imprime o.to_s en la salida estándar. Los métodos llamados sin un objeto se interpretan como métodos de "main", un Objeto que incluye el módulo Kernel.

Puntuación: 3 de la misma respuesta incorrecta, no hay otras respuestas.


3
Imprime "¡Hola, mundo!"
3Doubloons

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

8

Python, -28.13%

x = 0
while x < 10:
    if (x%2)==0: x += 2
else: x += 1

print x

Esto se imprime 11porque el elsebloque, que pertenece al while, se ejecuta después de salir del bucle.

  • Número máximo de conjeturas falsas: 8
  • Conjeturas correctas: 17
  • Total de conjeturas: 8 + 17 + 7 = 32

Puntuación: (8-17) / 32 = -28.13%


77
Falla por falta de sangría enelse:
Alexander

16
Imprime 11en una línea.
Bakuriu el

66
Esto imprime 10.
copia el

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

8

Python: Calificación: -27%

name = "Robin"
seek = "Seek and find holy grail"
favorite_color = "blue"

from os import *

print "What is your name: %s" % name
print "What is your quest: %s" % seek
print "What is your favorite color: %s" % favorite_color

El programa imprime:

What is your name: <value of os.name> 
What is your quest: Seek and find holy grail
What is your favorite color: blue

Valoración: Total de opiniones: 22 12 correcto 3 + 1 + 6 incorrecto [para la respuesta de Bakuiru, diría que estaba cerca pero aún así incorrecto ya que os.name es una cadena (os.uname es una función)]

Calificación basada en esa suposición y mi comprensión del sistema de calificación: Máximo incorrecto = 6 Correcto = 12 Puntuación = (6-12) / 22 = -27%


11
Grabados What is your name: [operating system name], What is your quest: Seek and find the holy grail, What is your favourite color: blueen líneas separadas. Obviamente [operating system name]se reemplaza por el nombre real.
Volatilidad

3
Muestra la última línea 3 con los valores name = "Robin", seek = "Seek and find holy grail"y favorite_color = "red", oh, no. blue! (AAARRGGGHHH!)
SteeveDroz

55
Imprime algo como What is your name: <function os.name at 0x....>etc.
Bakuriu

Salidas What is your name: Robin, What is your quest: Seek and find holy graily What is your favorite color: blueen líneas separadas.
Rory O'Kane

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

7

Pitón

import sys

class TwoPlusTwoIsFive(object):
  def __bool__(self):
    if 2 + 2 == 5:
      return True
    else:
      return False

two_plus_two_is_five = TwoPlusTwoIsFive()

if two_plus_two_is_five:
  print('{} is company'.format(sys.version[0]))
else:
  print('{} is a crowd'.format(sys.version[0]))

editar:

puntaje (8-1) / 9 == 77.7%

la salida correcta es '2 is company' en python 2, '3 is a crowd' en python 3.


77
2 is a crowd(en Python 2, 3 en Python 3).
ugoren

2 is company(en Python 2) o 3 is a crowd(en Python 3).
WolframH

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

55
¡Maldito cambio de método especial! :)
Bakuriu

7

JavaScript, -46.7%

var getResult = function(n, notReadyYet) {
    alert("Calculating results...");
    if (notReadyYet) {
        setTimeout(getResult, 100, n);
    } else {
        sayResult(n);
    }
    return arguments.callee;
}

var sayResult = function(n) {
    if (n >= 10) {
        alert("That's a big number!");
    }
    if (n < 10) {
        alert("That's a small number.");
    }
    return n;
}

(function() {
    var input = parseInt(prompt("Please enter a number:"));
    var result = getResult(input, true);
    return result;
})();

Puede ejecutarlo aquí cuando esté listo (¡adivine primero!). Si se desplaza hacia abajo lo suficiente en el panel JS, verá el código con una breve explicación.

Respuesta correcta:

Después de pedirle al usuario que ingrese un número, ingresará en un bucle infinito y mostrará alertas de "Calculando resultados ..." hasta que se exceda el tamaño máximo de la pila de llamadas (aunque el ejemplo jsfiddle se detendrá después de aproximadamente 20 veces). Sin embargo, si se coloca un punto y coma después de la llave de cierre de la función sayResult, funcionará como mgibsonbr descrito en los comentarios.

Puntuación:

  • Buenas respuestas: 9
  • Opinión falsa más popular: 2
  • Respuestas totales: 15

Pide un número con la pregunta Please enter a number:y le devuelve la respuesta seguida de true.
SteeveDroz

8
se bloquea en un bucle infinito apareciendo "Calculando resultados" hasta el infinito
SeanC

Solicita un número, alerta "Calculando resultados" dos veces, luego alerta "Eso es un número"
mgibsonbr

1
Sale That's a big numberdespués de un retraso igual al número que ingresó en ms.
Gieron

Dependiendo del navegador y / o cómo está configurado el DOM (soy realmente nuevo en JS), genera el nombre de la función que se llama en la carga de la página.
Kevin

6

Javascript

var a = [];
a.push( "Hello" );
a.concat( [ ", ", "world", "!" ] );
alert( a.join("") )

Respuesta: alertaHello . El concatmétodo no modifica la matriz: devuelve una matriz que contiene la concatenación de la matriz a la que se llama y cualquier otro argumento proporcionado.

15 correctas, 26 incorrectas, 41 respuestas en total y la puntuación es (26-15) / 41 = 11/41 = 26,83%


25
AlertasHello, world!
SteeveDroz

14
AlertaHello
Volatilidad

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

5

Python 33.3%

def Test():
    False = True
    True = False
    if False:
        return False
    elif True:
        return True
    else:
        return None

a = Test()
print a

Nota: Suponga que esto es Python 2.x, y no Python 3.


Cuando se ejecuta, este código produce un UnboundLocalError: local variable 'True' referenced before assignment.


1
Plantea unaSyntaxError
Volatilidad

¿No debería ser eso False, True = True, False?

Es lo que es. (De cualquier manera, creo que eso no hace la diferencia en este caso)
TerryA

44
Esto imprime True.
WolframH

1
Plantea un UnboundLocalError.
Bakuriu

5

Java

public class Puzzle {

    public static void main(String[] args) {
        String out = "Some ungodly gibberish";
        //char x = \u000a; out = out + " and then some more. ";
        System.out.println(out);
    }
}

Primer intento de codegolf ...

buena respuesta: impresiones Some ungodly gibberish and then some more.y una nueva línea

Clasificación:

  • Número máximo de conjeturas 6
  • Número total de conjeturas 11
  • cantidad de conjeturas correctas 5 (0 si está en modo pedanitc)

Puntuación: 9% (55% en modo pedante)


55
ImpresionesSome ungodly gibberish and then some more.
cartón_24 de

66
Imprime Some ungodly gibberishcon una nueva línea
MrZander

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

5

C # 62.5%

int sum=0;
List<Task> threads = new List<Task>();
for (int i=1; i<=10; i++) {
  Task adder = new Task( ()=> sum += i );
  threads.Add( adder );
  adder.Start();
}
foreach (var t in threads ) { 
  t.Wait();
}
Console.WriteLine("Sum of all numbers in 1..10 is: "+sum);

Este es mi primer código de golf.

La respuesta correcta fue: "algo entre 55 y 110". Esto se debe a que cada vez que se ejecuta la instrucción "sum + = i", usará el valor actual de i. Este código podría incluso ejecutarse después de que se realiza el ciclo for , en cuyo punto tengo el valor 11. Esto hace que el valor más alto sea 110 (y puede asegurarse de verlo si ralentiza el lambda en su prueba). El valor más pequeño posible es suma (1..10), que es 55.

  • Buenas respuestas: 0
  • Solo aproximadamente buenas respuestas: 5
  • Número de veces que se seleccionó la respuesta más popular: 5
  • Respuestas totales: 8

puntaje: estrictamente hablando, nadie acertó, por lo que el puntaje debería ser (5-0) / 8 = 62.5%. Si estamos dispuestos a contar "aproximadamente bueno" como respuesta correcta, entonces el puntaje es (5-5) / 8 = 0%


44
Imprime un número indeterminado del 55 al 100, inclusive.
Ry-

Solo imprime 100.
Kevin

1
Imprime un número 'aleatorio' entre 0 (inclusive) y 110 (inclusive)
fjdumont

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Edite su contenido y agregue la buena respuesta, la cantidad de buenas respuestas, la cantidad de personas que respondieron en su mayoría a la misma cosa, la cantidad total de respuestas y su puntaje . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

Estoy feliz de que la mayoría de las personas lo hayan entendido bien, ¡presumiblemente lo suficientemente bien como para saber que no deben cometer ese error en su código!
redtuna

4

Python, -83.3%

Respuesta: impresiones a < b si las entradas son iguales, a = bsi la primera es más grande y a > bsi la segunda es más grande.

a = input()
b = input()
print 'a', '<=>'[cmp(a, b)], 'b'
  • Buenas conjeturas: 11
  • Las mismas malas conjeturas: 1
  • Total de conjeturas: 12

Explicación:

cmp(a, b)devuelve 0si ambos argumentos son iguales, 1si el primero es más grande y -1si el primero es más pequeño, razón por la cual se imprime el símbolo de comparación incorrecto.


77
Imprime a = b si a> ba <b es a == b, o a> b si a> b
Foon el

imprime a = bpara la entrada a == b, a < bpara la entrada a> b y a > bpara la entrada a <b
wim

2
Imprime a = bsi a> b, a < bsi a == b, a > bsi a < b. (Esto es probablemente lo que quería decir @Foon.)
flornquake

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

1
Creo que esto es mejor de lo que muestra el puntaje. Si no hubiera estado en modo de búsqueda de errores, podría no haberlo encontrado.
WolframH

4

PHP, 100%

Publicación por primera vez en golfo de código, con suerte esto no está mal.

function word_to_num($word) {
 switch ($word) {
  case "one":
   return 1;
  case "two":
   return 2;
  case "three":
   return 3;
  default:
   return "error";
 }
}
function print_word($num) {
 switch ($num) {
  case 1:
   print "hello";
   break;
  case 2:
   print "world";
   break;
  case "error":
  default:
   print " ";
  }
}

$words = array("one", 0, "two");
foreach ($words as $word) {
 $result = word_to_num($word);
 print_word($result);
}

la salida correcta es 'hellohelloworld'

el puntaje es (10-0) / 10 = 1 = 100%


99
Impresiones hello world.
flornquake

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

Oh jaja. Maldición PHP.
Ry-

'one' == 0=> true. Muy inteligente.
primo

4

Perl: 100% (4-0) / 4

print (1 + 2) * 3, "\n"; 
#

Este programa imprime "3" sin una nueva línea. Perl analiza esta instrucción como

((print (1+2)) * 3, "\n")

entonces solo (1+2)se pasa como argumento a print.


3
Impresiones 9seguidas de una nueva línea
3Doubloons

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

3

C#

static void Main(string[] args)
{
     Console.WriteLine('H' + 'e' + 'l' + 'l' + 'o');
     Console.ReadLine();
}

3
Imprime la suma de los valores ASCII de cada letra (500)
3Doubloons

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

Para ser justos, la primera vez que lo vi pensé que imprimiría "Hola", pero luego hice una doble toma.
redtuna

3

CPython

if 'Hello' + 'World' is 'HelloWorld':
  print 'Hello'
if 'Hello' + 'World!' is 'HelloWorld!':
  print 'World!'

la salida correcta es 'Hola'

puntaje (14-3) / 19 == 57.9%


13
No imprime nada.
TerryA

1
Impresiones Hello\nWorld!.
Bakuriu

2
Impresiones Hello. (Depende de la implementación.)
WolframH

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

3

C (Puntuación: 4.45%)

Buenas conjeturas: 7
Máximo de conjeturas incorrectas: 6 + 2 = 8
Total de conjeturas: 6 + 7 + 3 + 2 + 4 = 22

Solución: ??/ es un trigrafo para \, por lo que se escapa la nueva línea y scanfse comenta la línea. Por lo tanto, el programa se ejecuta para siempre, imprimiendo Guess a number between 1 and 10:. Los comentarios son una cita de Mozart (vía fortune).

// Why not?/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// What?/
int main(int argc, char** argv)
{
    // Why not?/
    int number;

    // Why should I not send it?/
    srand(time(NULL));

    while(1)
    {
        // Why should I not dispatch it?/
        printf("Guess a number between 1 and 10: ");

        // Why not??/
        scanf("%d", &number);

        // Strange! I don't know why I shouldn't/
        if(number == rand() % 10 + 1)
        {
            // Well, then/
            printf("You guessed right!\n");
            // You will do me this favor./
            exit(0);
        }
    }
}

Spoiler, cómo compilar y ejecutar:

gcc test.c -trigraphs


55
Los comentarios son solo distracciones. El programa es "Adivina el número aleatorio del 1 al 10".
luser droog

66
"Guess a number between 1 and 10: Guess a number between 1 and 10: Guess a number between 1 and 10: " (and so on)sin pedir información
pascalhein

2
Algo malvado está oculto en los comentarios, ya que se ven como C ++.
Alexander

1
Finalmente, imprime "¡Has acertado!", Y una nueva línea, y luego termina.
Kaz Dragon

44
El comentario malvado tiene algo que ver con los trigrafos.
shiona

3

Java

public class Test {
    public static void main(String[] args) {
        String fmt = "%s - %04d\n";
        System.out.println(fmt.format("Padded value: ", 0x0c));
    }
}

La respuesta

Imprime Padded value:(con una nueva línea).

El formatmétodo de String es static, con el formato que se pasa como el primer parámetro. Es decir, la llamada anterior es equivalente a:

        System.out.println(String.format("Padded value: ", 0x0c));

Número de buenas respuestas: 2 Respuestas incorrectas: 9

Puntuación : (9-2) / 11 = 63%


8
Esto imprimePadded value: - 0012\n
copia el

1
Esto imprime "Valor rellenado:` seguido de un carácter de nueva línea.
Alvin Wong

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Edite su contenido y agregue la buena respuesta, la cantidad de buenas respuestas, la cantidad de personas que respondieron en su mayoría a la misma cosa, la cantidad total de respuestas y su puntaje . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

3

C

#include <stdio.h>
#define SIX  1+5
#define NINE 8+1

int main()
{
    printf("%d\n", SIX * NINE);
}

Puntuación = (3-16) / 19 == -68.4%

No olvides tu toalla.


15
Imprime 42 + una nueva línea
Paul Cager

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

Acabo de notar tu rompecabezas. Me habría equivocado xP Soy un programador Java / C #, así que esa es mi excusa ...
Kevin

3

C ++

#include <cstdio>

int main()
{
    int f;

    f or (f = 0, f < 1000, ++f,
        printf("H ello world !\n"));

    return 0;
}

Puntuación = (1 - 6) / 7 = -0.71428571428571 = -71.428571428571%


55
Eso no hace nada.
SteeveDroz

No compila
f.ardelian

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

2

JavaScript

var x = 0;
var y = !x * 4;
var z = !y;
alert("Z = "+z);

13
Se avisa Z = false.
SteeveDroz

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

2

Pitón

def greeting():
  try:
    return 'Hello World'
  finally:
    return 'HELL0 W0RLD'

print greeting().lower()

la salida correcta es 'hell0 w0rld'

puntaje (8-14) / 22 == -27.3%


77
Impresiones: hola mundo
TerryA

14
Printshell0 w0rld
SteeveDroz

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

2

R: 100%

No es tan imaginativo pero podría confundir a algunas personas:

sum(data.frame(rep(1,10),stringAsFactors=TRUE))

¿Cuál crees que es el resultado?

Editar :

La respuesta fue 20. Debido a una falta sen stringAsFactors( en lugar de stringsAsFactors), el argumento no se reconoce, por lo que la función crea una nueva columna llamada stringAsFactors. Debido al reciclaje de vectores, la columna contiene 10 veces TRUEque se convierten en 1s en la suma, por lo tanto, un total de 20 y no 10.

Esta respuesta no se dio en los comentarios. Se dieron 3 respuestas (todas diciendo 10más o menos). De ahí una puntuación de 100%, supongo.


Devuelve el valor 10.
SteeveDroz

1
Inicialmente pensé que regresaría 10. Disimulado ... dejar esa "s" realmente cambia las cosas ...
Dason

1
@Dason Ahora me doy cuenta de que suprimir el segundo habría sido aún más astuto: se supondría que una coincidencia parcial lo corregiría, pero resulta que no.
plannapus

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz

100%! ¡Felicidades!
redtuna

2

Tcl

Inspirado por ugoren

foreach c [split [lindex $argv 0] {}] {
    # Don't print the invalid chars & and \
    if {$c in "& \\"} {continue}
    puts -nonewline $c
}

Lo sentimos, olvidé una cadena de ejemplo. Ok, corre como

./charfilter.tcl '¡Hola y adiós mundo!'

Editar solución correcta: no se filtra en absoluto. ( 6x )
Máxima respuesta incorrecta: 4x
Total de respuestas: 10
Puntuación: -0,2


55
Simplemente imprime su argumento y en realidad no se filtra.
marinus

3
imprime su argumento, sin " ", "&", "\".
pascalhein

Este es el final del juego , por favor califíquese con los comentarios que están por encima de este. Editar su contenido y añadir la buena respuesta, el número de respuestas correctas, el número de personas que en su mayoría respondieron a la misma cosa, el número total de respuesta y su puntuación . No olvides que un 2 al lado de un comentario significa 3 respuestas. Comenta libremente debajo de esto.
SteeveDroz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.