Napisz program, który po uruchomieniu w różnych językach generuje inną bajtową permutację kodu w każdym języku. Dokładny kod źródłowy jest liczony jako jedna permutacja.
Tutaj „innym językiem” może być inna wersja (Py 2 i Py 3) lub różne standardowe flagi. Różna moc wyjściowa wymusza inną wersję.
W każdym języku obowiązują odpowiednie zasady dotyczące quine. Twój wynik jest obliczany jako (Language count)^6/(Code length in bytes)
, przy czym wyższy wynik jest lepszy.
Próba:
Jeśli kod działa AAB
i działa w trzech różnych językach, zwraca ABA
, AAB
a AAB
następnie jego wynik to 2^6/3
(tylko jeden z dwóch się AAB
liczy). W porządku, jeśli ABA
jest bez znaczenia.
AAB
drukowanyAAB
w języku 1 iABA
w języku 2, zakładam, że musi to być odpowiednia czcionka, jeśli jest postrzegana jako program w języku 1 i nie ma żadnych dalszych ograniczeń związanych z jego interpretacją jako program w języku 2. Czy to prawda?Odpowiedzi:
Befunge-98 , > <> , Gol> <> , Rozszczepienie , wumpusa , kard , wosk pszczeli i Alicja Wynik: 8 6 /88 = 2978,909
Wypróbuj w Befunge! Wypróbuj w> <>! Wypróbuj w Gol> <>! Wypróbuj w Fission! Wypróbuj w Wumpus! Spróbuj w Kardynale! Wypróbuj wosk pszczeli! Wypróbuj w Alice!
Weryfikacja!
Wiele języków 2D, wszystkie nadużywające zawijanie literałów łańcuchowych. Różnica w wynikach jest zatem:
> <>, Gol> <> i befunge-98 wszystko wydrukować kierunku do tyłu kodu (z wyjątkiem
"
), z trzech ostatnich znaków w różnych pozycjachR*"
,O"*
a"R*
odpowiednio. Wosk pszczeli ma również kod wstecz, ale trzy ostatnie znaki są przeplatane w pierwszej sekcji wyniku. Alice jest głównie do tyłu, z wyjątkiem wszystkich zbiegłych znaków ('
,\
i"
) przeniósł się do przodu zamiast.Wumpus jest jedyną rzeczywistą quine, Fission umieszcza
"
na końcu kodu zamiast na początku, a Kardynał umieszcza"
pomiędzy0
i5
blisko początku.Dowód różnych permutacji
Objaśnienia:
Befunge-98:
> <> i Gol> <>:
Szczerze mówiąc, niewiele tu zrobiłem. Jedyną różnicą między wykonywaniem tych dwóch języków jest
@
polecenie, które obraca trzy górne wartości stosu na różne sposoby dla każdego języka.Rozszczepienie:
Wumpus:
Kardynał:
Wosk:
Alice:
źródło
Perl 5 , Ruby , JavaScript (chrom), PHP , Python 2 , Python 3 , 1206 bajtów, wynik 6 6 /1206 = +38,6865671641791
Sprawdź poprawność Perla, Ruby, PHP, Python 2 i Python 3 online!
Uwaga : uruchomienie powyższego programu w konsoli Inspector w Chrome (która wydaje się obsługiwać argumenty pozycyjne
console.log
) zwraca właściwy program.Wyjaśnienie
Okazało się to o wiele dłużej, niż się spodziewałem, a moje życie też stało się trochę trudniejsze, więc prawdopodobnie będę go majstrować. Chciałbym również dodać więcej języków, ale muszę znaleźć coś, co nie
$
miałoby nic przeciwko sigil ...Jest to dość dużo standardowy format Quine gdzie obliczenie środki do wykorzystania jest trochę inna dla każdego języka: w Ruby
%q&
jest stosowany, wykorzystuje PHP'
, JavaScript (node.js) wykorzystuje`
i Perl 5 wykorzystujeq(
...)
. Ponieważ zmieniają się tylko cudzysłowy, reszta programu jest nadal wykonywalna i poprawna składnia w każdym języku. Python 2 i 3 są owinięte wokół poprzedniego programu przy użyciu"""
Python 2 i'''
Python 3.Wynikowe programy Perl i Ruby nie są standardowymi quinesami, dodatkowe
q
/%q
s są dodawane przy każdej iteracji, ale pierwszy program zwraca poprawnie.Wyniki są następujące:
eval($_=q&
...q&);printf($x=q&
...q&,
...);//#'%`'%`'%`'%`''''''''''''"""
...eval($_=%q&
...%q&);printf($x=%q&
...%q&,
...);//#`'`'`'`'''''''''''''"""
...eval($_=`
...`);printf($x=`
...`,
...);//#%q&'%q&'%q&'%q&'''''''''''''"""
...eval($_='
...');printf($x='
...',
...);//#`q&%`q&%`q&%`q&%''''''''''''"""
......
_="""
...""";
...q="""
...''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
...
_='''
...''';
...q='''
...""""""""""""''';print(_.format(Q,_,q[0:-12]+R,"%"))
Dużo to przerabiałem, mam nadzieję, że nie przegapiłem tutaj żadnego klucza. Nadal mam spory sposób, aby znaleźć się gdzieś blisko wyniku Jo Kinga ...
źródło
Galaretki i M , 2 6 /14 = 4,57
Wypróbuj w galarecie!
Wypróbuj w M!
Ɗṙ@ȮṾ1“Ɗṙ@ȮṾ1”
w galarecie1Ɗṙ@ȮṾ“1Ɗṙ@ȮṾ”
w M.źródło
Quine
w PHP?Pyton 2 i pyton 3 , 2 6 /61 = z 1,05
Wypróbuj w Python 2!
Wypróbuj w Python 3!
Zaoszczędzono 12 bajtów dzięki Jo Kingowi.
Odbitki w języku Python 2
Odbitki w języku Python 3
Wykorzystuje to fakt, że
1/2
jest.5
w Python 3 i0
Python 2.źródło
Atakujących / GolfScript 72 bajtów, wynik 2 6 /72 = 8/9 (~ 0,888 ...)
Zawiera pojedyncze końcowe miejsce w pierwszych dwóch wierszach.
Wypróbuj online w Bash.
Wypróbuj online w GolfScript.
Po prostu modyfikacja odpowiedzi @ jimmy23013 na wyzwanie „ Write a Polyquine ” . Dokonana modyfikacja polegała na usunięciu spacji po trzeciej linii i zmianie
\n"+@n.;
na\n "+@n;
.Bash wydrukuje linie 1 i 2 w następujący sposób:
A GolfScript wydrukuje linie 1 i 2 w następujący sposób:
Tutaj program bazowy, wyjście Bash i dane GolfScript odpowiednio z nowymi wierszami zastąpionymi przez
\n
:źródło