-ENDED- Faça algo parecido com outra coisa [fechado]


78

Escreva um trecho, uma função, um programa, ... que seja ofuscado de uma maneira que pareça claro à primeira vista que ele faz outra coisa.

Por exemplo: escreva um pouco de código que adicione dois números, mas quando você perguntar a alguém "o que ele faz?", Ele informará que ele exibe "Olá, Mundo!".

Regras

  • O código deve ser legível para quem conhece aproximadamente o idioma que você usa (evite o idioma ofuscado intrínseco como APL, no seu próprio interesse).
  • O código deve fazer algo inesperado que o leitor inicialmente não pôde prever.
  • Quando você pergunta a leitores diferentes, eles devem ter a mesma opinião (errada) sobre o que o código faz.

Avaliação

  • Leia os códigos de outros concorrentes durante um período máximo de 10 a 20 segundos, apenas para ter uma boa idéia do que acontece lá.
  • Adicione um comentário à resposta dizendo o que você acha que o código faz. Se a resposta que você deseja dar já estiver lá, basta marcar o comentário com +1 . (se você perder essa resposta e adicionar outro comentário, não se preocupe, ela não será contabilizada como outra resposta).
  • Os pontos serão mostrados desta maneira: ( maxFalseOpinion- goodGuess) / totalOpinion(veja o exemplo abaixo).
  • Classifique outros competidores com fairplay e não comente seu próprio código.
  • Adicione apenas comentários úteis. Evite "eu não sei" e "bom!", Eles não são levados em consideração para a classificação, mas é o código e não as classificações que devem ser ofuscadas.

Exemplo de classificação

O trecho adiciona dois números. Os comentários dizem:

(3) Ele exibe "Olá, mundo!"
(1) Substrata 2 números.
(2) Adiciona 2 números.

A quantidade total de pontos é o número máximo de opiniões (3) - o número de boas suposições (2) dividido pela quantidade total de suposições (3 + 1 + 2 = 6). Resultado: (3 - 2) / 6 = 1/6 = 16,67% .


MAIS SOBRE PONTOS

As pessoas parecem ter algum problema para descobrir os pontos.

Aqui está uma pontuação perfeita:

printf('Hello World');

comentários:
exibe o número de vezes que você clicou em um botão. (17 comentários).
TOTAL: 17 comentários

Pontuação: (17-0) / 17 = 1 = 100%

Aqui está uma pontuação ruim:

printf('Hello World');

comentários:
Imprime "Olá Mundo". (13 comentários).
TOTAL: 13 comentários

Pontuação: (0 - 13) / 13 = -1 = -100%

Aqui está uma pontuação não tão ruim:

printf('Hello World');

comentários:
Imprime o nome do usuário. (2 comentários).
Ele exibe a hora atual (15 comentários).
Retorna o que você inseriu sem modificação. (3 comentários).
Imprime "Hello World" (1 comentário).
TOTAL: 21 comentários

Pontuação: (15 - 1) / 21 = 0,6667 = 66,67%
Explicando:
15 é o principal palpite, o que as pessoas mais disseram. 1 é o número correto de suposições. 21 é a soma de todos os comentários.


5
Ideias possíveis para os concorrentes (especialmente aqueles que escrevem C) podem ser encontradas em underhanded.xcott.com
Shiona

3
Sinto que as pessoas relutariam em comentar se não perceberem o truque (porque obviamente acabariam erradas). Isso modificaria fortemente os resultados.
ugoren

2
@ Haidro, eu diria que se você conhece o idioma um pouco e parece entender o que o programa faz, então comente. Se você não consegue entender (por exemplo, eu não consigo entender a resposta da calça ), não.
Ugoren

2
Quando o desafio termina?
WolframH

4
Eu acho que você deve exigir um número mínimo de palpites para um vencedor - eu diria que 10. 1 resposta errada de 1 não é muito impressionante, mas é 100%.
precisa saber é o seguinte

Respostas:


79

Javascript

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

Resposta: Emite 1. Os comentários abaixo explicam muito bem - existem duas variáveis ​​diferentes aqui, a - 'LETRA PEQUENA LATINA A' e 'CARTA PEQUENA CIRILICA A' .

Houve 1 resposta correta, 50 pessoas pensaram que produz 2, e com um total de 52 respostas, a pontuação é (50 - 1) / 52 = 49/52 = 94,23%


