To Anagram Quine, nie tylko Quine!

10

Zadanie

W tym wyzwaniu Twoim zadaniem jest napisanie programu, który nie pobiera danych wejściowych, z możliwie jak największą liczbą anagramów.

Twój wynik będzie liczbą anagramów kodu źródłowego programu, które są poprawnymi quinesami podzieloną przez całkowitą liczbę możliwych anagramów, tj. Procent anagramów, które są poprawnymi quinesami.

Obowiązują standardowe luki i zasady standardowych quines .

Uwaga: Twój program musi mieć co najmniej 3 znaki (nie 3 bajty).


Wejście

Każdy anagram (lub permutacja) twojego programu, który jest sam w sobie (tj. Anagramy, które umieszczasz w swoim wyniku) nie może przyjmować żadnych danych wejściowych. Jeśli twój język wymaga wprowadzenia jako konieczności, możesz założyć, że twój program otrzyma Łańcuch składający się z małej litery A. Jednak nie możesz w żaden sposób korzystać z danych wejściowych.


Wynik

nliczba odrębnych anagramów kodu źródłowego programu musi być poprawnymi znakami quines, gdzie nreprezentuje liczbę tych anagramów, które uwzględnisz w swoim wyniku, tj.

Równanie matematyczne

Te quag-anagaramy mogą generować dane w dowolny sposób, z wyjątkiem zapisu wyników w zmiennej. Zapis do pliku, konsoli, ekranu itp. Jest dozwolony. Funkcja returnjest również dozwolona.


Przykład punktacji

Załóżmy, że kod źródłowy twojego programu to code. I,

  1. codewyjścia code.
  2. coedwyjścia coed.
  3. cdoewyjścia cdoe.
  4. cdeowyjścia cdeo.
  5. cedowyjścia cedo.
  6. ceodwyjścia ceod.
  7. ocdewyjścia ocde.
  8. ocedwyjścia oced.
  9. odcewyjścia odce.
  10. odecnie wyświetla danych wyjściowych odeclub powoduje błąd.
  11. oedcnie wyświetla danych wyjściowych oedclub powoduje błąd.
  12. oecdnie wyświetla danych wyjściowych oecdlub powoduje błąd.
  13. docenie wyświetla danych wyjściowych docelub powoduje błąd.
  14. doecnie wyświetla danych wyjściowych doeclub powoduje błąd.
  15. dcoenie wyświetla danych wyjściowych dcoelub powoduje błąd.
  16. dceonie wyświetla danych wyjściowych decolub powoduje błąd.
  17. deconie wyświetla danych wyjściowych decolub powoduje błąd.
  18. deocnie wyświetla danych wyjściowych deoclub powoduje błąd.
  19. eodcnie wyświetla danych wyjściowych eodclub powoduje błąd.
  20. eocdnie wyświetla danych wyjściowych eocdlub powoduje błąd.
  21. edocnie wyświetla danych wyjściowych edoclub powoduje błąd.
  22. edconie wyświetla danych wyjściowych edcolub powoduje błąd.
  23. ecdonie wyświetla danych wyjściowych ecdolub powoduje błąd.
  24. ecodnie wyświetla danych wyjściowych ecodlub powoduje błąd.

Wynik tego rozwiązania będzie

Równanie matematyczne


Zwycięskie kryterium

Rozwiązanie o najwyższym wyniku wygrywa! W przypadku remisu wygrywa odpowiedź o większej liczbie znaków (nie liczbie bajtów) (stąd )! Jeśli remis nadal się utrzymuje, wygrywa rozwiązanie opublikowane wcześniej!

Arjun
źródło
@NeilA. Jestem o wiele bardziej przekonany, że bezpieczna rotacja quine może być napisana w innych językach niż Unary (choć nie w wielu językach i nadal będzie trudna).
Martin Ender
Prawdopodobnie jest już za późno na zmianę specyfikacji, ale prawdopodobnie powinieneś był określić, że oryginalny program się nie liczy, ponieważ w przeciwnym razie wydaje się, że jest to duplikat naszego pytania o waniliowe quine.
SuperJedi224

Odpowiedzi:

7

Unary, 100%

Jest to zasadniczo to samo, co odpowiedź Lenguage, ponieważ są ze sobą powiązane. Myślę jednak, że warto to zauważyć. Uzyskałem go jako 100%, ponieważ każda permutacja kodu spowoduje powstanie samego quine i widzę to jako X / X * 100 = 100%.

5,71728886e + 3431 zer. Pełny numer można znaleźć w tym fragmencie:

Odpowiednik Brainf * ck znajduje się w tym fragmencie:

Źródło

Inżynier Toast
źródło
Gratulujemy wygranej! :)
Arjun
1
@Arjun Dzięki, ale odpowiedź Legrange była pierwsza i ma ten sam wynik. Zamiast tego powinno wygrać.
Inżynier Toast
@EngineerToast Mam na myśli, że to nie ma dla mnie znaczenia, to CW, więc nie +15: P
Christopher
4

Lenguage, 100%

5,71728886e + 3431 bajtów zerowych. Pełny numer można znaleźć w tym fragmencie:

ETH
źródło
@ETHproductions naprawił to. Myślę, że wygram
Christopher
Czy to wyjście 5.71728886e + 3431 null bajtów czy coś innego?
ETHprodukcje
@ETHproductions Tak, tak myślę.
Christopher
Wykonano CW, ponieważ może nie być w pobliżu, aby to usunąć: P
Christopher
@Christopher Powinieneś podać dokładną ilość bajtów, aby można było ją zdekodować. Obecnie nie ma sposobu, aby powiedzieć, co to robi.
Ad Hoc Garf Hunter
2

Microscript II, wynik 1/1814399 = 5,5e-7

"qp1h"qp1h

"qph1"qph1 jest również quine.

Microscript II, wynik 5/119750399 = 4,2e-8

"qp12h"qp12h

"qp21h"qp21h, "qph12"qph12 , "qph21"qph21, "qp1h2"qp1h2I "qp2h1"qp2h1są również quines.

Jestem pewien, że ktoś może wymyślić znacznie wyższy wynik niż którykolwiek z nich, ale to wciąż jedyna odpowiedź z co najmniej jednym quine, który nie jest oryginalnym programem (którego, IMO, nie należy liczyć).

SuperJedi224
źródło
1

V 16,6666 ...%

2i2i

Wypróbuj online!

Istnieje 6 możliwych anagramów tego kodu:

2i2i
22ii
i22i
i2i2
ii22
2ii2

A jednym z nich jest quine.

James
źródło
Nie jestem pewien, czy oryginalny program powinien liczyć się jako anagram samego siebie, ale OP wydaje się na to pozwalać.
SuperJedi224