-ENDED- Зробіть щось, що схоже на щось інше [закрито]


78

Напишіть фрагмент, функцію, програму, ... що затуманено таким чином, щоб на перший погляд було зрозуміло, що він робить щось інше.

Наприклад: напишіть трохи коду, який додає два числа, але коли ви запитаєте когось «що це робить?», Він скаже вам, що він друкує «Привіт, світ!».

Правила

  • Код повинен бути читабельним для того, хто приблизно знає мову, якою ви користуєтесь (уникайте власних заплутаних мов, таких як APL, у ваших інтересах).
  • Код повинен робити щось несподіване, що читач спочатку не міг передбачити.
  • Коли ви запитуєте різних читачів, вони повинні мати однакову (неправильну) думку про те, що робить код.

Рейтинг

  • Прочитайте коди інших учасників протягом максимум 10-20 секунд, щоб добре уявити, що там відбувається.
  • Додайте коментар до відповіді, вказуючи, що, на вашу думку, робить код. Якщо відповідь, яку ви хочете дати, вже є, просто позначте коментар +1 . (якщо ви пропустите цю відповідь і додасте ще один коментар, не хвилюйтесь, вона не буде зарахована до іншої відповіді).
  • Бали будуть розглянуті так: ( maxFalseOpinion- goodGuess) / totalOpinion(див. Приклад нижче).
  • Оцініть інших учасників за допомогою fairplay та не коментуйте власний код.
  • Додавайте лише корисні коментарі. Уникайте "Я не знаю" і "Хороший!", Вони не враховуються при оцінці, але це код, а не рейтинги, які повинні бути прихованими.

Приклад оцінки

До фрагменту додаються два числа. У коментарях сказано:

(3) На ньому відображається "Привіт, світ!"
(1) Він піддає 2 числа.
(2) Він додає 2 числа.

Загальна кількість балів - це максимальна кількість думок (3) - кількість добрих здогадок (2), поділене на загальну кількість здогадів (3 + 1 + 2 = 6). Результат: (3 - 2) / 6 = 1/6 = 16,67% .


БІЛЬШЕ ПРО ТОЧКИ

У людей, здається, виникають деякі проблеми з з'ясуванням пунктів.

Ось ідеальний бал:

printf('Hello World');

коментарі:
відображається кількість разів, коли ви натиснули кнопку. (17 коментарів).
ВСЬОГО: 17 коментарів

Оцінка: (17 - 0) / 17 = 1 = 100%

Ось кульгавий бал:

printf('Hello World');

коментарі:
Він друкує "Hello World". (13 коментарів).
ВСЬОГО: 13 коментарів

Оцінка: (0 - 13) / 13 = -1 = -100%

Ось не така вже й погана оцінка:

printf('Hello World');

коментарі:
він друкує ім'я користувача. (2 коментарі).
Він відображає поточний час (15 коментарів).
Він повертає те, що ви ввели без змін. (3 коментар).
На ній друкується "Hello World" (1 коментар).
ВСЬОГО: 21 коментар

Оцінка: (15 - 1) / 21 = 0,6667 = 66,67%
Пояснення:
15 - головна здогадка, що найбільше сказали люди. 1 - правильна кількість здогадів. 21 - сума всіх коментарів.


5
Можливі ідеї для учасників (особливо ті , які пишуть C) можна знайти на сайті underhanded.xcott.com
shiona

3
У мене є відчуття, що люди неохоче будуть коментувати, якщо вони не бачать хитрість (тому що вони, очевидно, закінчилися неправильно). Це сильно змінило б результати.
ugoren

2
@Haidro, я б сказав, що якщо ви знаєте мову трохи, і, здається, розумієте, що робить програма, тоді прокоментуйте. Якщо ви не можете зрозуміти це (наприклад, я не можу зрозуміти відповідь в'язаного одягу ), не варто.
ugoren

2
Коли закінчується виклик?
WolframH

4
Я думаю, вам потрібно вимагати мінімальної кількості здогадок для переможця - я б сказав 10. 1 неправильна відповідь з 1 не дуже вражає, але це 100%.
угорен

Відповіді:


79

Javascript

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

Відповідь: Виводить 1. Зауважені нижче коментарі це досить добре пояснюють - тут є дві різні змінні, - "СУЧАСНЕ МАЛЕ ПІСЛЕННЯ А" та а - "КІРИЛІЙСЬКИЙ МАЛИЙ ЛИСТ А" .

Відповідь була 1 правильною, 50 людей вважали, що це дає 2, і, загалом, 52 відповіді, оцінка (50 - 1) / 52 = 49/52 = 94,23%


57
Результати 2чи принаймні те, на що я сподіваюся :)
Олександр

