The Complement Cat


24

Cel Napisz pełny program, który wypisuje (do STDOUT lub najbliższej alternatywy) dowolny ciąg tekstu, nie dłuższy niż 64 znaki. Dość proste, prawda? Cóż, oto haczyk: Nie możesz używać żadnych znaków, które były obecne w wynikach poprzedniej odpowiedzi. Zgadza się, żaden z nich.

Tak więc starasz się być ostatnią odpowiedzią w sumie przez trzy dni. Oznacza to, że nie chcesz, aby nikt odpowiedział na pytanie w ciągu 72 godzin od opublikowania Twojego pytania.

Niektóre zasady

  • Twoja odpowiedź (i wynik) może zawierać tylko drukowalne znaki ASCII, znaki nowej linii (w tym zwroty karetki) i tabulatory.
  • Wynik odpowiedzi może nie być taki sam, jak wynik innej odpowiedzi. Dwa wyjścia są takie same wtedy i tylko wtedy, gdy używają dokładnie tych samych znaków.
  • Możesz użyć dowolnego języka, który nie został specjalnie stworzony do tego wyzwania, nawet jeśli został on stworzony po tym wyzwaniu. (Oczywiście ten język musi być testowalny).
  • Nie możesz używać żadnego wcześniej używanego języka.
  • Twój wpis może nie zawierać komentarzy. Możesz oczywiście udostępnić dodatkowy program z komentarzem.
  • Nie możesz odpowiadać dwa razy z rzędu.
  • Twój program musi mieć co najmniej 1 bajt.

Format wpisu

Twoja odpowiedź powinna wyglądać następująco:

# {Language}
Uses: `characters present in the output`

Does not use: `characters used in the previous output` from [previous submission, language](link-to-previous-submission]

    {program}

Outputs:

    {output}

Dziękujemy za wyjaśnienie.


3
Jestem bardzo zdezorientowany co do pytania. Muszę wydrukować dowolny ciąg znaków o wartości <= 64 znaków i nie mogę użyć znaków w danych wyjściowych ostatniego przesłania?
Lynn

1
@ Mauris Tak, to prawda.
Conor O'Brien

3
Ah, dobrze; fragment o „przestrzeni znaków” jest naprawdę mylący dla IMO. Ten termin nic nie znaczy ... Może powinieneś go przepisać?
Lynn

1
@ question_asker Jeśli nikt nie wymyśli odpowiedzi na twoje, wygrywasz wyzwanie (i dostajesz zielony znacznik wyboru). Na przykład, jeśli napisałem program, który wypisuje każdy znak ASCII do wydrukowania, nie byłoby możliwe podążanie za nim (ignorując te irytujące języki, które generują dane wyjściowe dla pustego programu).
ThisSuitIsBlackNot

1
@ question_asker Twój kod nie może zawierać żadnego ze znaków z wyniku poprzedniej odpowiedzi; twój wynik nie może używać tego samego zestawu znaków, jak każde poprzednie wyjście. Jeśli kod dla pierwszej odpowiedzi jest fooi wyprowadza barkod do następnej odpowiedzi nie może zawierać b, alub r; Odpowiedź nie późniejsze wyjście puszka abr, arb, bar, bra, rab, lub rba. (Tak, zgadzam się, że to było bardzo mylące.)
ThisSuitIsBlackNot

Odpowiedzi:


2

Rubin

$><<'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" '

Nie korzysta abcdefghijklmnopqrstuvwxyz{}\~_^[]|`z poprzedniej odpowiedzi .

Drukuje, a zatem używa, ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"spację i nowy wiersz.


5

Pyt

Zastosowania: ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg.

Nie używa: !"#$%&'()*+,-./0123456789:;<=>?@[\]^_`abcdefghijklnsm{|}~z poprzedniego zgłoszenia w Octave .

Kod:

pMCMryyTyyytytttT

Wydajność:

()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg

Czy jest tam miejsce? Chyba nie ma żadnych kart ani nowych linii, które nie są wyświetlane? Wygląda na to, że następna odpowiedź musi być odpowiedzią na spację (lub przynajmniej blisko) ...
Stewie Griffin

Brak białych znaków na wydruku, który jest mój; Nie wiem jednak, czy język dołącza nowy wiersz
Lynn

5

Brainfuck

Wykorzystuje: -.