57
Saídas 2ou pelo menos é isso que eu espero :)
Alexander

8
Este é o snippet JS mais furtivo que eu já vi. Bem jogado.
precisa

1
Para quem não
entende

3
@soandos: (OUTRA VEZ, SPOILERS): A variável usada na primeira e na terceira linhas é diferente da variável na segunda e na quarta. Um usa um (U + 0061) enquanto o outro usa um (U + 0430). Veja também .
BlueRaja # Danny Pflughoeft

5
Um amigo meu achava que isso era muito engraçado e foi inspirado a escrever este github.com/johnhaggkvist/WATifyJS - Ele tinha muito pouco rep a comentar então eu estou fazendo isso para ele ^ _ ^
Henrik Andersson

32

C, pontuação 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;
}

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

Ponto

A resposta correta é H\n(isso whilefaz parte do comentário, graças à linha que termina com \, então não há loop), dada por 6 pessoas.
O erro mais popular foi Hello goodbye, world\ndado por 25 pessoas.
(25 - 6) / 57 = 33,3%.
Agradecemos a Olivier Dulac por se preocupar em calcular.


24
Imprime "Olá, adeus, mundo! \ N" ...
Vi.

5
É um loop sem fim.

5
Imprime apenas o primeiro caractere no arg e uma nova linha. Então, imprime H\n.
Marinus

7
Impressões: Hello goodbye, world!(no \ n) (2 espaços após o Hello)
Olivier Dulac

6
produz um SEGFAULT.
pascalhein

27

Pitão

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

Avaliação

  1. Boa resposta: Imprime 0 1 4 9 16 25 36 49 64 64cada número em uma linha.

  2. Explicação: Apesar de ninguém obter a resposta certa, considero essa tentativa principalmente falhada, porque ninguém cometeu o erro que eu pretendia. (Acrescentarei uma explicação real mais tarde, se mais ninguém o fizer.)

  3. Número de boas respostas: 0

  4. Número de pessoas com a mesma resposta errada: 7

  5. Número total de respostas: 11

  6. Pontuação: 63,64% (arredondado para duas casas decimais)

Explicação

Primeiro, uma lista aé criada e preenchida com valores i * ++i. Não há ++operador no Python, mas há um +operador unário , que não faz nada para números inteiros, e aplicá-lo duas vezes ainda não faz nada. Portanto, acontém os quadrados dos números inteiros de 0a 9.

Eu tinha colocado isso ++como uma distração e esperava que a maioria dos eleitores continuasse, pensando que haviam encontrado a armadilha e cair na armadilha real. Não deu certo. Alguns achavam que ++era um erro de sintaxe, e os outros ainda procuravam a armadilha.

A armadilha A armadilha estava no segundo for loop:

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

Eu tinha certeza de que a maioria das pessoas pensaria que isso imprime todos os a[i], ou seja 0 1 4 9 16 25 36 49 64 81, cada número em uma linha. É o que você obtém com essa variação, por exemplo:

for x in a: 
    print(x)

xrecebe os valores em ae xé impresso. Na primeira versão, a[i]são atribuídos os valores em ae, em seguida, a[i]são impressos. A diferença é que, no nosso caso, temos i == 9e, portanto, o valor de a[9]é alterado a cada vez no loop. Quando finalmente a[9]é impresso, tem o valor de a[8]e, portanto, 64é impresso novamente.


3
Erro de sintaxe (não ++no Python).
ugoren

5
SyntaxErrorno segundo for.
Bakuriu

Imprime 81dez vezes
Michael0x2a

SyntaxErrorno segundo for. Isso é incrível. Isso realmente deveria ganhar. Levei 5 minutos para entender o que estava acontecendo lol!
Rubik

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

26

JavaScript , pontuação de -100%

Eu não inventei isso, Gary Bernhardt, mas é um dos meus favoritos

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

37
Saídas NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN, BATMAN! :)
codefreak

1
Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

Parece que o vídeo é bastante conhecida ...
Bakuriu

3
É este -100%...?
Alvin Wong

Claro. O batman revela.
precisa saber é o seguinte

14

Python, -54,8%

Resposta: Aumenta 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';
}
  • Boas suposições: 24
  • Mesmos palpites ruins: 7
  • Total de suposições: 31

Explicação:

