Мандолінова квітка


25

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

Критерії балів (додайте бонуси / відсотки пені разом за загальний відсоток):

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

Оцінка вимірюється кількістю символів у першій програмі.

Приклад (не реальні програми):

Якщо 123456789abcdefі 13579bdfобидві лайки, оцінка дорівнює 15. Крім того, якщо 159dтакож є кволка, то підсумкова оцінка дорівнює 12.

Це код-гольф, тому виграє найнижчий бал.


2
@ hosch250 Оригінальна програма не була б королевою, оскільки вона не друкувала б пробіли. Те саме стосується і зайвих коментарів.
Jwosty

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

3
@Claudiu Добре, я думаю, це залежить від того, чи вважає ОП новий рядок персонажем. Якщо так, ви можете просто додати новий рядок між кожним рядком. 96
годин

Звичайно, новий рядок - це персонаж ...
mbomb007

11

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

{hai}

це функція, яка при виконанні виконуватиме (неіснуючу) функцію hai. Однак він не виконується, а надрукується після закінчення програми - включаючи зовнішні дужки. Видалення один одного символів дає:

{a}

Кульга, я знаю :-)


Я вважаю, що ви також маєте право на обидва бонуси: ваша програма не читає власний вихідний код і теж {}є квинтом.
Ільмарі Каронен

@IlmariKaronen важко сказати, що вважається читанням власного вихідного коду. Чи враховуються нецінні функції? Чи враховується оцінка рядків? Що стосується іншого бонусу - можливо, це просто погано сформульовано, але я прочитав "видалити кожні чотири символи" як "тримати кожного п'ятого символу", що залишило б мені лише одну дужку (хоча {ab0}кваліфікується, якщо 0може бути той, що зберігається)
Джон Дворак

Це дійсно погано сформульовано, але приклад припускає, що це означає «зберігати кожного четвертого символу». У будь-якому випадку, як зазначаєте, {ab0}кваліфікується в будь-якому випадку.
Ільмарі Каронен

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


8

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

Q+++

Все-таки королева з кожним другим персонажем:

Q+

... і кожен п'ятий:

Q

Вибачте, я не втримався. :)


7

HTML / Відмітка, 4 * 7,5 = 30

HHHH

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


Я думаю, я не вказав, що програми, які не можна розділити на менші, не є дійсними. Перегляд виклику ...
Jwosty

@Jwosty: тоді "HHHH" у HTML виграє. Примітка 5555не працює, оскільки вона не має алфавітного символу
Клавдіу,

Вам потрібен алфавітний символ.
qwr

@qwr: Забув це при перегляді GolfScript. Вилучено.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

Хм ... я гадаю, що це дійсно: P
Jwosty,

5

! / бін / ш

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

: '#';cat $0

#c a t   $ 0

Почніть видалення з символу № 1 і рахуйте нові рядки як символи. Друга квінта, звичайно:

 #;a 0
cat $0

Будь ласка, підкажіть відповідь qwr замість цієї!


3

Баш, 23

Newline - персонаж!

Деякі безладні коментарі працюють, так що коли кожен інший символ, починаючи з першого, видаляється, коментар стає кодом, а код стає коментарем:

#cRaRtR R$R0R R#
cat $0

Після того, як кожен інший символ ( включаючи новий рядок ) видаляється:

cat $0 #ct$

це не королева, якщо вона читає власне джерело.
daniero

@daniero «-15% , якщо рішення не читає його джерело з будь-якої точки світу в будь-якій формі» означає , що ви які дозволено читати джерело програми (але ви не отримаєте бонус)

@daniero о, я подивився на wikipedia Я вважаю, що це обман ... але це код-гольф

Я завжди підтримую котів!
Антоніо Рагагнін

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, який працює лише на одного перекладача?
користувач253751

@immibis Це регулярно (ці великі літери можуть бути пробілами, символами чи будь-чим). Однак ви повинні використовувати портативний перекладач, пов'язаний з відповіді.
Timtech

1
Перша частина залишається лівою, поки вона не знайде ÿ і пов'язаний інтерпретатор зберігає код 5000 байт до початку стрічки даних. Це навряд чи портативний Brainfuck.
користувач253751

0

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

qqqq

Це дійсна квінка (іш) і лайка щосекунди та п’ятої таблиці. Я не втримався. . . .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.