Найшвидший лис на Сході


15

У дусі Hello world! без повторення

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

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

Зауважте, що умовою виграшу є , тобто виграш відповіді з найвищим голосом.

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


Боюся, це, мабуть, занадто важко, якщо не відверто неможливо. Hello world!без повторень було досить важко, що людям доводилося вдаватися до дуже нішевих мов, або відверто взагалі не вдалося повністю вирішити завдання, а над цим значно важче.
FireFly

3
Добре, що це неможливо в C. Ви не можете викликати функції або використовувати макроси.
Оберон

Рекомендую: надрукувати даний рядок якомога менше повторних символів .
прим

@FireFly не знадобився багато часу, щоб отримати відповіді :)
SirDarius

3
@tmartin Ні, це не так. Пов'язане запитання сприяє повторенню, тоді як це питання карає його.
Герріт

Відповіді:


32

Microsoft Word з 97 по 2003 рік (і деякі версії Mac Word) - 10 символів

Немає повторів, але не відповідає специфікаціям - 10 символів:

=rand(2,1)

Вихід:

The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.

Відповідає специфікаціям, окрім написання великої літери та пунктуації, одне повторення - 10 символів:

=rand(1,1)

Вихід:

The quick brown fox jumps over the lazy dog.

Новіші версії Microsoft Word використовують, =rand.old(1,1)що дублює dта 1.

Можливо, існує спосіб використовувати поле {=SUM(3,-2)}як вхід до rand (), але в моїй установці виникають проблеми з полями, а саме вони не працюють ...

"Боб" підтвердив, що {=SUM(3,-2)}(з деякими труднощами) можна використовувати для заміни першого 1, але =повторюється ...

=rand({=SUM(3,-2)},1)

Якщо ви отримаєте Word для оновлення SUMспочатку, вихід:

The quick brown fox jumps over the lazy dog.

Я не впевнений, що даний синтаксис є правильним, але у мене немає жодної старої системи, щоб перевірити його. Однак для нових версій воно повинно бути =rand.old(1,1). Я припускаю, що ви намагаєтесь використовувати 3-2 для заміни першого 1, але, здається, це не працює для мене в 2010 році з rand.old або rand.
Іссі

У мене тут також немає системи, перевіряю, коли повернусь додому. Можливо, потрібно використовувати дужки { ... }як роздільники, але я впевнений, що вирази можна використовувати в будь-якій функції. Якщо ні, я перегляну!

2
Я можу підтвердити {=SUM(3,-2)}роботи в Word 2007. Але метод трохи складний. Спочатку потрібно вставити код поля (Ctrl + F9). Потім клацніть правою кнопкою миші => поле редагування => формула => розширений => введіть формулу. Оскільки введення його безпосередньо не працює з будь-якої причини. Тепер натисніть на поле та оцініть за допомогою Shift + F9. І додамо=rand.old()
Боб

Чи потрібно використовувати =SUMабо просто використовувати арифметичні оператори безпосередньо, як 3-2?
supercat

@supercat - Ми спробували це, і чомусь Word не сприймає вирази як параметри =rand(), наприклад, =rand(3-2,1)було б ідеально. Я насправді не намагався =rand({=3-2},1), але це має працювати так само, з дублюванням =.

17

Сліптінг - 36 символів

덆둥긇굵늖꽫긆깲닷덮긂롦닲롸껂걪덖륰댲걯덦넬댢건늆넠닆굺뎒걤닶댬首坼

(очікує порожнього введення)

Пояснення:

Push the string "the quick brown ,fo,x, jumps ove,r the lazy dog,"
덆둥긇굵늖꽫긆깲닷덮긂롦닲롸껂걪덖륰댲걯덦넬댢건늆넠닆굺뎒걤닶댬
Retrieve last character from the string (",")
首
Regular expression string-split
坼

Результатом є список ["the quick brown ", "fo", "x", " jumps ove", "r the lazy dog", ""], який автоматично об'єднується в єдиний рядок для виведення.


