Attribuons les chiffres de 0 à 94 aux 95 caractères ASCII imprimables :
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
L'espace est 0, !
est 1, et ainsi de suite jusqu'à ~
94. Nous assignerons également 95 à tab ( \t
) et 96 à newline ( \n
).
Considérons maintenant la chaîne infinie dont le Nième caractère est le caractère au-dessus auquel le Nième nombre premier , modulo 97, a été affecté. Nous appellerons cette chaîne S.
Par exemple, le premier nombre premier est 2, et 2 mod 97 est 2, et 2 est affecté à "
, donc le premier caractère de S est "
. De même, le 30e nombre premier est 113, et 113 mod 97 est 16, et 16 est affecté à 0
, donc le 30e caractère de S est 0
.
Les 1000 premiers caractères de S sont les suivants:
"#%'+-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^
Stack Exchange transforme les onglets en espaces, voici donc un PasteBin avec les onglets intacts.
Défi
Trouvez une sous - chaîne de S qui est un programme valide dans la langue de votre choix qui produit les M premiers nombres premiers, un par ligne, dans l'ordre , pour un entier positif M.
Par exemple, 2
est une sous-chaîne de S (elle se produit à plusieurs endroits mais tout le monde le fera), et 2
est un programme CJam valide dont la sortie est
2
qui est les premiers M = 1 nombres premiers, un par ligne, dans l'ordre.
De même, la chaîne 2N3N5
peut être une sous-chaîne de S quelque part et 2N3N5
est un programme CJam valide qui génère
2
3
5
qui est le premier M = 3 nombres premiers, un par ligne, dans l'ordre.
Notation
La soumission avec le plus haut M gagne. Le bris d'égalité va à la soumission publiée en premier.
Détails
Il ne devrait pas y avoir de sortie supplémentaire en plus des nombres premiers simples sur chaque ligne, à l'exception d'une nouvelle ligne facultative après la dernière ligne. Il n'y a aucune entrée.
La sous-chaîne peut être de n'importe quelle longueur tant qu'elle est finie.
La sous-chaîne peut se produire n'importe où dans S. (Et S peut la contenir à plusieurs endroits.)
Le programme doit être un programme à part entière. Vous ne pouvez pas supposer qu'il est exécuté dans un environnement REPL.
Le programme doit s'exécuter et se terminer en un temps limité sans erreur.
"Newline" peut être interprété comme toute représentation de nouvelle ligne commune nécessaire à votre système / interprète / etc. Traitez-le comme un seul personnage.
Vous devez donner l'index de S où commence votre sous-chaîne, ainsi que la longueur de la sous-chaîne sinon la sous-chaîne elle-même. Vous pouvez non seulement montrer que la sous-chaîne doit exister.
En relation: Recherche de programmes dans un immense tableau Boggle
la source
Réponses:
Lenguage , M = ∞
Tous les programmes démarrent au début de la chaîne. Le programme Python mal écrit suivant calcule le nombre de caractères nécessaires pour un M. donné
Par exemple, pour M = 5, le programme est le premier 2458595061728800486379873255763299470031450306332287344758771914371767127738856987726323081746207100511846413417615836995266879023298634729597739072625027450872641123623948113460334798483696686473335593598924642330139401455349473945729379748942060643508071340354553446024108199659348217846094898762753583206697609445347611002385321978831186831089882700897165873209445730704069057276108988230177356 caractères.
la source
CJam, M = 2
Court et doux:
Cette séquence commence à la position 54398, en utilisant l'indexation 1 de la chaîne. Vous pouvez le tester en ligne ici .
J'ai tenté de rechercher quelques variantes possibles, mais ce fut la première solution que j'ai trouvée.
J'essaie actuellement de trouver une version M = 3, mais je ne m'attends pas à en trouver une dans un délai raisonnable. Si la séquence est uniformément aléatoire (une approximation), alors l'indice de départ pour une séquence de longueur 5 pourrait être de l'ordre de 10 ^ 9.
la source
1e6{mp},97f%' f+"2NZ"#
lien (prend un certain temps: p)