Rand48はいくつかのプログラミング言語で使われる疑似乱数生成器である。これは任意に与えられた整数a0から数列を an=(25214903917⋅an−1+11)mod248という規則に従い生成する。
bn=⌊an/216⌋mod52とする。数列 b0,b1,… は0→a,1→b,…,25→z,26→A,27→B,…,51→Zという規則を介して無限文字列 c=c0c1c2… に変換される。
例えば、a0=123456と選ぶと c の冒頭は "bQYicNGCY..." となる。
さらに、100文字めからの位置に "RxqLBfWzv" という部分文字列の最初の出現がある。
あるいは、c の冒頭が "EULERcats..." ならば、a0=78580612777175 に違いない。
今、c が "PuzzleOne..." で始まっていると仮定する。
c の部分列として最初に "LuckyText" が出現する位置を求めよ。