from __future__ import bracesé um dos ovos de páscoa em Python. É uma piada, dizendo que o Python nunca usará chaves para escopo no futuro.


6
Testa se o resultado de uma expressão fornecida pelo usuário está assinado.
Felix Dombek

1
Eu suspeito que existem alguns erros. Programadores Python são teimosos;)
grc

12
Este é um erro de sintaxe!
Dhara

11
SyntaxError: not a chance
Bakuriu

2
@BoppreH Por favor, limite-se a declarar o resultado sem qualquer tipo de explicação explícita ou faça o voto positivo do comentário que já indica o resultado que você acha correto. Outros tipos de comentários apenas arruinam a diversão de seguir os leitores.
Bakuriu

14

Perl, 26,67%

Resultados:

Isso mostra "Eu sou ambivalente em dizer qualquer coisa."

my $num1,$num2 = @_;está faltando parênteses. Portanto, é equivalente a my $num1; $num2 = @_;. $num1não é definido para nada.

Assim, $num1nunca é maior que zero. O pouco sobre o mundo secreto dos peixes escondido na tela é, err, um arenque vermelho, para que as pessoas pensem que encontraram o "truque".

Além disso, o operador ternário é um valor l em Perl: 1 ? $a = 1 : $b = 2na verdade significa (1 ? $a = 1 : $b) = 2. O que significa ($a = 1) = 2é avaliado, configurando $apara 2. Ao contrário das aparências, a segunda sequência é atribuída $num1.

Caso você esteja se perguntando, //é o operador definido ou. Se o sub retornasse um valor indefinido, a sequência "Stuff did not happen."seria impressa. Mas isso realmente não acontece. Era apenas para dar às pessoas outra opção.

Pontuação:

Total correto: 5

Total de suposições: 30

Pontuação: (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
Isso resulta, eu sou ambivalente em dizer qualquer coisa.
Marinus

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

13
Não sendo um guru perl, isso deve ser impresso Hello, world!.
Alexander Alexander

2
Bem, é isso pessoal. Nunca mais vou lidar com o Perl.
Mr. Llama

3
@ContextSwitch e @aidan, o operador ternário é um valor l em Perl. 1 ? $a = 1 : $b = 2na verdade significa (1 ? $a = 1 : $b) = 2. O que significa ($a = 1) = 2é avaliado, configurando $apara 2. Além disso, como Primo apontou, my $num1, $num2 = @_;não faz o que você espera, porque os parênteses estão ausentes.

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 literalmente daqui )

Explicação e Pontuação

A resposta correta é cavalo . Isso não é um truque ou truque de mão. Estranhamente, é assim que o operador ternário é definido no PHP.
3 escolheram a resposta correta: cavalo ,
16 pessoas escolheram o trem que está correto em literalmente todas as outras línguas já inventadas, exceto o PHP. Total de
25 respostas, obtendo uma pontuação de (16 - 3) / 25 = 52%


5
pés
Wim

15
impressões train.
precisa saber é o seguinte

3
imprime 'cavalo'.
Jonathan


1
E é por isso que você quase sempre deve usar parênteses para indicar a ordem das operações, mesmo que pense que não precisa delas.
Ryan Amos

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

Solução

O objetivo deste código é induzir o usuário a pensar que um caractere de nova linha será impresso entre o texto "Olá" e "Mundo". Observe que o primeiro parâmetro para main é chamado cout. Como, no escopo de main, cout é um número inteiro, o operador << realmente executa uma operação de deslocamento à esquerda com um parâmetro '\ n', em vez de imprimir uma nova linha. A função de impressão está lá principalmente para desviar a atenção dos parâmetros de entrada em main, mas também para permitir que std :: cout seja usado sem adicionar o prefixo do namespace.

Ponto

Cortesia de Alvin Wong

  • Total de 38 respostas:
  • 12 pensou HelloWorld(considerando que minitech e zeel são iguais)
  • 23 pensou Hello\nworld 3 pensou em outra coisa.
  • A pontuação é (23 - 12) / 38 = 28,9%

23
Imprime "Olá" em uma linha e "Mundo" na próxima.
Redtuna # 23/13

2
Imprime "HelloWorld". Coloca 1024 coutse chamado sem parâmetros.
Alexander

9
Imprime HelloWorld.
Ry-

1
Imprime o HelloWorld. E executa um deslocamento à esquerda um pouco sábio no número inteiro "cout".
zeel

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

