سؤال

أحاول أن أفهم كيف تعمل خوارزمية الأجيال في الواقع، لكنني لا أستطيع أن ألتف رأسي حولها. قرأت بالفعل قسمها في كتاب CLRS وأيضا على الإنترنت ولكن لا يزال بإمكانه فهم هيكله أو تحليله. هذا هو تطبيق جافا من الكود الكفولي من كتاب CLRS جنبا إلى جنب مع خوارزمية Pollard's rho GuardCetAgcode:

giveacodicetagpre.

  • لماذا يختار $ x= (x_0 ^ 2 - 1) \ mod n $ ؟
  • ماذا $ y $ تمثل في الواقع ولماذا يتم اختياره لتكون مساويا $ \ {x_1، x_2، x_4، x_8، x_ {16}، ... \} $ ؟
  • لماذا يحسب $ \ text {gcd} (yx، n) $ وكيفية $ D $ < / span> تبين أن يكون عاملا $ n $ ؟
  • ولماذا هو وقت التشغيل المتوقع هو $ O (n ^ {1/4}) $ عمليات حسابية و $ o (2 ^ {\ beta / beta / 4} \ beta ^ 2) $ bit imprition على افتراض أن $ n $ هي $ \ beta $ بت طويلة؟

أنا أفهم أنه إذا كان هناك جذر غير تافه من $ x ^ 2 \ equiV 1 \ PMOD {n} $ ثم $ N $ هو مركب و $ x $ هو عامل، ولكن $ y - X $ ليس جذر مربع من $ n $ هل هذا؟

هل كانت مفيدة؟

المحلول

الفكرة وراء بولارد $ \ rho $ هل هذا إذا كنت تأخذ أي وظيفة $ f: [0، n - 1] \ إلى [0، n - 1] $ ، والتكرار $ x_ {k + 1}= f (x_k) $ يجب أن تقع في دورة في نهاية المطاف. خذ الآن $ f $ كعناني متعدد الحدود، ويعتبرها modulo $ n= p_1 p_2 \ dotsm p_r $ ، حيث $ p_i $ هي الأعداد الأولية:

$ \ ادبت {المعادلة *} x_ {k + 1} = f (x_k) \ bmod n = f (x_k) \ bmod p_1 p_2 \ dotsm p_r \ End {المعادلة *} $

هكذا يكرر نفس هيكل التكرار modulo لكل من الأعداد الأولية التي $ n $ العوامل.

نحن لا نعرف أي شيء عن الدورات، ولكن من السهل أن نرى أنه إذا ذهبت مع $ x_0= x'_0 $ و:

$ \ ادبت {align *} x_ {k + 1} &= f (x_k) \\ X '_ {k + 1} &= f (f (x'_k)) \ End {align *} $

(أي، $ x '$ advances مرتين بأسرع وقت) في النهاية $ x'_k $ و $ x_k $ سوف تمتد واحدة (أو أكثر) دورات (انظر خوارزمية الكشف عن دورة فلويد لمزيد من التفاصيل)، وبالتالي في حالتنا، $ x'_k \ equiv x_k \ mod {p_i} $ ، و $ \ gcd (x'_k، x_k) $ سيكون عاملا $ n $ ، نأمل واحدة غير تافهة.

أي أعمال متعددة الحدود، لكننا نريد غير قابل للاختزال (لا عوامل غير تافهة، والكشف عن تلك ليست نقطة التمرين). لا تعطي متعدد الحدود الخطية عوامل، أبسط المقبل للحساب هو واحد من الدرجة الثانية، ولكن فقط لا تعمل $ X ^ 2 $ إما (متوفرة)، لذلك Span Class="حاوية الرياضيات"> $ x ^ 2 + 1 $ للبساطة. تذكر أن الفكرة هنا هي العمل بأعداد كبيرة جدا، والعمليات الحسابية البسيطة والبسيطة هي مكافأة مميزة. نماذج تحليل الخوارزمية (على سبيل المثال في الخوارزميات الندوية "الندوية" (SPAN Class "=" حاوية الرياضيات "> $ f (x) \ bmod p $ كدالة عشوائية، وهي قريبة بما يكفي لشرح الخصائص العامة للخوارزمية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى cs.stackexchange
scroll top