Problem 803
の編集
http://odz.sakura.ne.jp/projecteuler/index.php?Problem+803
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
*[[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'' が現れるインデックスを求めてください。
タイムスタンプを変更しない
*[[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'' が現れるインデックスを求めてください。
テキスト整形のルールを表示する