10

Rubi, 100%

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

Resposta correta:

Imprime "principal" sem nova linha. Explicação: No Ruby, você não pode chamar um lambda usando a sintaxe normal de parênteses. Em vez disso, display () é interpretado como o método interno de todos os objetos: o.display imprime o.to_s na saída padrão. Os métodos chamados sem um objeto são interpretados como métodos de "main", um Objeto que inclui o módulo Kernel.

Pontuação: 3 da mesma resposta errada, sem outras respostas.


3
Imprime "Olá, mundo!"
precisa saber é o seguinte

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

8

Python, -28,13%

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

print x

Isso é impresso 11porque o elsebloco, que pertence ao while, é executado depois que o loop é encerrado.

  • Número máximo de falsas suposições: 8
  • Adivinhações corretas: 17
  • Total de suposições: 8 + 17 + 7 = 32

Pontuação: (8-17) / 32 = -28,13%


7
Falha devido a falta de recuo em #else:
Alexander

16
Imprime 11em uma linha.
Bakuriu

6
Isto imprime 10.
copie

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

8

Python: Classificação: -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

O 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

Classificação: Total de opiniões: 22 12 correto 3 + 1 + 6 errado [para a resposta de Bakuiru, eu diria que estava próxima, mas ainda incorreta, pois os.name é uma string (os.uname é uma função)]

Classificação com base nessa premissa e no meu entendimento do sistema de classificação: Máximo errado = 6 Correto = 12 Pontuação = (6-12) / 22 = -27%


11
Gravuras What is your name: [operating system name], What is your quest: Seek and find the holy grail, What is your favourite color: blueem linhas separadas. Obviamente, [operating system name]é substituído pelo nome real.
Volatilidade

3
Exibe a última linha 3 com valores name = "Robin", seek = "Seek and find holy grail"e favorite_color = "red", oh, não. blue! (AAARRGGGHHH!)
SteeveDroz

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

Saídas What is your name: Robin, What is your quest: Seek and find holy graile, What is your favorite color: blueem linhas separadas.
Rory O'Kane

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

7

Pitão

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:

pontuação (8-1) / 9 == 77,7%

a saída correta é '2 é empresa' no python 2, '3 é uma multidão' no python 3.


7
2 is a crowd(em Python 2, 3 em Python 3).
ugoren

2 is company(no Python 2) ou 3 is a crowd(no Python 3).
WolframH

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

5
Maldição de renomear 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;
})();

Você pode executá-lo aqui quando estiver pronto (adivinhe primeiro!). Se você rolar para baixo o suficiente no painel JS, verá o código com uma breve explicação.

Resposta correta:

Após solicitar ao usuário que digite um número, ele entrará em um loop infinito e exibirá alertas "Calculando resultados ..." até que o tamanho máximo da pilha de chamadas seja excedido (embora o exemplo do jsfiddle pare após cerca de 20 vezes). No entanto, se um ponto-e-vírgula for colocado após a chave de fechamento da função sayResult, ele funcionará como mgibsonbr descrito nos comentários.

Pontuação:

  • Boas respostas: 9
  • Opinião falsa mais popular: 2
  • Total de respostas: 15

Ele pede um número com a pergunta Please enter a number:e retorna a resposta seguida por true.
precisa saber é o seguinte

8
que trave em um loop infinito, aparecendo "Calculando resultados" ad infinitum
SeanC

Ele solicita um número, alerta "Calculando resultados" duas vezes e, em seguida, alerta "Esse é um número _"
mgibsonbr 24/04

1
Emite That's a big numberapós um atraso igual ao número digitado em ms.
Gieron 24/04

Dependendo do navegador e / ou como o DOM está configurado (eu sou realmente novo no JS), ele gera o nome da função que é chamada no carregamento da página.
24413 Kevin

6

Javascript

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

Resposta: AlertasHello . O concatmétodo não modifica a matriz - ele retorna uma matriz que contém a concatenação da matriz na qual ela é chamada e quaisquer outros argumentos fornecidos.

15 corretas, 26 erradas, 41 respostas no total e a pontuação é (26-15) / 41 = 11/41 = 26,83%


25
AlertasHello, world!
SteeveDroz

14
AlertasHello
Volatilidade

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

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: Suponha que este seja o Python 2.xe não o Python 3.


