الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

توليد الأعداد الأولية

بدأه caballero في 6 مارس 2010 · 3 رد · 5,117 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

يمكن توليد الأعداد الزوجية بإستعمال العلاقة mimetex.cgi?p(n)=2n. وهي علاقة بسيطة، فضعف كل عدد صحيح هو عدد زوجي. كذلك، يمكن توليد الأعداد الفردية بإستعمال العلاقة mimetex.cgi?I(n)=2n+1. هل توجد علاقة مماثلة بالنسبة للأعداد الأولية؟

دالة تآلفية:

يمكن أن نتحقق بسرعة من إستحالة توليد جميع الأعداد الأولية (أو أعداد أولية فقط، وليست كلها) بإستعمال علاقة من نوع mimetex.cgi?f(n)=an+b من أجل n موجب.

للبرهان على ذلك، نفترض أن an+b أولي لكل n أكبر من أو يساوي 0.

من أجل n=0، لدينا mimetex.cgi?f(0)=b. وبما أن العبارة صحيحة لكل mimetex.cgi?n\ge 0، فإن b أولي.

العدد mimetex.cgi?f(b)=ab+b أولي أيضا. وبما أن mimetex.cgi?ab+b=b(a+1) يقبل القسمة على b و a+1، فإن b=1 أو a+1=1

mimetex.cgi?b \neq 1 لأن b أولي. إذن a+1=1 ومنه a=0

أي أن mimetex.cgi?f(n)=b، تعطي دائما نفس العدد الأولي.

وبالتالي، الصيغ الوحيدة mimetex.cgi?f(n)=an+b التي تعطي أعدادا أولية فقط هي التي يكون فيها a=0 و b أوليا.

الحدوديات:

يمكن أن نبرهن بإستدلال مشابه أنه إذا كانت حدودية mimetex.cgi?f(n)=a_p n^p + a_{p-1} n^{p- لا تعطي سوى أعداد أولية لكل n موجب، فإن f ثابتة، وبالتالي غير مفيدة.

خلاصة مؤسفة: حدودية بمتغير واحد، كيفما كانت معقدة، لا تعطي دائما أعدادا أولية لكل n موجب إلا إذا كانت ثابتة.

لنبرهن على هذه النتيجة بإستعمال البرهان بنقض الفرض:

نفترض أن f غير ثابتة، ولا تأخذ سوى قيم أولية لكل n موجب

لدينا mimetex.cgi?f(0)=a_0، إذن mimetex.cgi?a_0 أولي. بإستعمال الإفتراض، فإن f تؤول إلى mimetex.cgi?+\infty عندما يؤول n إلى mimetex.cgi?+\infty (وإلا فإن f لن تعطي سوى قيم سالبة إبتداء من قيم معينة لـ n، وبالتالي f غير مناسبة).

يوجد إذن عدد صحيح p حيث يكون mimetex.cgi?f(p a_0) أكبر من mimetex.cgi?a_0، لكن mimetex.cgi?f(p a_0) هومضاعف لـ mimetex.cgi?a_0 (لأنه مجموع مضاعفات mimetex.cgi?a_0). وأكبر من mimetex.cgi?a_0، أي أنه ليس أوليا.

من المستبعد الحصول على صيغ مثيرة للإهتمام حتى بعد إدخال تحسينات على الصيغتين السابقتين:

  • إذا كانت دالة حدودية بعدة متغيرات لا تعطي سوى أعداد أولية بالنسبة للقيم الصحيحة الموجبة لمتغيراتها، فإنها دالة ثابتة. وبالتالي غير مفيدة.
  • إذا كان خارج دالتين حدوديتين بعدة متغيرات لا يعطى سوى أعداد أولية بالنسبة لقيم موجبة لمتغيراتها، فإنها دالة ثابتة. وبالتالي غير مفيدة.
  • إذا كانت دالة معرفة بـ mimetex.cgi?P 2^Q + R حيث P و Q و R هي ثلاثة حدوديات بعدة متغيرات، إذا كانت هذه الدالة لا تعطي سوى أعداد أولية بالنسبة لقيم موجبة لمتغيراتها، فإنها دالة ثابتة. وبالتالي غير مفيدة.
  • نفس النتيجة السابقة إذا إستبدلنا 2 بـ 3 أو بأي عدد صحيح آخر. أو حتى بمجموع حدود على الشكل mimetex.cgi?P a^Q عوض حد واحد.

هل نستسلم؟ طبعا لا. هناك دوال أخرى في حوزة الرياضيين.

دوال مختلفة:

توصل Mills سنة 1947 إلى نتيجة مذهلة: توجد ثابتة A بحيث يكون العدد mimetex.cgi?\[A^{3^n}\] أوليا لكل mimetex.cgi?n\ge 1.

تمثل المعقوفتان [ ] دالة الجزء الصحيح.

تسمى أصغر قيمة لـ A تحقق ما سبق بثابتة Mills، وقد تم حسابها بدقة جيدة: mimetex.cgi?A=1.306377883863080690468614.

من أجل n=1، نحصل على 2.

من أجل n=2 نحصل على 11.

من أجل n=3 نحصل على 1361.

من أجل n=4 نحصل على 2521008887.

...

ويمكن بسهولة التحقق من أنها أعداد أولية.

رغم جمال هذه العلاقة، إلا أنها تبقى بدون فائدة تطبيقية. فلكي نستعملها يجب أن نعرف قيمة دقيقة جدا لـ A، وهذا لا يتحقق إلا بحساب الأعداد الأولية نفسها.

على نفس المنوال، توصل Wright سنة 1951 إلى نتيجة غريبة: توجد ثابتة w بحيث لا تعطي الدالة mimetex.cgi?f(n)=\[2^{2^{2^{2^{\dots^{w} (n أس) سوى أعداد أولية لكل mimetex.cgi?n\ge 1

تسمى w بثابتة Wright، وهي تساوي mimetex.cgi?1.9287800...

القيم الأولى لهذه الدالة هي: 3، 13، 16381، ...

العلاقة التالية أفضل من السابقتين، ولكنها أكثر تعقيدا:

توجد ثابتة L تسمى ثابتة Liouville-Erdos بحيث تعطينا العلاقة mimetex.cgi?\[ L \times 10^{n^2} \] - \[ العدد الأولي ذو الرتبة n لكل mimetex.cgi?n\ge 1.

mimetex.cgi?p_1=2 \hspace{8} p_2=3 \hspa

هذه العلاقة لا تعطينا أعدادا أولية فحسب (مثل سابقتيها)، بل تعطينا جميع الأعداد الأولية في الترتيب.

يظهر الإحتيال عندما نرى قيمة الثابتة L

mimetex.cgi?L  = 0,200300005000000700000

فالعدد الأولي ذو الرتبة n يوجد في الموضع n².

لنر كيف يمكن حساب mimetex.cgi?p_4:

mimetex.cgi?\[ L \times 10^{4^2} \] = \[

mimetex.cgi?\[ L \times 10^{9} \] = 2003

mimetex.cgi?\[ L \times 10^{9} \] 10^7 =

أخيرا:

mimetex.cgi?p_4 = \[ L \times 10^{16} \]

mimetex.cgi?\hspace{10} = 20030000500000

العلاقات السابقة كانت غشا نوعا ما، وغير عملية. هل يمكن إيجاد صيغة تعطي جميع الأعداد الأولية؟

إذا لم نستطع الحصول عليها في ترتيبها الطبيعي، فسنكتفي بها غير مرتبة، مع تكرار، ...

صيغ تستعمل دالة الجزء الصحيح:

أول مثال هو علاقة Yelehada والتي تعطي جميع الأعداد الأولية:

p\]\])\] \hspace{10} n\ge 0

يمكن شرح سير عمل هذه العلاقة في بضع كلمات:

إذا كان n+2 مضاعفا لـ p فإن mimetex.cgi?\frac{n+2}{p} هو عدد صحيح q. ومنه mimetex.cgi?\frac{n+1}{p}=q-\frac{1}{p}.

هذا يستلزم أن mimetex.cgi?\[ \frac{n+1}{p} \]=q-1 وأن mimetex.cgi?\[ \frac{n+2}{p} - \[\frac{n يساوي 1.

في المقابل، إذا لم يكن n+2 مضاعفا لـ p فإن mimetex.cgi?\[ \frac{n+2}{p} - \[\frac{n يساوي 0. بتعبير آخر، يحسبmimetex.cgi?\Bigsum في الصيغة عدد قواسم n+2 المحصورة بين 2 و n+1.

هناك حالتان:

  • العدد n+2 أولي، وبالتالي عدد قواسمه بين 2 و n+1 يساوي 0. أي أن التعبير داخل المعقوفة التي بعد 2+n يساوي 1، نجد أن mimetex.cgi?t(n)=n+2. وهو عدد أولي.
  • العدد n+2 ليس أوليا، أي أن عدد قواسمه بين 2 و n+1 أكبر من 1، أي أن التعبير داخل المعقوفة التي بعد 2+n يساوي 0، ومنه mimetex.cgi?t(n)=2، وهو عدد أولي طبعا.

هذه العلاقة جميع الأعداد أولية، لكن ببطء، وبتكرار كثير للعدد 2.

2, 3, 2, 5, 2, 7, 2, 2, 2, 11, 2, 13, 2, 2, 2, 17, 2, 19, 2, 2, 2, 23, 2, 2, 2, 2, 2, 29, 2, 31, 2, 2, 2, 2, 2, 37, 2, 2, 2, 41, 2, 43, 2, 2, 2, 47, ...

مبرهنة John Wilson، نشرت سنة 1770، تقول أن mimetex.cgi?(p-1)!+1 أولي إذا وفقط إذا كان p أوليا. هذا ساعد Minac على تبسيط صيغة Yelehada بشكل كبير، فتصبح:

(n+2)\]\]

ما ربحناه من إختفاء mimetex.cgi?\Bigsum، خسرناه بظهور العاملي.

هناك صيغ لا تملك عيوب صيغ Yelehada و Minac، اللتين لا تولدان الأعداد الأولية مرتبة وبدون تكرار. هذه العلاقة تعتمد على صيغة Wilson:

n}\] \hspace{10}

mimetex.cgi?p_1=2 \hspace{8} p_2=3 \hspa

العلاقة مبهرة. قلة فقط من الناس تخيلت وجود علاقة مماثلة قبل نشرها سنة 1995. هل هي عملية؟ لا. إذا إستعملنا هذه العلاقة لكتابة برنامج يحسب الأعداد الأولية، فسنحصل على برنامج ذو كفاءة محدودة.

عودة إلى الحدوديات:

هناك بعض الدوال، التي لا تعطي جميع الأعداد الأولية ولا تعطي أعدادا أولية فقط، ولكنها تعطي كمية جيدة منها.

دوامة الأعداد الأولية، أو دوامة Ulam، هي طريقة بسيطة لتمثيل الأعداد الأولية. إبتكرها Ulam سنة 1963 أثناء حضوره لمؤتمر. أحس بالملل وهو يستمع لعرض طويل جدا. فرسم الأعداد الصحيحة الطبيعية بدءا من 1 في شكل حلزوني في عكس منحى عقارب الساعة.

200px-Ulam_spiral_howto_all_numbers.svg.png

قام بعدها بإحاطة الأعداد الأولية بدوائر.

200px-Ulam_spiral_howto_primes_only.svg.png

تفاجأ عندما رأى أن الأعداد الأولية تتجمع على الأقطار.

تظهر الصورة التالية دوامة Ulam أبعادها 399 × 399. يمثل اللون الأسود الأعداد الأولية. يمكن تمييز الأقطار بسهولة.

primesp.jpg

النتيجة تبقى صحيحة حتى لو كان المركز عددا آخر غير 1. هذا يستلزم بأنه توجد ما لا نهاية من الأعداد a و b و c بحيث تولد الدالة mimetex.cgi?f(n)=an^2+bn+c عددا هائلا من الأعداد الأولية.

في القرن الثامن عشر، إقترح Euler الحدودية mimetex.cgi?n^2 + n + 17 التي تعطي أعدادا أولية لجميع قيم n المتتابعة من 0 إلى 15. وهي في الأصل الأعداد الأولية التي تتجمع في القطر الرئيسي لدوامة Ulam، أي: 17، 19، 23، 29، 37، 47، 59، 73، 89، 107، 127، 149، 173، 199، 227 ، 257.

إقترح Euler دالة أفضل mimetex.cgi?n^2 - n + 41 وهي تعطي أعدادا أولية لجميع قيم n بين 0 و 40. بحساب هذه الأعداد، نجد أن هذه الحدودية ممتازة، لأنها تولد أعدادا أولية أصغر من 10 ملايين في 47.5 % من الحالات. توصل Ulam إلى صيغ أخرى لها معدل نجاح يقارب صيغة Euler.

من الصيغ المماثلة:

mimetex.cgi?103n^2-3945n+34381 \hspace{1

mimetex.cgi?47n^2-1701n+10181 \hspace{15

mimetex.cgi?36n^2-810n+2753 \hspace{15}

هناك حدسية تقول أنه كيفما كان العدد A كبيرا، فإنه توجد حدودية على الشكل mimetex.cgi?n^2+n+B والتي تعطي أعدادا أولية فقط من أجل mimetex.cgi?n \in {0, 1, 2, ..., A}. إلا أن قيمة B ستكون كبيرة جدا. مثلا من أجل A=41 نعرف أن B ستكون أكبر من mimetex.cgi?10^{18}، دون أن نعرف قيمتها المضبوطة.

مزيد من الحدوديات

9

MPSI/MP* - CPR Tanger

#2

ما شاء الله.

دائما مبدع اخي راغب.

الحمد لله الذي هدانا لهذا وماكنا لنهتدي لولا ان هدانا الله

#3

اكثر من رائع

#4

مقال جميل جدا

ربما ينقصه بعض الكلام عن خوارزميات ال Sieve

1

مواضيع مشابهة