8
Це найпотаємніший фрагмент JS, який я ще бачив. Гарно зіграно.
Пітер Маджед

1
Для тих, хто цього не отримує (спойлери вперед): посилання
BlueRaja - Danny Pflughoeft

3
@soandos: ( ПРОТИ, СПОЙЛЕРИ ): Змінна, що використовується в першому та третьому рядках, відрізняється від змін у другому та четвертому. Один використовує в (U + 0061) , в той час як інші використовують а (U + 0430). Дивіться також .
BlueRaja - Danny Pflughoeft

5
Мій друг подумав, що це досить смішно, і він надихнувся писати цей github.com/johnhaggkvist/WATifyJS - У нього було занадто мало репліку для коментарів, тому я це роблю для нього ^ _ ^
Генрік Андерссон

32

C, оцінка 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;
}

Біжи ./prog 'Hello & goodbye, world!'

Оцінка

Правильна відповідь H\n( whileце частина коментаря, завдяки рядку, що закінчується \, тому циклу немає), даного 6 людьми.
Найпопулярніша помилка була Hello goodbye, world\n, допущена 25 людьми.
(25 - 6) / 57 = 33,3%.
Дякуємо Олів’є Дулаку за те, що турбує обчислити.


24
Друкує "Привіт до побачення, світ! \ N" ...
Ві.

5
Це нескінченна петля.

5
Друкує лише перший символ у аргументі та новому рядку. Так воно друкує H\n.
marinus

7
Принти: Hello goodbye, world!(ні \ n) (2 пробіли після Привіт)
Олів'є Дулак

6
виробляє SEGFAULT.
pascalhein

27

Пітон

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

Рейтинг

  1. Хороша відповідь: Друкує 0 1 4 9 16 25 36 49 64 64кожне число в одному рядку.

  2. Пояснення: Незважаючи на те, що ніхто не отримав правильної відповіді, я вважаю це здебільшого невдалою спробою, оскільки ніхто не зробив помилки, яку я мав намір. (Реальне пояснення я додам пізніше, якщо ніхто інший цього не зробить.)

  3. Кількість хороших відповідей: 0

  4. Кількість людей із такою ж неправильною відповіддю: 7

  5. Загальна кількість відповідей: 11

  6. Оцінка: 63,64% (округлено до двох десяткових знаків)

Пояснення

Спочатку створюється список aі заповнюється значеннями i * ++i. У ++Python немає оператора, але є одинарний +оператор, який нічого не робить для цілих чисел, а його застосування два рази все одно нічого не робить. Так aмістяться квадрати цілих чисел від 0до 9.

Я поставив це ++як відволікання і сподівався, що більшість виборців продовжуватимуться, думаючи, що вони знайшли пастку і потрапляють у справжню пастку. Це не вийшло. Одні вважали, що ++це синтаксична помилка, а інші все ж шукали пастку.

Пастка Пастка була у другій для циклу:

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

Я був впевнений, що більшість людей думають, що це видає всі a[i], тобто 0 1 4 9 16 25 36 49 64 81кожне число в одному рядку. Ось що ви отримуєте з цього варіатора, наприклад:

for x in a: 
    print(x)

xприсвоюються значення в a, а потім xдрукується. У першій версії a[i]присвоюються значення в a, а потім a[i]друкується. Різниця полягає в тому, що в нашому випадку ми маємо i == 9, і таким чином значення a[9]кожного разу змінюється через цикл. Коли нарешті a[9]надруковано, воно має значення a[8]і, таким чином 64, друкується знову.


3
Помилка синтаксису (немає ++в Python).
угорен

5
SyntaxErrorна другій for.
Бакуріу

Друк в 81десять разів
Michael0x2a

SyntaxErrorна другій for. Це дивно. Це справді має перемогти. Знадобилося мені 5 хвилин, щоб зрозуміти, що відбувається лол!
rubik

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

26

JavaScript , Оцінка -100%

Я цього не вигадував, Гері Бернхардт зробив, але це один з моїх улюблених

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

37
Виходи NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN, БАТМАН! :)
codefreak

1
Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

Схоже, що це відео досить відоме ...
Бакуріу

3
Це -100%? ...
Елвін Вонг

Звичайно. Бетмен віддає його.
mplungjan