Quando executado, esse código produz um UnboundLocalError: local variable 'True' referenced before assignment.


1
Aumenta aSyntaxError
Volatilidade

Isso não deveria ser False, True = True, False?

É o que é. (de qualquer forma, eu acho que não faz a diferença neste caso)
TerryA

4
Isso imprime True.
precisa saber é o seguinte

1
Gera um 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);
    }
}

Primeira tentativa de codegolf ...

boa resposta: impressões Some ungodly gibberish and then some more.e uma nova linha

Avaliação:

  • Número máximo de palpites 6
  • Número total de palpites 11
  • número de suposições corretas 5 (0 se você estiver no modo pedanitc)

Pontuação: 9% (55% no modo pedante)


5
PrintsSome ungodly gibberish and then some more.
cardboard_box

6
Imprime Some ungodly gibberishcom uma nova linha
MrZander

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

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 é o meu primeiro código de golfe.

A resposta correta foi: "algo entre 55 e 110". Isso porque sempre que a instrução "sum + = i" for executada, ela usará o valor atual de i. Esse código pode até ser executado depois que o loop for for concluído , no ponto em que eu tenho o valor 11. Isso cria o valor mais alto possível 110 (e você pode ver isso se desacelerar o lambda em seus testes). O menor valor possível é sum (1..10), que é 55.

  • Boas respostas: 0
  • Apenas aproximadamente boas respostas: 5
  • Número de vezes que a resposta mais popular foi selecionada: 5
  • Total de respostas: 8

pontuação: a rigor, ninguém acertou, então a pontuação deve ser (5-0) / 8 = 62,5%. Se quisermos contar "aproximadamente bom" como resposta correta, a pontuação será (5-5) / 8 = 0%


4
Imprime um número indeterminado de 55 a 100, inclusive.
Ry-

Ele só imprime 100.
Kevin

1
Imprime um número 'aleatório' entre 0 (inclusive) e 110 (inclusive)
fjdumont 25/04/13

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

Fico feliz que a maioria das pessoas tenha acertado - presumivelmente certo o suficiente para saber que não cometerá esse erro no código!
Redtuna 29/04

4

Python, -83,3%

Resposta: Imprime a < bse as entradas forem iguais, a = bse a primeira for maior e a > bse a segunda for maior.

a = input()
b = input()
print 'a', '<=>'[cmp(a, b)], 'b'
  • Boas suposições: 11
  • Mesmos palpites ruins: 1
  • Total de suposições: 12

Explicação:

cmp(a, b)retorna 0se os dois argumentos forem iguais, 1se o primeiro for maior e -1se o primeiro for menor, e é por isso que o símbolo de comparação incorreto será impresso.


7
Imprime a = b se a> ba <b é a == b, ou a> b, se a> b
Foon

impressões a = bpara entrada a == b, a < bpara a entrada a> b, e a > bpara a entrada de um <b
Wim

2
Imprime a = bse a> b, a < bse a == b, a > bse a < b. (Este é provavelmente o que @Foon significava.)
flornquake

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

1
Eu acho que isso é melhor do que o placar mostra. Se eu não tivesse sido enganado no modo de encontrar erros, talvez não o tivesse encontrado.
WolframH

4

PHP, 100%

Primeira postagem no código do golfo, espero que isso não seja ruim.

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

saída correta é 'hellohelloworld'

a pontuação é (10 - 0) / 10 = 1 = 100%


9
Imprime hello world.
flornquake

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

Oh haha. Maldito PHP.
precisa saber é

'one' == 0=> true. Bastante inteligente.
Primo

4

Perl: 100% (4-0) / 4

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

Este programa imprime "3" sem uma nova linha. Perl analisa esta instrução como

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

então apenas o (1+2)é passado como argumento para print.


3
Impressões 9seguidas por uma nova linha
3Doubloons

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

3

C #

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

3
Imprime a soma dos valores ASCII de cada letra (500)
3Doubloons

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

Para ser justo, na primeira vez que o vi, pensei em imprimir "Olá", mas depois dei uma olhada dupla.
Redtuna # 29/13

3

CPython

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

saída correta é 'Olá'

pontuação (14-3) / 19 == 57,9%


13
Imprime nada.
TerryA

1
Imprime Hello\nWorld!.
Bakuriu

2
Imprime Hello. (Dependente da implementação.)
WolframH

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

3

