#author("2022-07-25T13:35:36+00:00","","") *[[Problem 803:http://projecteuler.net/problem=803]] 「疑似乱数的な数列」 [#o7c1bd94] ''Rand48'' はいくつかのプログラミング言語で使われる疑似乱数生成器です。これは任意に与えられた整数 &tex{a_{0}}; から数列をルール「 &tex{a_{n} = ( 25214903917 * a_{n-1} + 11 ) mod 2^{48} }; 」に従って生成します。 &tex{b_{n}}; を &tex{{a_{n}/2^{16}}; の整数部分を &tex{52}; で割った余りとします。数列 &tex{b_{0}b_{1}b_{2}...}; は無限文字列 &tex{c=c_{0}c_{1}c_{2}...}; に次のルールを介して変換されます。 : 0 → a, 1 → b, ..., 25 → z, 26 → A, 27 → B, ..., 51→Z 例えば、もし &tex{a_{0} = 123456}; と選ぶと &tex{c}; は ''b Q Y i c N G C Y ...'' で始まります。さらに、 100 番目のインデックスから始めると最初に ''R x q L B f W z v'' という部分文字列に出会います。 あるいは &tex{c}; がもし ''E U L E R c a t s ...'' で始まっていると、 &tex{a_{0} = 78580612777175}; に違いありません。 今 &tex{c}; が ''P u z z l e O n e ...'' で始まっていると仮定します。 &tex{c}; の部分列として最初に ''L u c k y T e x t'' が現れるインデックスを求めてください。 IP:153.150.13.233 TIME:"2022-07-25 (月) 22:35:36" REFERER:"https://odz.sakura.ne.jp/projecteuler/" USER_AGENT:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"