14

Python, -54,8%

Відповідь: підвищує 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';
}
  • Гарні здогади: 24
  • Такі ж погані здогади: 7
  • Всього здогадів: 31

Пояснення:

from __future__ import bracesє одним із писанок на Пітоні. Це мається на увазі як жарт, говорячи про те, що Python ніколи не використовуватиме дужки для проведення обліку в майбутньому.


6
Тестує, чи підписано результат вираження, наданого користувачем.
Фелікс Домбек

1
Я підозрюю, що є досить багато помилок. Програмісти Python вперті;)
grc

12
Це синтаксична помилка!
Дхара

11
SyntaxError: not a chance
Бакуріу

2
@BoppreH Будь ласка, обмежтеся в констатуванні результату без будь-якого явного пояснення або підкріпіть коментар, у якому вже зазначено результат, який ви вважаєте правильним. Інші види коментарів лише руйнують задоволення наступних читачів.
Бакуріу

14

Perl, 26,67%

Результати:

Це друкує "Я неоднозначний щодо того, щоб взагалі щось говорити".

my $num1,$num2 = @_;відсутні дужки. Тому він рівносильний my $num1; $num2 = @_;. $num1не налаштовується ні на що.

Таким чином $num1, ніколи не перевищує нуля. Трохи про таємний рибний світ, схований на екрані, - це помилка, червона оселедець, так що люди думають, що вони знайшли "фокус".

Крім того, потрійний оператор - це l-значення в Perl: 1 ? $a = 1 : $b = 2фактично означає (1 ? $a = 1 : $b) = 2. Це означає , ($a = 1) = 2оцінюється, установка $aв 2. На відміну від зовнішності, другий рядок призначений $num1.

Якщо вам цікаво, //це визначений оператор. Якщо суб повернув невизначене значення, рядок "Stuff did not happen."буде надруковано. Але насправді це не відбувається. Просто було дати людям інший варіант.

Оцінка:

Всього правильно: 5

Всього здогадів: 30