C (Pontuação: 4.45%)

Boas suposições: 7
Máximo de suposições erradas: 6 + 2 = 8
Total de suposições: 6 + 7 + 3 + 2 + 4 = 22

Solução: ??/ é um trigrafo para \, portanto, a nova linha é escapada e a scanflinha é comentada. Portanto, o programa funciona para sempre, imprimindo Guess a number between 1 and 10:. Os comentários são uma citação de Mozart (via 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, como compilar e executar:

gcc test.c -trigraphs


5
Comentários são apenas distrações. O programa é "Adivinhe o número aleatório de 1 a 10".
Luser droog

6
"Guess a number between 1 and 10: Guess a number between 1 and 10: Guess a number between 1 and 10: " (and so on)sem pedir entrada
pascalhein

2
Algo mal está oculto nos comentários, pois eles se parecem com C ++.
Alexander Alexander

1
Eventualmente, imprime "Você adivinhou certo!", E uma nova linha e termina.
precisa

4
O comentário do mal tem algo a ver com trigramas.
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));
    }
}

A resposta

Imprime Padded value:(com uma nova linha).

O formatmétodo da string é static, com o formato sendo passado como o primeiro parâmetro. Ou seja, a chamada acima é equivalente a:

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

Número de boas respostas: 2 Respostas erradas: 9

Pontuação : (9-2) / 11 = 63%


8
Isto imprimePadded value: - 0012\n
copie

1
Isso imprime "Valor acolchoado:` seguido por um caractere de nova linha.
Alvin Wong

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

3

C

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

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

Pontuação = (3-16) / 19 == -68,4%

Não esqueça sua toalha.


15
Ele imprime 42 + uma nova linha
Paul Cager

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

Acabei de notar seu quebra-cabeça. Gostaria de tê-lo começado xP errado Eu sou um # programador Java / C, de modo que é minha desculpa ...
Kevin

3

C ++

#include <cstdio>

int main()
{
    int f;

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

    return 0;
}

Pontuação = (1 - 6) / 7 = -0,71428571428571 = -71,428571428571%


5
Isso não faz nada.
precisa saber é o seguinte


Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

2

Javascript

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

13
Alertas Z = false.
precisa saber é o seguinte

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
SteeveDroz

2

Pitão

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

print greeting().lower()

a saída correta é 'hell0 w0rld'

pontuação (8-14) / 22 == -27,3%


7
Olá, mundo!
TerryAbr

14
Printshell0 w0rld
SteeveDroz

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

2

R: 100%

Não é tão imaginativo, mas pode confundir algumas pessoas:

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

O que você acha que é o resultado?

Editar :

A resposta foi 20. Devido à falta sde stringAsFactors( em vez de stringsAsFactors), o argumento não é reconhecido, portanto a função cria uma nova coluna chamada stringAsFactors. Devido à reciclagem de vetores, a coluna contém 10 vezes TRUEque são convertidas em 1s na soma, portanto, um total de 20 e não 10.

Esta resposta não foi dada nos comentários. Foram dadas 3 respostas (todas dizendo 10mais ou menos). Daí uma pontuação de 100%, eu acho.


Retorna o valor 10.
precisa saber é o seguinte

1
Inicialmente eu pensei que voltaria 10. Sneaky ... deixando de fora que um "s" realmente muda as coisas ...
Dason

1
@Dason Agora percebo que suprimir o segundo teria sido ainda mais furtivo: assumiríamos que a correspondência parcial seria correta para isso, mas acontece que não.
precisa saber é o seguinte

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte

100%! Parabéns!
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
}

Desculpe, esqueci uma sequência de exemplo. Ok, corra como

./charfilter.tcl 'Olá, adeus, mundo!'

Editar solução certa: não filtra nada. ( 6x )
Máxima resposta errada: 4x
Total de respostas: 10
Pontuação: -0.2


5
Ele apenas imprime seu argumento e na verdade não filtra.
Marinus

3
ele imprime seu argumento sem " ", "&", "\".
pascalhein

Este é o fim do jogo , avalie-se com os comentários acima deste. Edite seu conteúdo e adicione a boa resposta, o número de boas respostas, o número de pessoas que mais responderam à mesma coisa, o número total de respostas e sua pontuação . Não esqueça que 2 ao lado de um comentário significa 3 respostas. Comente livremente abaixo disso.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.