1
Я рахую 105 байт, не кажучи вже про кілька повторів. Char 235 , наприклад, використовується 20 разів.
прим

11
"Не повинен повторювати жодних символів ", не "не повинен повторювати жодних байтів".
Plutor

3
Я не здивований Тімві, ваша власна мова ідеально підходить для викликів "без повторних символів".
П'єр Арло

13

Perl 6 (76 символів, без парних)

Сценарій (буде керуватися програмним забезпеченням на борту, але є En Space до Thin Space, NL та LF та вкладка)

say EVAL    lc q{<the Quiţk Brown fïX jUmpS ůvťɲ Tɨå ìšzY dOg>~&(127.CHR
x
43)}
  • Він використовує EVAL (ще раз дякую, що зробив це великими літерами) та <foo bar>цитує слова, які підтримують усі спеціальні символи пробілу як роздільники слів.
  • say приєднується до списку рядків, використовуючи пробіл, тут добре працює :)
  • Далі я використовую ~&і 127 для перенесення перетасовки на звичайну ascii. Додаткове ускладнення: 'Ŭ'.lcстає 'ŭ'таким, що стає sзамість rпотрібного мені. Додавання 128 додаткових разів допомагає :)

Версія із зворотною косою рисою замість символів Unicode показує, що вони різні

say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}

Якщо ви хочете перевірити, чи всі вони унікальні, використовуйте цей скрипт (я раніше Qb"string"мав базове котирування лише із зворотними косими нахилами)

.say for 
Qb"say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}"
.comb.Bag.grep(*.value > 1).map: {.key.ord.base(16) ~ " $_"  }

Або виконати його безпосередньо, використовуючи

EVAL Qb"say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}"

10

PHP - 67 байт

<?echo$g^¶¥€¼½ˆ•.${~˜}=ÂÍåœÌýü¡¦Åþ¾’‹Ï†£‘ƲáºëÓâæݗߙ󖎸·³ø‰ï®ÜØÔ;

Скопіюйте-Вставте, збережіть як латинську-1 (Ansi).

Це 7-байтовий xor-шифр, використовуючи рядок ¶¥€¼½ˆ•для солі.

Один повторив характер: $.


Ви можете скоротити його ще на 3 символи, використовуючи, <?=оскільки ви вже використовуєте короткі теги
Kristoffer Sall-Storgaard

Ах, вибачте, щойно помітив, що ви вже використовуєте =
Kristoffer Sall-Storgaard

@ KristofferSHansen Я думаю, що слід eval('Return$g=binary;')уникнути $повторень (можливо, трохи інверсії), щоб уникнути повторення, і тоді також =було б звільнено.
прим

Відкриваючий тег не повинен включатися до числа байтів.
TecBrat

@TecBrat Фінал ;можна замінити закриваючим тегом: чи не враховувати це також? Словом, я не згоден. Якщо ваш код не працює як є, це не повна програма.
прим

0

Haskell, 71 персонаж

map(\c->chr$mod(ord c)128)"tŨeఠquiţkĠbŲɯwnȠfѯxРjѵŭŰsܠůvťѲठѴѨѥਠlšzyଠɤկg"

Ще одне 7-бітове модульне рішення.

Повторні символи:

c 3
d 2
m 2
o 2
r 2
( 2
) 2
" 2

Перший раз гольф з Haskell; будь хто досвідченіший у мові, сміливо вдосконалюйтесь. Я хотів зробити анонімну функцію точковою, щоб уникнути згадування змінної двічі, але не знаю, чи буде це чиста вигода.


0

JS, 35

btoa("¶ªº'$nº0ú1驲ޮØ^¬òv")

(так ... подвійна цитата повторюється. Вихід поганий. Це ще не серйозна відповідь.)


-2

Пакетний сценарій: 7 байт

echo %1

Якщо скрипт названий hello.bat, введіть це в командному рядку:

hello.bat "The quick brown fox jumps over the lazy dog"

Це, це так ... справа нечутлива! (Я маю на увазі, воно не надруковує саме те, про що йдеться в запитанні.)
Пан Лістер,

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