Мандолина Куайн


25

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

Критерии подсчета (добавьте бонусы / процентные проценты вместе для общего процента):

  • Ответы должны быть не менее 4 символов
  • Программа должна содержать хотя бы один алфавитный символ в своем источнике, поэтому, например, 12345!@#$%^&*()дисквалифицируется
  • + 750%, если используемый язык не является полным по Тьюрингу (я смотрю на вас, HTML!)
  • -15%, если решение не читает свой источник из любого места в любой форме
  • -20%, если вы можете оставить только каждого 5-го персонажа и по-прежнему формировать квин

Оценка измеряется количеством символов в первой программе.

Пример (не настоящие программы):

Если 123456789abcdefи 13579bdfобе являются квинами, то счет равен 15. Кроме того, если 159dтакже есть квинна, то итоговая оценка равна 12.

Это код-гольф, поэтому выигрывает самая низкая оценка.


2
@ hosch250 Оригинальная программа не была бы квинной, потому что она не печатала бы эти пробелы. То же самое касается ненужных комментариев.
Jwosty

1
Да, я никогда раньше не программировал квин, и понятия не имею, как это сделать, не читая исходный код на C ++. Я видел их в C ++ раньше, хотя!
Hosch250

1
Вы утверждаете: «-20%, если вы также можете удалить каждые 4 символа и при этом сформировать квайн». Но технически это не то, что происходит в вашем примере. Вы имеете в виду, что вы можете сделать это во второй раз?
mmumboss

4
Бонусы являются аддитивными или мультипликативными? То есть, если моя программа имеет длину 10 символов и соответствует как бонусу -15%, так и бонусу -20%, ее счет будет 10 * (1 - 0,15 - 0,2) = 6,5 или 10 * (1 - 0,15) * (1 - 0,2) = 6,8? Я предполагал последнее, но было бы хорошо получить четкое разъяснение.
Илмари Каронен,

1
Разве это не Мандолина Куайн, а не Гильотина? Гильотины делают один чистый, как правило, смертельным, режут и голова откатывается. Мандолины делают из множества равномерно расположенных кусочков. :)
Джонатан Ван Матре

Ответы:


24

PHP, 4 знака - 15% - 20% = 2,72 2,6 балла

ABCD

Да, PHP - полный по Тьюрингу язык. Никто не сказал, что я должен использовать какие-либо из его реальных функций программирования. ;-)

Изменить: Изменение оценки на основе разъяснения, что бонусы являются аддитивными, а не мультипликативными.


Это работает в ASP, возможно.
Исмаэль Мигель

2
@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ Я сдаюсь. : P
Jwosty

17
На самом деле, использование реальных функций программирования PHP не рекомендуется.
Рифмовая

1
Это не правильный quine. Тем не менее, хороший ответ
MilkyWay90,

14

TI BASIC 4 - 35% = 2,6

Возможно, я их неправильно понимаю, но я думаю, что я также имею право на бонусы -15% и -20%, то есть у меня наименьший возможный балл.

Я могу написать программу:

123i

который выведет, 123iгде я, конечно, мнимая единица. При удалении 1-го и 3-го символа остается только 2iвывод2i


Не совсем ... «12i» выведет «12i», а «2» выведет «2» при минимальной оценке 1,95.
intx13

На самом деле, '2i' получает 1,3, а если пустая программа считается квинной, то 'i' получает 0,65.
intx13

4
@ intx13: « Ответы должны быть длиной не менее 4 символов. »
Илмари Каронен,

Ах, я пропустил это!
intx13

Обыграй меня;)
Timtech

13

Питон - 95

Отличный вызов Я думал, что это было довольно умно, и на самом деле законное решение!

00;"#";print(open(__file__).read())
0#;XpXrXiXnXtX(XoXpXeXnX(X_X_XfXiXlXeX_X_X)X.XrXeXaXdX(X)X)

1
Ницца! Обратите внимание, что это технически не работает как есть, так как вы в конечном итоге удаляете символ новой строки при создании альтернативной квуны. требуется немного настроить IOW
Claudiu

3
@Claudiu Ну, я думаю, это зависит от того, считает ли OP символ новой строки. Если это так, вы можете просто добавить новую строку между каждой строкой. 96 символов
qwr

Конечно,
новая строка

11

Гольфскрипт, 5 баллов

{hai}