Nie używa: !"%&')+,0123456789<=>ABCDEFGHIJKLNOPRSTWXYZ]`acefghjlnoprstux{| z CJam . Dzięki SuperJedi

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.-------------------------------------------------------------------------------------------.-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.

Wyjścia:

; (){}[]"'

2
Można to zmienić tylko na użycie -i .. To moja propozycja na potrzeby wyzwania.
SuperJedi224,


2
Przepraszam, podjąłem tę usesczęść, aby oznaczać, że były to byty użyte w kodzie. Daj mi cholerną minutę, zanim zaczniesz używać głosów negatywnych.
Seadrus,

3

CJam

Wykorzystuje: 0123456789:;_bc

Nie używa: !GSaefgimnoprstuwz poprzedniego zgłoszenia MATLAB

183185535513294435547695067785526290427932963043839368372854060721693597139131275368051870173845056551161192991350318233082749156998652_;128b:c

Wyjścia:

 !"%&')+,0123456789<=>ABCDEFGHIJKLNOPRSTWXYZ]`acefghjlnoprstux{|

Nie mogę tego pokonać.
Mutador

3

Oktawa

Wykorzystuje: !"#$%&'()*+,-./0123456789:;<=>?@[\]^_``abcdefghijklnsm{|}~i nowy wiersz w danych wyjściowych.

Nie używa: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"z poprzedniego zgłoszenia w Microscript .

Kod:

[' ':'@','[':'`','{':'~',('@'+' '):('>'+'/')]

Wydajność:

ans =
 !"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~`abcdefghijklm

Wyjaśnienie:

Jest to zbiór kolejnych znaków ASCII. Kod jest równoważny z:

[char(32:64) char(91:96) char(123:126) char(96:109)]

Gdzie char(32:64)są znaki ASCII od 32 do 64 (spacja do @). Aby uzyskać część alfabetu na końcu wyniku, musiałem dodać znaki, ponieważ nie mogłem użyć ai m. @+wynosi 96 (``) i >+/wynosi 109 (m)


Jak to działa?
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ, wraz z wyjaśnieniem =)
Stewie Griffin

3

Perl

Wykorzystuje: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz}(ze spacją)

Nie używa: "#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~z poprzedniego zgłoszenia w Nieczytelnym

eval q!print uc q&} abcdefghijklmnopqrstuvwxyz&!and eval q}print q&0abcdefghijklmnopqrstuvwxyz&}and eval q&print length for qw!a bc def ghij klmno pqrstu vwxyzab cdefghij klmnopqrs!&

Wyjścia:

} ABCDEFGHIJKLMNOPQRSTUVWXYZ0abcdefghijklmnopqrstuvwxyz123456789

… Przychodzi mi na myśl stary żart o małpach piszących kod…

Możesz uruchomić program online.

Ten program nadużywa dziwnych funkcji Perla do pisania kodu w prawie dowolnym podzbiorze ASCII:

  • W niektórych przypadkach można wywoływać funkcje bez nawiasów (niepewne co do dokładnych zasad)
  • q#text#gdzie #może być prawie każda postać jest taka sama jak"text"
  • qw#word1 word2 word3# jak wyżej to to samo co ["word1", "word2", "word3"]
  • for pętle i inne rzeczy mogą być dołączane do linii, eliminując wszelkie znaki interpunkcyjne

3

JavaScript ES6

Poprzednia odpowiedź: /codegolf//a/67406/39022

Źródło nie zawiera !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ, spacji ani nowego wiersza.

alert`abcdefghijklmnopqrstuvwxyz{}\\~_^[]|\``

Wydajność:

