Przypiszmy cyfry od 0 do 94 do 95 drukowanych znaków ASCII :
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Spacja to 0, !
1 i tak dalej, aż do ~
94. Przydzielimy także 95 do tab ( \t
) i 96 do newline ( \n
).
Rozważmy teraz nieskończony ciąg, którego N-ty znak jest znakiem powyżej, do którego przypisano N-tą liczbę pierwszą , modulo 97. Nazwiemy ten ciąg S.
Na przykład, pierwsza liczba pierwsza to 2, a 2 mod 97 to 2, a 2 jest przypisane "
, więc pierwszym znakiem S jest "
. Podobnie, 30. liczba pierwsza to 113, a 113 mod 97 to 16, a 16 jest przypisane 0
, więc 30 znak S to 0
.
Pierwsze 1000 znaków S to:
"#%'+-137=?EIKOU[]cgiosy $&*,0>BHJTV\bflrt~
#%1=ACGMOY_ekmswy"046:HNXZ^dlrx|!)-5?AKMSW]eiko{"&.28DFX^hntv|%+139?CEQ[]agmo{ $,6>HPV\`hnrz~+5ACMOSU_mqsw$(*.BFNX`djp~!'-5;GKQS]_eoq{}"48:>DJRX^tv
'17=EQU[aciu 026<>DHJNZ\b#)/7ISaegkqy} $0:<@BFLXdlx~!'/3;?MQWY]ceku(.24LPR\hjt|!'-?EIKWamu$28<>BDNZ`fxz)+AGOUY[_gmwy"0:@LNRT^jl|~#')3;Meiow&(,4DFJRX^bnp%+-37=KQUW]agsy ,06BJPTn
)15;=CYegw ".<FHLTZ`dfjpx|~#-/9AES]ikquw&48>FLPbjtz
'1=KOU[]y{$,0>BJV\hlr%/1A[_amsw"(04<RTXZf!#)/59?AMQ]_ik{},2FV^bdhj
'39CEIOQWacoy{$28<BJPVfrtx%+/7AIOUkqs}*.4FHR`dfp~!);?EGKQS_cw,8:>DJLRhjp
%139EUW[aosu&>HNPZ\fhrxz#%/5=[egqy (:@LXZlrv|!35?MSWY]uw"(8@FL^nptz|!'17COacim &>BDHNP\`n+5;GU[eqsw}$*46:HNTX^`jl|'/AEKWY_ek&,:>FPXdvz|
7CIK[agu ,0NTZ`hnrt
%)+1GMOSegkwy "<BHLT^~-/59;?AKY_cku{.24:X\dntz!'37=?EIOQ[]ms&*6D`fz~/7=AGU[akmw"*46@HT^vx|#)-5GQW]_eo{}&,28@FPVX^djt|39OQcgoy6>PTV`fhnr#+7IY_ams} (*0:HLdfvx!#-AEGKScioq},48>\^hjptz
'-1=CKW[iu 6<HNPfn
)/=ACIS[aek(6@BNXZjl~5GM]ouw(,24>FPV\dhnpz|'+179EIWims&*28<DHV\`nz~
=AY_eq}*046:LR^
Wymiana stosu zamienia tabulatory w spacje, więc oto PasteBin z niezmienionymi tabulatorami.
Wyzwanie
Znajdź podłańcuch S, który jest poprawnym programem w wybranym języku, który generuje pierwsze M liczb pierwszych, po jednym w wierszu, w kolejności , dla pewnej dodatniej liczby całkowitej M.
Na przykład 2
jest podciągiem S (występuje w wielu miejscach, ale każde to zrobi) i 2
jest poprawnym programem CJam , którego wyjściem jest
2
czyli pierwsze M = 1 liczby pierwsze, po jednej w wierszu, w kolejności.
Podobnie, ciąg 2N3N5
może być gdzieś podciągiem S i 2N3N5
jest poprawnym programem CJam, który wyprowadza
2
3
5
czyli pierwsze M = 3 liczby pierwsze, po jednej w wierszu, w kolejności.
Punktacja
Zgłoszenie z najwyższym M wygrywa. Łamacz remisów trafia do przesłanego postu jako pierwszy.
Detale
Nie powinno być żadnych dodatkowych danych wyjściowych oprócz pojedynczych liczb pierwszych w każdej linii, z wyjątkiem opcjonalnej nowej linii po ostatniej linii. Brak danych wejściowych.
Podciąg może mieć dowolną długość, o ile jest skończony.
Podciąg może występować w dowolnym miejscu w obrębie S. (A S może zawierać go w wielu miejscach).
Program musi być pełnoprawnym programem. Nie możesz zakładać, że działa on w środowisku REPL.
Program musi działać i kończyć się w ograniczonym czasie bez błędów.
„Nowa linia ” może być interpretowana jako każda wspólna reprezentacja nowej linii niezbędna dla twojego systemu / tłumacza / etc. Po prostu traktuj to jako jedną postać.
Musisz podać indeks S, od którego zaczyna się podłańcuch, a także długość podłańcucha, jeśli nie sam podłańcuch. Możesz nie tylko pokazać, że podciąg musi istnieć.
Powiązane: Szukanie programów w ogromnej tablicy Boggle
źródło
Odpowiedzi:
Lenguage , M = ∞
Wszystkie programy zaczynają się na początku łańcucha. Poniższy źle napisany program Python oblicza, ile znaków potrzeba dla danego M.
Na przykład, dla M = 5, program jest pierwsze 2458595061728800486379873255763299470031450306332287344758771914371767127738856987726323081746207100511846413417615836995266879023298634729597739072625027450872641123623948113460334798483696686473335593598924642330139401455349473945729379748942060643508071340354553446024108199659348217846094898762753583206697609445347611002385321978831186831089882700897165873209445730704069057276108988230177356 znaków.
źródło
CJam, M = 2
Krótkie i słodkie:
Ta sekwencja zaczyna się od pozycji 54398, przy użyciu 1-indeksowania łańcucha. Możesz to przetestować online tutaj .
Próbowałem wyszukać kilka możliwych odmian, ale to było pierwsze rozwiązanie, jakie znalazłem.
Obecnie próbuję znaleźć wersję M = 3, ale nie spodziewam się jej znaleźć w rozsądnym czasie. Jeśli sekwencja jest jednolicie losowa (przybliżenie), wówczas indeks początkowy dla sekwencji o długości 5 może być rzędu 10 ^ 9.
źródło
1e6{mp},97f%' f+"2NZ"#
link (trwa chwilę: p)