это функция, которая при выполнении будет запускать (несуществующую) функцию hai. Однако он не выполняется, а печатается после завершения программы, включая внешние скобки. Удаление друг друга приводит к получению:

{a}

Хром, я знаю :-)


Я полагаю, что вы также имеете право на оба бонуса: ваша программа не читает свой собственный исходный код, а также {}является квине.
Илмари Каронен,

@IlmariKaronen, трудно сказать, что считается чтением собственного исходного кода. Считаются ли оценивающие функции? Учитываются ли оценки строк? Что касается другого бонуса - может быть, он просто плохо сформулирован, но я читаю «удалить каждые четыре символа» как «оставьте каждый пятый символ», что оставило бы меня только с одной скобкой (хотя {ab0}квалифицируется, если это 0может быть тот, который хранится)
Джон Дворжак

Это действительно плохо сформулировано, но пример предполагает, что это означает «сохранить каждый четвертый символ». Во всяком случае, как вы заметили, {ab0}квалификация в любом случае.
Ильмари Каронен,

Кажется, {hi}также работает, будет короче (4 символа), а также будет претендовать на все бонусы. (Кажется, сценарий {iоценивается по {iкакой-то причине ...)
Claudiu


8

HQ9 + - 4 * 7,5 * 0,8 = 24 балла

Q+++

Все еще quine с каждым вторым персонажем:

Q+

... и каждый пятый

Q

Извините, я не удержался. :)


7

HTML / Markdown, 4 * 7,5 = 30

HHHH

Я признаю, что это неубедительно, но на самом деле это не противоречит какому-либо правилу в этом вопросе. За исключением того, что HTML / Markdown не может считаться настоящим языком программирования.


Я предполагаю, что не указал, что программы, которые не могут быть разделены на несколько меньших, недействительны. Пересматривая вызов ...
Jwosty

@Jwosty: тогда "ХХХХ" в HTML победит. Примечание 5555не работает, потому что оно не имеет буквенного символа
Claudiu

Вам нужен буквенный символ.
qwr

@qwr: Забыл об этом, глядя на GolfScript. Удалены.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

Хм ... Полагаю, это действительно так: P
Jwosty

5

! / Bin / ш

Мне так понравилось решение qwr, что я беззастенчиво сделал порт для оболочки POSIX. Пожалуйста, не сохраняйте его в файле с пробелами.

: '#';cat $0

#c a t   $ 0

Начните удаление с символа № 1 и считайте символы новой строки как символы. Вторая четверка - это, конечно,

 #;a 0
cat $0

Пожалуйста, подтвердите ответ qwr вместо этого!


3

Баш, 23

Новая строка - это персонаж!

Некоторые беспорядочные комментарии работают, поэтому, когда удаляются все остальные символы, начиная с первого, комментарий становится кодом, а код становится комментарием:

#cRaRtR R$R0R R#
cat $0

После удаления любого другого символа ( включая новую строку ):

cat $0 #ct$

это не quine, если он читает свой собственный источник, хотя.
daniero

@daniero «-15% , если решение не читает его источник из любой точки мира в любой форме» означает , что вы которые разрешено читать источник программы (но вы не получите бонус)

@daniero О, я посмотрел Википедию, я думаю, это обман ... но это код-гольф

Я всегда одобряю кошек!
Антонио Раганьин

2

Brainf ** k, 37 - 15% = 31,45

Злоупотребление портативным интерпретатором Brainfuck

+A[B-C<D+E]F-GÿH<I<J<K<L<M<N<O[P.Q>R]

Начните удаление со второго персонажа.


Когда я запускаю это, я получаю в B-C<D+E]F-GÿH<I<J<K<L<M<N<O[P.Q>R]качестве вывода, так что это не хватает некоторых символов.
Сильвестр

Это Brainfuck, или определенный диалект Brainfuck, который работает только на одном переводчике?
user253751

@immibis Это регулярно (эти заглавные буквы могут быть пробелами или символами или чем угодно). Тем не менее, вы должны использовать портативный переводчик, связанный с ответом.
Timtech

1
Первая часть идет влево до тех пор, пока не найдет ÿ, и связанный интерпретатор не сохранит код 5000 байт до начала ленты данных. Это вряд ли портативный Brainfuck.
user253751

0

HQ9 + T, - 4 * 0,8 = 3,2 балла

qqqq

Это действительный квин (ish) и квин каждый второй и пятый символ. Я не мог устоять. , , ,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.