abcdefghijklmnopqrstuvwxyz{}\~_^[]|`

(Małe litery, nawiasy klamrowe, ukośnik odwrotny, tylda, podkreślenie, karat, nawiasy kwadratowe, rura i odwrót)


Uważam, że masz na myśli cięcie wstecz, a nie do przodu . Ale miłe wejście!
ETHproductions

@ETHproductions Masz rację co do odwrotnego ukośnika.
SuperJedi224,

2

Python 3

Zastosowania: !CGaceilmnoprstw z.

print("Germanic Capitalization is awesome!")

Po prostu drukuje Germanic Capitalization is awesome!bez ograniczeń. Powodzenia!


2

Microscript II

Poprzednia odpowiedź: tutaj. Program nie używa średnika, spacji, nawiasów, nawiasów klamrowych, nawiasów kwadratowych, pojedynczych cudzysłowów prostych ani podwójnych cudzysłowów prostych. Ten program byłby o wiele krótszy, gdyby nie musiał unikać cytatów.

Dane wyjściowe obejmują: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"i nowy wiersz.

Program:

97Kp98Kp99Kp100Kp101Kp102Kp103Kp104Kp105Kp106Kp107Kp108Kp109Kp110Kp111Kp112Kp113Kp114Kp115Kp116Kp117Kp118Kp119Kp120Kp121Kp122Kp""P65Kp66Kp67Kp68Kp69Kp70Kp71Kp72Kp73Kp74Kp75Kp76Kp77Kp78Kp79Kp80Kp81Kp82Kp83Kp84Kp85Kp86Kp87Kp88Kp89Kp90Kp123456789qh

Dokładna wydajność:

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ"123456789"

1
I Does not incudetrochę.
Conor O'Brien

2

MATLAB

Zastosowania: !GSaefgimnoprstuwi nowa linia.

Nie używa: !CGaceilmnoprstw zz poprzedniego zgłoszenia, Python 3 .

[83,116,101,119,105,101,32,71,114,105,102,102,105,110,32,105,115,32,97,32,112,114,111,109,105,110,101,110,116,32,103,101,110,105,111,117,115,33,'']

Wydruki:

ans =

Stewie Griffin is a prominent genious!

2

Nieczytelne

Wykorzystuje: "#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~

Nie używa: ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgz poprzedniego zgłoszenia w Pyth

„” „” „” „„ ”„ ”„ ”„ ”„ „” „„ ”„ „” „„ ”„ „” „„ ”„ ” „” „” „” „” „„ ”„ ”„ „” „” „” „„ ”„ „” „„ ”„ ”„ ”„ ” „” „” „” „” „„ ”„ ”„ „” „” „” „„ ”„ „” „„ ”„ „” „„ ” „”„” „” „” „„ ”„ ”„ „” „” „” „„ ”„ „” „„ ”„ „” „„ ”„ ” „” „” „” „„ ”„ ”„ „” „” „” „„ ”„ „” „„ ”„ „” „„ ”„ ” „” „” „” „„ ”„ ”„ „” „” „” „„ ”„ „” „„ ”„ „” „„ ”„ ” „” „„” „” „” „” „„ ”„ ”„ „” „” „” „„ ”„ „” „„ ”„ ”„ ”„ ” „” „” „” „„ ”„ ”„ „” „„ ”„ „” „„ ”„ „” „„ ”„ „” „„ ” „” „” „” „„ ”„ ”„ „” „„ ”„ ”„ ”„ „” „„ ”„ „” „” „” „ „”„” „” „” „” „„ ”„ ”„ ”„ ”„ ”„ ”„ „” „„ ”„ „” „” „” „

Wyjścia:

"#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~

Jeśli się zastanawiasz, tak, ręczne programowanie w tym języku jest bolesne, więc stworzyłem ten skrypt (w JavaScript), aby wygenerować kod:

var program = `"`,
    output = "\"#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`{|~";
for(var i = 1, c = 0; c < output.length; i++) {
  program = `'""` + program;
  if(i == output.charCodeAt(c)) {
    program = `'"` + program;
    c++;
  }
}
program;

Użyłem interpretera Pythona dla Nieczytelnego tutaj, aby uruchomić kod.


Posiadanie tam miejsca utrudniłoby życie dla następnego =)
Stewie Griffin

@StewieGriffin To prawda. Czy jest już za późno na edycję? xD TBH, myślę, że to wyzwanie może trwać o wiele dłużej, ponieważ istnieje wiele języków, w których zmienne są ustawione dużymi lub małymi literami, więc tylko jeden znak byłby prawidłową odpowiedzią. (Mimo że nie byłoby to zbyt interesujące i bardzo ułatwia kolejną odpowiedź!)
user81655

1
Myślę, że jest już za późno. Ktoś może pracować nad rozwiązaniem, na przykład w białych znakach, i nagle dodanie spacji w danych wyjściowych prawdopodobnie ich zdenerwuje.
Stewie Griffin,

@StewieGriffin Tak, to też było moje rozumowanie.
user81655,

1

GolfScript

Zastosowania: przestrzeń, znak nowej linii, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Nie używa 0-9A-Za-z{ani spacji z poprzedniego przesłania w Perlu .

Kod:

'!'.!=('['.!=,>''+

Wyjście:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ

I ostatnia linia.

Wypróbuj tutaj.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.