Оцінка: (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
Це виходить, я неоднозначно кажу про що-небудь взагалі.
marinus

10
Це друкує This is a secret fish world. Carp cannot be repressed!.
ugoren

13
Це не друк гуру Hello, world!.
Олександр

2
Ну, це все, хлопці. Ніколи більше не маю справу з Перлом.
Містер Лама

3
@ContextSwitch та @aidan, потрійний оператор - це значення l у Perl. 1 ? $a = 1 : $b = 2насправді означає (1 ? $a = 1 : $b) = 2. Який засіб ($a = 1) = 2оцінюється, встановлюючи $aзначення 2. Крім того, як зазначив Примо, my $num1, $num2 = @_;не робить те, що ви очікуєте, оскільки дужки відсутні.

14

PHP 52%

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

( Звідси скопійовано дослівно )

Пояснення та оцінка

Правильна відповідь - кінь . Це не трюк або хитрість руки. Як не дивно, саме так визначається потрійний оператор в PHP.
3 вибрали правильну відповідь: коня ,
16 людей вибрали потяг, який правильний буквально на будь-якій іншій мові, коли-небудь винайденій, крім PHP.
Усього 25 відповідей, даючи оцінку (16 - 3) / 25 = 52%


5
ноги
Вім

15
відбитки train.
SteeveDroz

3
друкує «коня».
Джонатан


1
І це ... тому вам майже завжди слід використовувати дужки для вказівки порядку операцій, навіть якщо ви думаєте, що вони вам не потрібні.
Райан Амос

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

Рішення

Сенс цього коду полягає в тому, щоб обдурити користувача думати, що між текстом "Привіт" та "Світ" буде надруковано символ нового рядка. Зауважте, що перший параметр до main називається cout. Оскільки, в області main, cout є цілим числом, оператор << фактично виконує операцію зсуву вліво з параметром '\ n', а не друкує новий рядок. Функція друку є головним чином, щоб відвести увагу головних вхідних параметрів, а також дозволити використовувати std :: cout без додавання префіксу простору імен.

Оцінка

Надано Альвіном Вонгом

  • Усього 38 відповідей:
  • 12 думок HelloWorld(враховуючи, що мінітех та зелень однакові)
  • 23 подумав Hello\nworld 3 подумав щось інше.
  • Оцінка становить (23 - 12) / 38 = 28,9%

23
Друкує «Привіт» в одному рядку та «Світ» у наступному.
redtuna

2
Друкує "HelloWorld". Ставить 1024, coutякщо викликається без параметрів.
Олександр

9
Друкує HelloWorld.
Ри-

1
Друкує HelloWorld. І виконує трохи розумний зсув ліворуч на ціле число "cout".
зель

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

10

Рубін, 100%

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

Правильна відповідь:

Друкує "головне" без нового рядка. Пояснення: У Ruby ви не можете викликати лямбда, використовуючи звичайний синтаксис дужок. Натомість display () інтерпретується як вбудований метод у всіх об'єктів: o.display друкує o.to_s на стандартний вихід. Методи, що називаються без об'єкта, інтерпретуються як методи "main", Об'єкт, що включає модуль Kernel.

Оцінка: 3 однакових неправильних відповідей, інших відповідей немає.


3
Друкує "Привіт, світ!"
3Doubloons

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

8

Python, -28,13%

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

print x

Це друкується, 11тому що elseблок, який належить до while, виконується після виходу циклу.

  • Максимальна кількість хибних догадок: 8
  • Правильні здогади: 17
  • Всього здогадів: 8 + 17 + 7 = 32

Оцінка: (8 - 17) / 32 = -28,13%


7
Помилка через відсутність відступу вelse:
Олександр

16
Друкується 11на одній лінії.
Бакуріу

6
Це відбитки 10.
копія

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

8

Python: Рейтинг: -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

Програма друкує:

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

Рейтинг: Всього думок: 22 12 правильних 3 + 1 + 6 неправильно [для відповіді Бакуйру я б сказав, що це було близько, але все-таки неправильно, оскільки os.name - рядок (os.uname - це функція)]

Рейтинг, що базується на цьому припущенні та моєму розумінні рейтингової системи: Максимум неправильно = 6 Правильно = 12 Оцінка = (6-12) / 22 = -27%


11
Відбитки What is your name: [operating system name], What is your quest: Seek and find the holy grail, What is your favourite color: blueна окремих рядках. Очевидно [operating system name]замінюється фактична назва.
Волатильність

3
Відображає 3 останній рядок зі значеннями name = "Robin", seek = "Seek and find holy grail"і favorite_color = "red", о, ні. blue! (AAARRGGGHHH!)
SteeveDroz

5
Друкує щось на зразок What is your name: <function os.name at 0x....>тощо
Бакуріу

Виходи What is your name: Robin, What is your quest: Seek and find holy grailі What is your favorite color: blueна окремих лініях.
Rory O'Kane

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

7

Пітон

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

редагувати:

оцінка (8-1) / 9 == 77,7%

правильний вихід "2 - компанія" на python 2, "3 - натовп" на python 3.


7
2 is a crowd(у Python 2, 3 у Python 3).
угорен

2 is company(у Python 2) або 3 is a crowd(у Python 3).
WolframH

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

5
Чорт спеціальний метод перейменування! :)
Бакуріу

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

Ви можете запустити його тут, коли будете готові (спочатку вгадайте!). Якщо прокрутити досить вниз на панелі JS, ви побачите код з коротким поясненням.

Правильна відповідь:

Після того, як попросить користувача ввести число, він увійде в нескінченний цикл і відобразить повідомлення "Обчислення результатів ...", поки не буде перевищено максимальний розмір стека виклику (хоча приклад jsfiddle припиниться приблизно через 20 разів). Однак якщо крапка з комою буде розміщена після дужки закриття функції sayResult, вона буде працювати як mgibsonbr, описаний у коментарях.

Оцінка:

  • Гарні відповіді: 9
  • Найпопулярніша помилкова думка: 2
  • Всього відповідей: 15

Він запитує номер із запитанням Please enter a number:і повертає вам відповідь, після чого true.
SteeveDroz

8
він замикається на нескінченний цикл, вискакуючи "Обчислення результатів" ad infinitum
SeanC

Він запитує номер, попереджає "Обчислення результатів" двічі, а потім попереджує "Це _ число"
mgibsonbr

1
Він виводиться That's a big numberпісля затримки, рівної кількості, яку ви вводите в мс.
Gieron

Залежно від браузера та / або налаштування DOM (я дійсно новачок у JS), він виводить назву функції, яка викликається при завантаженні сторінки.
Кевін

6

Javascript

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

Відповідь: Це попереджаєHello . concatМетод не змінює масив - це повертає масив, що містить конкатенацію масиву він закликав і будь-які інші передані аргументи.

15 правильних, 26 неправильних, 41 відповідь усього і оцінка (26-15) / 41 = 11/41 = 26,83%


25
ПопередженняHello, world!
SteeveDroz

14
Це попередженняHello
Нестабільність

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
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

Примітка. Припустимо, це Python 2.x, а не Python 3.


Під час запуску цей код створив UnboundLocalError: local variable 'True' referenced before assignment.


1
Піднімається aSyntaxError
нестабільність

Чи не повинно бути це False, True = True, False?

Це те, що воно є. (так чи інакше, я думаю, що це не має значення в цьому випадку)
TerryA

4
Це відбитки True.
WolframH

1
Піднімає UnboundLocalError.
Бакуріу

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

Перша спроба кодегольфа ...

хороша відповідь: Друки Some ungodly gibberish and then some more.та новий рядок

Рейтинг:

  • Максимальна кількість здогадів 6
  • Загальна кількість здогадів 11
  • кількість правильних здогадок 5 (0, якщо ви перебуваєте в режимі pedanitc)

Оцінка: 9% (55% в педантичному режимі)


5
ВідбиткиSome ungodly gibberish and then some more.
cardboard_box

6
Друк Some ungodly gibberishз нового рядка
MrZander

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
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);

Це мій перший гольф з кодом.

Правильна відповідь була: "щось середнє між 55 і 110". Це тому, що коли виконується оператор "sum + = i", він буде використовувати поточне значення i. Цей код може навіть виконуватися після завершення циклу for , в якому момент i має значення 11. Це робить максимально можливе значення 110 (і ви можете переконатися, що це побачите, якщо ви уповільнили лямбда в процесі тестування). Найменше можливе значення - сума (1..10), що становить 55.

  • Гарні відповіді: 0
  • Лише приблизно відповіді: 5
  • Кількість разів, коли була обрана найпопулярніша відповідь: 5
  • Всього відповідей: 8

оцінка: строго кажучи, ніхто не став правильно, тому оцінка повинна бути (5-0) / 8 = 62,5%. Якщо ми готові вважати "приблизно хорошими" як правильну відповідь, то оцінка (5-5) / 8 = 0%


4
Друкує невизначене число від 55 до 100 включно.
Ри-

Це просто надрукує 100.
Кевін

1
Друкує "випадкове" число від 0 (включно) до 110 (включно)
fjdumont

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

Я щасливий, що більшість людей зрозуміли це здебільшого правильно - імовірно, досить правильно, що вони будуть знати, що не помиляються у своєму коді!
redtuna

4

Python, -83,3%

Відповідь: друкується, a < bякщо входи рівні, a = bякщо перший більший, а a > bякщо другий більший.

a = input()
b = input()
print 'a', '<=>'[cmp(a, b)], 'b'
  • Гарні здогади: 11
  • Такі ж погані здогади: 1
  • Всього здогадів: 12

Пояснення:

cmp(a, b)повертається, 0якщо обидва аргументи рівні, 1якщо перший більше, і -1якщо перший менший, тому друкується неправильний символ порівняння.


7
Друкує a = b, якщо a> ba <b є a == b, або a> b, якщо a> b
Foon

друкує a = bдля введення a == b, a < bдля введення a> b, а a > bдля введення a <b
wim

2
Друкує, a = bякщо a> b, a < bякщо a == b, a > bякщо a < b. (Це, мабуть, мав на увазі @Foon.)
flornquake

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

1
Я думаю, що це краще, ніж показує оцінка. Якби я не видавався в режимі пошуку помилок, я, можливо, не знайшов би його.
WolframH

4

PHP, 100%

Перший раз, коли ви розміщуєте код затоки, сподіваємось, це не погано.

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

правильний вихід - "hellohelloworld"

оцінка становить (10 - 0) / 10 = 1 = 100%


9
Друкує hello world.
flornquake

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

О, ха-ха. Дарн PHP.
Ри-

'one' == 0=> true. Досить розумний.
примо

4

Perl: 100% (4-0) / 4

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

Ця програма друкує "3" без нового рядка. Perl розбирає цю інструкцію як

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

тому лише (1+2)аргумент передається як аргумент print.


3
Друк з 9подальшим переведенням рядка
3Doubloons

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

3

C #

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

3
Друкує суму значень ASCII кожної літери (500)
3Doubloons

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

Якщо чесно, я вперше побачив, що думав, що він надрукує "Привіт", але потім зробив подвійний знімок.
redtuna

3

CPython

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

правильний вихід "Привіт"

оцінка (14-3) / 19 == 57,9%


13
Нічого не друкує.
TerryA

1
Друкує Hello\nWorld!.
Бакуріу

2
Друкує Hello. (Залежність від реалізації.)
WolframH

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

3

C (оцінка: 4,45%)

Гарні здогади: 7
Максимум неправильних здогадів: 6 + 2 = 8
Всього здогадів: 6 + 7 + 3 + 2 + 4 = 22

Рішення: ??/ є триграфом для \, тому новий рядок виходить і scanfлінія коментується. Тому програма працює вічно, друкуючи Guess a number between 1 and 10:. Коментарі - це цитата з Моцарта (через 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);
        }
    }
}

Спойлер, як компілювати та запускати:

gcc test.c -триграфи


5
Коментарі - це просто відволікання. Програма "Відгадай випадкове число від 1 до 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)не запитуючи про введення
pascalhein

2
Щось зло приховано в коментарях, як вони виглядають як C ++.
Олександр

1
Врешті-решт друкується "Ви правильно здогадалися!", А також новий рядок, а потім закінчується.
Kaz Dragon

4
Злий коментар має щось спільне з триграфами.
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));
    }
}

Відповідь

Він друкує Padded value:(з новим рядком).

formatМетод String полягає в тому static, що формат передається в якості першого параметра. Тобто виклик вище прирівнюється до:

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

Кількість хороших відповідей: 2 Неправильні відповіді: 9

Оцінка : (9-2) / 11 = 63%


8
Це відбиткиPadded value: - 0012\n
копія

1
Це друкує "Padded value:` з наступним символом нового рядка.
Елвін Вонг,

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

3

С

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

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

Оцінка = (3-16) / 19 == -68,4%

Не забудьте свій рушник.


15
Друкується 42 +
нова лінія

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

Я щойно помітив вашу головоломку. Я б неправильно зрозумів xP Я програміст Java / C #, тому це моє виправдання ...
Кевін

3

C ++

#include <cstdio>

int main()
{
    int f;

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

    return 0;
}

Оцінка = (1 - 6) / 7 = -0,71428571428571 = -71,428571428571%


5
Це нічого не робить.
SteeveDroz

Не компілюється
f.ardelian

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

2

JavaScript

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

13
Це попереджає Z = false.
SteeveDroz

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

2

Пітон

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

print greeting().lower()

правильний вихід - 'hell0 w0rld'

оцінка (8-14) / 22 == -27,3%


7
Друкує: привіт світ
TerryA

14
Принтиhell0 w0rld
SteeveDroz

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

2

R: 100%

Це не образно, але може спантеличити деяких людей:

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

Як ви вважаєте, що це результат?

Редагувати :

Відповідь була 20. Через відсутність s в stringAsFactors(замість stringsAsFactors), аргумент не розпізнає , так що функція створити новий стовпець з ім'ям stringAsFactors. Через векторну переробку стовпчик містить 10 разів, TRUEякі перетворюються на 1s у сумі, отже, загалом 20, а не 10.

Ця відповідь у коментарях не була надана. Дано 3 відповіді (усі сказали10 більш-менш). Звідси оцінка 100%, я думаю.


Повертає значення 10.
SteeveDroz

1
Спочатку я думав, що повернеться 10. Підлий ... залишаючи, що один "s" дійсно змінює речі ...
Dason

1
@Dason Я тепер розумію, що придушення другого було б ще приємніше: можна вважати, що часткове узгодження буде правильним для нього, але виявляється, що це не так.
планування

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz

100%! Вітаю!
redtuna

2

Tcl

Натхненний ugoren

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

Вибачте, забув приклад рядка. Гаразд, біжи як

./charfilter.tcl "Привіт і до побачення, світ!"

Редагувати правильне рішення: зовсім не фільтрується. ( 6x )
Макс. Неправильна відповідь: 4x
Всього відповідей: 10
Оцінка: -0,2


5
Він просто друкує свій аргумент і насправді не фільтрує.
marinus

3
він друкує свої аргументи без " ", "&", "\".
pascalhein

Це кінець гри , будь ласка, оцініть себе за коментарями, які вище цього. Відредагуйте вміст і додайте хорошу відповідь, кількість хороших відповідей, кількість людей, які в основному відповіли на одне і те ж, загальну кількість відповідей та ваш бал . Не забувайте, що 2 поруч із коментарем означає 3 відповіді. Коментуйте вільно нижче цього.
SteeveDroz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.