معجزة ترتيب سور القرآن.pdf

53
ر و س ترتيب دية العد عجزة ا إثباتماسوبطة ا بوسارآن الكر الق هذا البحث ض ر ع( القرآن الكر ديز العدعجاالث لر الدوم الثؤ ا) زيا مالي والذي انعقد- وميبور ي كوا6 و7 ذي القعدة1433 هـ ا واق22 و23 ول أيل2012 م م ن نتائج هذا البحث و بعدار ب اخت م ل يار ي ترتيب م ن ق بماسوب ل ا, م خد يب است كل ترت ( 114 ) فا ختل م دا عد, أن ام التحق قد قاد الـ عد(114) ل ث م ت ال أ عد ا د آيات س و ر القرآن الكرها يب رت ت ها و م ي ق بصحف ا ( س ح د ب الع و الكو بص ف رواية ح) ت ك وديةقات عد ن ع ت ت ح دى الع لمادي ا وع لماء اضيات خاصة الري أن ي ثب توا إمكانية ح ص ول هم بالص دقة على(114) دا عد ت ستطي أو اثلة قات عقي ع شبيهةرآ رتيب الق التها ق ق حت القا بالع, و قد أ رق حث برنامج مع الب حاسوب ت ا اون ا ليونات م تريليوناتجراء تري ة ري ش كفي الب يوم عليها ك ح قا سب ل م ش بالف! التحديحاول دمة من ي خ ه ع أض, اليوم ن م لساعةإل أن تقوم ا و م ل ع ي ل ميع جر ش الب أن رآن الق الكر ل ز ن م من ند ع, ا وأنه وظ حف م كما, ل ز ن وأن حمدا م ول س ر ااد إعد: ر أماهر عمهندس م ا- العراقemail: [email protected] 2013 maher 1/1/2013

Upload: maher-talal-alasaady

Post on 11-Aug-2015

239 views

Category:

Documents


23 download

DESCRIPTION

معجزة ترتيب سور القرآن.pdf

TRANSCRIPT

Page 1: معجزة ترتيب سور القرآن.pdf

إثبات املعجزة العددية يف ترتيب سور القرآن الكرمي بوساطة احلاسوب

عرض هذا البحث يف

(املؤمتر الدويل الثالث لإلعجاز العددي يف القرآن الكرمي)

هـ 1433ذي القعدة 7و 6كواالملبور يومي -والذي انعقد يف ماليزيا

م 2012 أيلول 23و 22واق امل البحث هذا نتائج نم

( 114)يف كل ترتيب استخدم , ل احلاسوببن قمترتيب ييارلم اختباربعد ور ود آيات ساعدأ اليت تمثل (114)عداد الـ ققد مت التحق أن األ ,عددا مختلفا (رواية حفصبالكويف و ب العدحس) يف املصحف بقيمها وترتيبها الكرميالقرآن

توا ثبأن ي الرياضيات خاصة لماءوع املادي لمدى العحتتن عالقات عددية وكتع حتقي عالقات مماثلة أو ستطيتعددا (114)على دقةبالص همولصإمكانية حمع البحث برنامج رققد أو, بالعالقات اليت حققها الترتيب القرآين شبيهةحكوم عليها يكفي البشرية إلجراء تريليونات تريليونات من احملاوالت املحاسوب

وإىل أن تقوم الساعةمن اليوم , أضعه يف خدمة من يحاول التحدي! بالفشل مسبقا

البشر جميعليعلم

محمدا وأن نزل, كما محفوظ وأنه اهلل, عند من منزل الكرمي القرآن أن اهلل رسول

العراق -املهندس ماهر عمر أمني : إعداد

email: [email protected]

2013

maher 1/1/2013

Page 2: معجزة ترتيب سور القرآن.pdf

2

(9:رجاحل) حلفظون﴾ له وإنا الذكر نزلنا نحن ﴿إنا الرحيم الرمحن اهلل بسم

احلاسوب طةابوس الكرمي القرآن روس ترتيب يف العددية عجزةامل إثبات أن املعلوم فمن. بعيدا اختالفا النزول ترتيب عن املصحف يف الكرمي القرآن ترتيب خيتلف :مقدمة يف معج مث, الناس وحاجات واألحداث الوقائع حسب سنة 32 يف" قارفم" ماجنم نزل القرآن القرآن ترتيب توقيفية بني العلماء آراء يف االختالف إن .نزوله لترتيب متاما مغاير حنو على النهاية

وهو ,(وسلم عليه اهلل صلى حممد للرسول السالم عليه جربيل حددها كما رتبت السور أن أي) ,التوقيفية بعدم تقول الرأي على تعتمد خرىأ وأقوال ,البحث هذا نتيجة من سنرى كما املؤكد

استبعاد إىل ذلك ىأد وقد اآلن, حىت منها خترج مل اآلراء من امةود يف الترتيب قضية دخلأ قد .الفيةخ مسألة إىل النهاية يف هلووح الكرمي القرآن إعجاز وجوه من ترتيبال

القرآن روس ترتيب حول كتابا ونشر باملوضوع,( جلغوم عبداهلل) األردين الباحث عني وقد يف املاضية القليلة العقود جتاربمن املتبني أن اإل, باالهتمام جديرة رياضية عالقات واكتشف الكرمي,

علمي إثبات بدون الكرمي القرآن يف ةشفكتامل الرياضية العالقات عرض أن العددي اإلعجاز موضوعأن غالبية من تكلم منهم يف وخباصة, املعارض الطرف يقنع لن إعجاز, بأهنا عقال ملزم وعملي

.املوضوع من غري أهل االختصاص

من أغلبها فشكتا موعة من العالقات العدديةجملية علمية التحقق بطريقة عمل: البحث من اهلدف هذه حصول استحالة يثبت الذي العملي املادي الدليل تقدميو ,(عبداهلل جلغوم)الباحث االردين لبق

القرآن روس آيات وعدد ترتيب يف عددية معجزة وجود يؤكد والذي ,عرضي بشكل العالقات .الكرمي القرآن روس ترتيب توقيفية إلثبات

:مدخل إىل البحث آيات وعدد معلوم, رقم ورةس لكل, سورة (114) معلوم هو كما الكرمي القرآن روس عدد إن

آيات وعدد أرقام على واعتمادا( جلغوم عبداهلل) األستاذ إن (.1-اجلدول) يف موضح هو كما معلوم روس لتقسيم األعداد يف والزوجية الفردية خاصية استخدم قد( 1-اجلدول) الكرمي القرآن روس

رووس, اآليات فردية الترتيب فردية روس: الرياضية الناحية من منطقية أقسام أربعة إىل الكرمي القرآن فردية الترتيب زوجية رووس, اآليات زوجية الترتيب فردية رووس, اآليات زوجية الترتيب زوجية القى وقد, مصادفة حتدث أن يعقل ال عددية عالقات وليكتشف ,(2-اجلدول) على ليحصل اآليات

فلم, يدوي بشكل العمل هذا أجنز قد الباحث كان إذا :أقول. الكثري الشيء والتكذيب املعارضة من

Page 3: معجزة ترتيب سور القرآن.pdf

3

ترتيبها يمثل, اختبار كل يف اعشوائي اعدد )114( يكون احلاسوب قبل من ينفذ برناجما بكتن ال الفردية حسب األعداد يقسم مث, اختبار كل يف خمتلفة بقيم ولكن( 1-اجلدول) شبهي ما هاوقيم

وجدها اليت مثل عالقات عن ويبحث ,(2-جدول)يف املذكورة األربعة األنواع إىل والزوجية خمتلفة يف كل مرة بقيم املرات تريليونات أو مليارات أو ماليني العمل ويعيد هبا, شبيهة أو الباحث من جماميع حصول احتماليات ونسب الباحث وجدها عالقة كل حصول احتمالية نسبة إلجياد

جخريل املختبرة احلاالت مجيع عن شاملة إحصائيات ويقدم, املصحف ترتيب يف تقحتق العالقات املعطيات مع التعامل يف جديدة ملنهجية وتبين املوضوع, هذا حتسم, العلم أهل هافي فخيتل ال بنتائج

.الكرمي القرآن يف املكتشفة العددية

Page 4: معجزة ترتيب سور القرآن.pdf

4

Simulationدراسة املسائل العلمية بواسطة احملاكاة من) االحتماالت مسائل من كثريا فإن العلوم جماالت كل يف املتطورة احلاسوب أجهزة دخول بعد

هلا احللول إجياد على يعمل العلمية البحوث تعترض اليت( التعقيد املعقدة منتهى وإىل جدا البسيطة مث ومن دراستها, املطلوب للمسألة مشاهبة ظروف هتيئة على يعتمد الذي حاكاةامل أسلوب طةابوس

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

تتكرر سوف اليت, احلسابية للعمليات إدخال كبيانات العشوائية األعداد تستخدم واليت واإلحصاء جداول شكل على املختبرة احلاالت جلميع النتائج وتسجل خمتلفة, ببيانات التجارب من كبري لعدد

أجوبة يعطي أن يستطيع جديد أسلوب إنه. احملتملة للنسب مؤكدة شبه علمية دالئل تعطي, إحصائية طةابوس هلا بسيطة إجابات على احلصول باإلمكان كني مل واليت االحتماالت مسائل من لكثري

التدرجيي البناء مث بسيط, بنموذج البداية يةإمكان الرياضية النماذج فوائد ومن ,االحتماالت نظريات احلصول من التدرجيي البناء ويمكن هذا, للموضوع أعمق فهم على للحصول النموذج نفس على .جدا املعقدة املسائل من لكثري الواقع من جدا قريبة نتائج على

Page 5: معجزة ترتيب سور القرآن.pdf

5

:البحث منط قصد هناك يكون أن اإم :هلما ثالث ال احتماالن هناك الكرمي القرآن روس ترتيب حبث موضوع يف

االحتماالت حدود عن خارجة الكرمي القرآن وآيات روس أعداد يف رياضية عالقات بوضع إهلي الكرمي القرآن أن على للبشر اهلل من برهانا تكونل السابق بعلمه اهلل حدده الذي الوقت يف تشفلتك

العالقات هذه تكون أن أيضا احلالة هذه يف املنطق ومن) نزل كما حمفوظ وأنه اهلل, عند من منزل مقصود غري اآليات وعدد املصحف ترتيب يكون أن أو, (جهلناها أم علمناها, للبشر معجزة العددية روس ترتيب توقيفية بعدم يقول ممن ضمنا املفهوم هو وهذا) البشرية اليد فيه تدخلت وقد لذاته, هذا حالة ويف, االحتماالت وقوانني لألعداد الرياضية بالقوانني حمكوم فهو وبالتايل ,(الكرمي القرآن

مقصود غري وترتيبها اآليات وعدد روالس عدد أن إذا صح: ويقول املنطق يتدخل الثاين حتمالاال عشوائية أعداد استخدام فإن ,(!)دفةبالص راتوتناظ قاتوتناس عالقات حقق وقد( عشوائي) لذاته

دفةالص قوانني بسح راتوتناظ قاتوتناس عالقات أيضا نويك سوف احلاسوب هالدوي . الترتيب يف إعجاز وال عالقات, من بجع فال وبالتايل, واالحتماالت

:احلاسوب برنامج عن عامة قكرة

تقسيم يف (جلغوم عبداهلل) الباحث كتشفهاا اليت القاتالعبعض حملاكاة دءيف الب الربنامج صمم لقد :احلاسوب قبل من البيانات لتوليد خياران الربنامج وملستخدم, عليه وزاد أقسام أربعة إىل روالس

احلاسوب قبل من اختبارها يتم حماولة لكل اجديد اعشوائي اعدد 114 على احلصول. دالة استخدامو 114 الـ الكرمي القرآن روس من سورة لكل اآليات عدد نفس إستخدام

.من االعداد جديدة جمموعة كل اختبار قبل عشوائي بشكل األعداد خللط الثاين االختيار يف االحتماالت وعدد! هناية له ليس عدد األول االختيار يف االحتماالت عدد :مالحظة

.ورصتف! مرتبة 174 من يتألف عدد سينفذها اليت احملاوالت وعدد أحد اخليارين حتديد املستخدم من الربنامج سيطلب التشغيل عند

هو مثال ف, ز عمليات رياضية عديدةنجمث ي ,الطريقتني بإحدى البيانات احلاسوب لدويوس, احلاسوب يف املعلومات وحيفظ عالقات, عن ويبحث والزوجية, الفردية حسب أنواع أربعة إىل األعداد يوزع

فكرة تعطيبعدة طرق إحصائية معلومات يقدم مثويكرر االختبارات بقيم خمتلفة ,دائمية ملفات .املختبرة احلاالت مجيع عن شاملة

.تقريبا ساعة كل يف خمتلفة حالة مليون اختبار ميكن جيد مبعالج حاسوب باستخدام :مالحظة

Page 6: معجزة ترتيب سور القرآن.pdf

6

:املكتشفة العالقات دراسة يف البحث جيةنهم

عملية بطريقة عددية عالقة كل حصول احتمالية نسبة معرفة الرياضية الناحية من البحث غاية إن صغرية جمموعة كل حصول احتمالية نسبة معرفة كذلك, االحتماالت نظريات على االعتماد وبدون

التوزيع على كذلك واحلصول, للموضوع شاملة نظرة على للحصول أكرب جماميع ضمن العالقات من . على حتقيق العالقات ضمن هذه الدراسة املختبرة احلاالت مجيع لقابلية اإلحصائي

ما هو ستخدمي سوف الذي املبدئي وامليزان, القياس يف عليه نعتمد ميزان استخدام إىل أوال حنتاج الواحد قيم استخدم الذي الرياضيات عامل إىل نسبة Boolean Logic أو بوليان مبنطق يسمى

املقارنة ميكن احلاالت من كبري لعدد واإلحصائيات النتائج على واعتمادا, النتائج لتقييم والصفر عن بعيدة أهنا نعتقد الكرمي القرآن روس ترتيب يف عددية عالقات جند عندما, فمثال. النتائج وتقييم

من كبري عدد اختبار يتم مث ومن ,(1) عددية قيمة عالقة كل عطين سوفف دفةالص احتمالية ونوعية عدد احلاسوب يرصد سوفو, خمتلفة مبعطيات( أكثر أو مليارات أو ماليني) احلاالت الكلية النتائج ومن املختبرة, احلاالت ماليني منجمموعة من االعداد كل تحققها اليت العالقات عملية بصورة منفصل بشكل العالقات تلك من عالقة كل حدوث احتمالية نسبة معرفةنستطيع

بشكل العالقات تلك حصول إمكانية عدم أو إمكانية معرفة نستطيعومنها ,التخمني عن بعيدا واقعية .(بطريق الصدفة) عشوائي

.االحتماالت نسب إجياد بعد( الواحد) ميزان تقييم يعاد سوف :مالحظة

Page 7: معجزة ترتيب سور القرآن.pdf

7

العالقات من وىلاأل موعةاجمل( األول املبحث)

: وىلاأل اجملموعة عالقات إىل سريعة نظرة األربعة األنواع إىل( 1-اجلدول)يف (114) الـ الكرمي القرآن سور( جلغوم عبداهلل) قسم أن بعد األمين النصف روس بني تربط العالقات من جمموعة وجد, حسب الفردية والزوجية (2-دولاجل) يف-1 روالس) القرآن روس من األول النصف بني تربط وعالقات ,األيسر النصف روس مع اجلدول من

:اجملموعة هذه ضمن عالقات سبع منها نذكر 58-114)) الثاين النصف روس مع( 57

بأن االستنتاج إىل تقودنا( 4-صفحة 2-للجدول) سريعة حملة إن :(التناظر) األوىل العالقة 30 على حيتوي منها وكل الطول, متساوية الوسطية فاألعمدة, متناظرة األربعة اجملاميع . سورة 27 على حيتوي منها وكل كذلك متساوية اخلارجية واألعمدة سورة,

اآليات زوجيةال رووالس اآليات فرديةال روالس عدد بني النسبة نإ :(التناسب) الثانية العالقة فرديةال روالس أرقام جمموعالنسبة بني فإن كذلك .10 إىل 9 أي 60 إىل 54 تساوي !10 إىل 9 تساوي 3450)) اآليات زوجيةال روالس أرقام جمموعإىل (3105) اآليات

(ثانية نسخة 2-دولاجل) يف واأللوان باألعمدة التوضيح

Page 8: معجزة ترتيب سور القرآن.pdf

8

(:سةتجانامل وغري سةتجانامل روالس بني العجيب الربط) والرابعة الثالثة العالقتان

القرآن روس أرقام جمموع أن ونعلم, 6236 القرآن آيات عدد أن (1-دولاجل) من نعلم ربعةاأل عمدةاأل يف عداداأل جمموع أن البديهي من لذا يكون, 6555 يساوي 114 لـا

ومن, 6555 يساوي (ثالثة نسخة 2-دولاجل) يف محراأل واإلطار الصفراء رضيةاأل ذات زرقاأل واإلطار الزرقاء األرضية ذات األربعة دةعماأل يف عداداأل جمموع أن كذلك البديهي املتجانسة روللس( اآليات+ الترتيب) جمموع أن عجيبال أن اإل ,6236 يساوي الغامق

( اآليات+ الترتيب) جمموع وأن !6555 كذلك يساوي اجلدول من (األمين النصف) 2-دولاجل الحظ) 6236 يساوي اجلدول من (يسراأل النصف) املتجانسة غري روللس

حالة خمتلفة أن احتمالية حصول هذه (مليار)ختبار القد وجد احلاسوب بعد ( رابعة نسخة فردية تكون أن املتجانسة بالسور يقصد: )مالحظة ! 75,000إىل 1العالقة حبدود

فردية تكون أن املتجانسة وغري اآليات, زوجية الترتيب زوجية أو اآليات فردية الترتيب .(اآليات فردية الترتيب زوجية أو اآليات زوجية الترتيب

Page 9: معجزة ترتيب سور القرآن.pdf

9

(:القرآن من الثاين النصف رووس األول النصف روس بني األول الربط) اخلامسة العالقة

( القرآن روس من ولاأل للنصف) اآليات زوجيةال رولسل (اآليات) جمموع نوجد الباحث أ يساوي (القرآن من الثاين للنصف) اآليات زوجيةال روالس (أرقام) , وجمموع2690 يساوي (خامسة نسخة 2-دولاجل) الحظ. 2690 كذلك

Page 10: معجزة ترتيب سور القرآن.pdf

01

(الثاين والنصف األول النصف يف أعمدة أطوال تساوي, الربط الثاين) السادسة العالقة : (3A-اجلدول) القرآن روس من األول النصف يف الطول يف متساويان ناعمود يوجد

.(3B-اجلدول) الثاين النصف الطول يف يف متساويان وعمودان (النصفني بنيالربط الثالث ) السابعة العالقة:

من األول النصف يف املتجانسة غري السور عدد إىل املتجانسة السور عدد بني النسبة إن . متعاكستان فهما 29/28 تساوي الثاين النصف يف والنسبة 28/29 تساوي القرآن سور

(3B-اجلدول) و( 3A -اجلدول) الحظ

Page 11: معجزة ترتيب سور القرآن.pdf

00

:طرائ حماكاة العالقات : السابقة العالقات حملاكاة طريقتان هناك .(حصرا) السابقة العالقات حتقيق تستطيع اليت احلاالت عن احلاسوب يبحث أن: وىلاأل

السابقة بالعالقات (شبيهة عالقات أية) حتقيق تستطيع اليت احلاالت عن احلاسوب يبحث أن: الثانية للحصول حمتملة أخرى طرائ بأي بل فحسب هذا ليس, قيم وبأي تناسبات وبأي تناظرات بأي ( الثاين الطريق نسلك اجملموعة هذه يف. )جدا كبري الطريقتني نتائج بني والفرق, شبيهة عالقات على

.فقط األرضية امللونة ذات يقرأ خمتصر العالقات, من جيد مشقة يف متابعة التفاصيل القادمة :مالحظة

(:التناظر) األوىل العالقة حماكاة كيفية

تسلسلها حسب الكرمي القرآن روس أن( 2-دولاجل من واضح هو كما) األوىل العالقة من تبين لقد كل أن البديهي ومن, واأليسر األمين الطرفني بني روالس أعداد يف رتناظ حالة قتحق قد آياهتا وعدد

, بعضها عن بعضها تلفخي بطريقة تتوزع سوف احلاسوب يولدها اليت العشوائية األعداد من جمموعة حالة حتقق مل أو قتحق قد كانت إن املختبرة احلاالت بني وحبيادية يميز أن للحاسوب يمكن فكيف الشكل نقارن وعندما, االحتماالت مجيع متثل التناظرات من أنواع ستة فيه( 2-املخطط) إن تناظر؟

إن. B النوع من أنه بسهولة نكتشف( 2-املخطط) يف الستة األنواع مع( 2-للجدول) العام ليمنحه الستة احلاالت من تناظر حالة أي حتقيق يستطيع ألعداد ترتيب كل ليميز صمم قد الربنامجألعداد تناسب حالة يف يكون تناظر حالة حتقيق يستطيع ترتيب كل أن البديهي ومن, (1) الدرجة

.ر األعمدةوس

عمودين هناك أن نرى( 2-جدول) إىل ننظر فعندما, آخر توضيح إىل حيتاج التناسب إن موضوع

, 10:9 بنسبة أي ةورس 30 على حيتوي واآلخر ةورس 27 على حيتوي أحدمها الطول يف خمتلفني بكل مرورا 56:1 من x:y تناسب أي ققحي ترتيب فأي, النسبة هبذه ةختبرامل احلاالت نلزم لن

ترتيب يف حتققت اليت سبانتلقد حقق عالقة ا يكون 1:56 املعكوس التناسب إىل االحتماالت

Page 12: معجزة ترتيب سور القرآن.pdf

02

= 114/2يف حالة التناظر جيب أن يساوي x+y العددين جمموع أن البديهي من. )رآنيةالق روالس57)

:للتطبيق القابل القانون ما يشبه إىل األوىل العالقة حماكاة معلومات وتركيز صياغةأعيد سو

األعمدة أطوال بني رظتنا أي حتقيق يستطيع اعدد )114) لـ ترتيب كل :األوىل العالقة حماكاة (.1) مقدارها عددية قيمة على حيصل سوف أعاله مبين هو كما األربعة اميعاجمل بني تناسب بأيو

.التفاصيل ذكر دون العام الوصف يعتمد فهو, Abstraction التجريد يسمى التبسيط وهذا

:(التناسب) الثانية العالقة حاكاةم كيفية روالس عدد بني النسبة نإ: ! بني متساوينيكذلك تناس حقق قد رآينالق الترتيب فإن سابقا ذكر كما اآليات فرديةال روالس أرقام جمموع بني النسبة تساوي اآليات زوجيةال روالس وعدد اآليات فرديةال

تحقق قد احتماال 12 هناك, (ثانية نسخة 2-دولاجل الحظ. )اآليات زوجيةال روالس أرقام وجمموع : هي 12لـ ا واالحتماالت القرآين, الترتيب يف (فقط منها حدوا)

.معكوسها أو اآليات زوجيةال روالس عددو اآليات فرديةال روالس عدد بني النسبة نإ :أو ,معكوسها أو الزوجية اآليات جمموع إىل الفردية اآليات جمموع بني النسبة ساويت -1 :أو ,معكوسها أو الزوجية األرقام جمموع إىل الفردية األرقام جمموع بني النسبة ساويت -3 أو اآليات زوجيةال روالس أرقام وجمموع اآليات فرديةال روالس أرقام جمموع بني النسبة ساويت -2

.معكوسها .االحتماالت وجلميع معكوسها أو بسن أي قحيق عدادأل ترتيب كل لقبيل صمم قد الربنامج إن (ة عشريتاثن تكون ومعكوسها روالس عدد ومع ةست تكون معكوسها مع الثالثة نسبال :تنبيه)

ويستطيع ر,تناظ وبأي نسبة بأي وىلاأل العالقة حقق قد اعدد 114 لـ ترتيب كل :الثانية العالقة عددية قيمة على حيصل سوف السابق التفصيل يف املوضحة الطرائق من طريقة بأي النسبة نفس حتقيق

.حتقيقها يستطيع عالقة لكل( 1) مقدارها

(:املتجانسة وغري املتجانسة السور بني العجيب الربط) والرابعة الثالثة العالقتني حماكاة كيفية

. A,B,C,D الرموز هلا أعطيت وقد األعمدة من جماميع أربعة من يتألف (2-دولاجل) إن : أن فنتج, CD و AB اجملاميع يف األعداد مجعنا عندما حتققت قد( والرابعة الثالثة) تانوالعالق

A+B =6236 الكرمي القرآن آيات عدد وهو

Page 13: معجزة ترتيب سور القرآن.pdf

03

C+D =6555 114 إىل 1 من السور أرقام جمموع وهو A B C D جماميع أربعة لدينا يكون فعندما, االعتبار بنظر يؤخذان سوف آخران احتماالن هناك (AB : CD): وهي احتماالت, ثالثة هناكسيكون ف بعض, مع جمموعتني كل جنمع أن ونريد

.(AD : BC) و (AC : BD) و

بأية السابقة العددية العالقات حتقيق يستطيع اعدد 114 لـ ترتيب كل :والرابعة الثالثة عالقتانال (.2) درجتني على حيصلسوف أعاله الواردة الثالثة الطرائق من طريقة

(:القرآن من الثاين النصف رووس األول النصف روس بني الربط) اخلامسة العالقة حماكاة كيفية

( القرآن روس من ولاأل للنصف) اآليات زوجيةال روالس يف اآليات جمموع نفإ سابقا ذكرت كما . 2690 يساوي (القرآن من الثاين للنصف) اآليات زوجيةال روللس الترقيم , وجمموع2690 يساوي مل اليت والثاين األول النصفني بني العالقات ما هي :اآلن السؤال, (خامسة نسخة 2-دولاجل) الحظ

القرآين؟ الترتيب عالقات رصيد إىل أضفناها قد لكنا حتققت ولو القرآنية, روالس ترتيب يف ققتحت

وكذلك اخلاص, جمموعه عمود لكل عددية أعمدة مثانية من يتألف األول النصف جدول :توضيح .B, A بـ هلما لنرمز أعداد مثانية من مصفوفة جدول لكل أن هذا معىن, الثاين النصف جدول

املصفوفة يف عدد أي احلاسوب دجو لو A املصفوفة نفس يف ريتكر A عالقة فسيعد. املصفوفة يف عدد أي احلاسوب دجو لو B املصفوفة نفس يف ريتكر B عالقة فسيعد. املصفوفة يف عدد أي احلاسوب دجو لو A املصفوفة يف عدد أي يساوي B عالقة فسيعد. املصفوفة يف عددين أي جمموع احلاسوب دجو لو A يف عددين أي جمموع يساوي

جيمع ال, مثال فهو, منطقيان اجملموعني العددين أن شرط على) عالقةفسيعده B املصفوفة (.الزوجية روالس آيات عدد جمموع مع الفردية روالس أرقام جمموعبأكثر االحتماالت األربعة أعاله تفتح اجملال أمام احلاالت املختربة لتحقيق عالقات : معلومة

.طريقة مل تتحقق يف الترتيب القرآين( مئة)من

, ول والثايناأل نيالنصف أعداد بني ترابط حتقيق يستطيع اعدد 114 لـ ترتيب كل :اخلامسة العالقة .يحققها اليت العالقات بعدد الدرجات من عدد على يحصلس أعاله املوضحة الطرائق من طريقة بأي

(:الثاين والنصف األول النصف يف مشتركة صفة) السادسة العالقة حماكاة كيفية متساويان عمودان , ويوجد(15,15) القرآن روس من األول النصف يف متساويان نعمودا يوجد

:هو األسلوب. (3B-دولاجل) و( 3A-دولاجل) الحظ 12),(12 الثاين النصف يف

Page 14: معجزة ترتيب سور القرآن.pdf

04

يف عمودين وأي الطول, يف متساويني األول النصف جدول يف عمودين أي احلاسوب وجد لو (.1) واحدة درجة الترتيب مينح فسوف الطول, يف متساويني الثاين النصف جدول

ثالثة أيكذلك و الطول, يف متساوية األول النصف جدول يف أعمدة ثالثة أي احلاسوب وجد لو (.2) درجتني الترتيب مينح فسوف الطول, يف متساوية الثاين النصف جدول يف أعمدة

:لـ النصفني بني متعاكسة أو متساوية بسن حتقيق يستطيع ترتيب كل :بعةالسا العالقة حاكاةم :أو .املتجانسة غري روالس عدد إىل املتجانسة روالس عدد :أو. الترتيب زوجيةال روالس عدد إىل الترتيب فرديةلا روالس عدد .اآليات زوجيةال روالس عدد إىل اآليات فرديةال روالس عدد (هناك عشرات االحتماالت: معلومة) .حتقيقها يستطيع اليت العالقات بعدد درجات على يحصلس

:االوىل موعةنتائج اجمل مليار (1)منها , اخمتلف اعدد (114) يف كل ترتيب ترتيب مليارياخترب احلاسوب أكثر من

باستخدام نفس ترتيبمليار ( (1و , ولاألباستخدام أعداد عشوائية حسب ما ذكر يف اخليار ترتيباجلدول أدناه بشقيه . عداد بطريقة عشوائيةر القرآنية ولكن بعد خلط هذه األوعدد اآليات يف الس

.لكال اخليارين موعةاجمل يبني كيفية توزيع قابلية احلاالت املختربة على حتقيق عالقات األمين واأليسر

Page 15: معجزة ترتيب سور القرآن.pdf

05

:ول النتائجاتوضيح جلدإن اجلداول املستخدمة لعرض نتائج هذا البحث هلا القابلية على تلخيص كمية هائلة من املعلومات

ترتيب (يمليار)أكثر من اإلحصائي لقابليةيعرض التوزيع أعاله فمثال إن اجلدول, يف حيز صغري اليت سوف خيتربها احلاسوببعدد العالقات (املخازن)من احيجز عددإن برنامج احلاسوب , خمتلف

املخازن يف البداية تكون فارغة وعندما خيترب احلاسوب كل حالة , حلالة الصفر اإضافي اويضيف خمزنواعتمادا على هذا العدد سوف يخزن هذه النتيجة على حتقيقهاعدد العالقات اليت تستطيع حيسب

فمثال عندما خيترب احلاسوب , املتحققة بنفس عدد العالقات ايف خمزن حيمل عنوان (1)شكل الرقم وعندما خيترب (1)مبقدار (5)سوف يزيد رصيد املخزن رقم فعالقات ((5ستطيع حتقيق ي اترتيبعند انتهاء , (1)مبقدار ( 0)رقم خزن رصيد املسوف يزيد فستطيع حتقيق أية عالقة يال اترتيب

ليعطي , احلاسوب من اختبار ماليني احلاالت سوف يقدم إحصائية شاملة مبا تجمع يف كل خمزن :أعاله من اجلدول لنتائجل توضيحاتوهذه , االختباراتصورة واضحة وشاملة لقابلية مجيع

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

, على العدد الكلي للحاالت املختربة يف مجيع االختبارات بقسمة اجملموع الكلي للعالقات املتحققة وأن, عالقة( 0.46)هو عدد العالقات املتوقعة اليت حيققها أي ترتيب معدل أن هي املالحظة املهمة

. من الناحية اإلحصائية بعيد جدا عن املعدل هوفعالقات ( 7)الترتيب القرآين قد حقق

وهي خاصية مهمة Standard Deviationيبني مقدار االحنراف املعياري خريقبل األالسطر تبني درجة تقارب أو تشتت البيانات قيد و SDأو σرمز هلا عادة بـ جدا يف علم اإلحصاء ي

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

(7)سة اليت استطاعت حتقيق ستثنائية قيد الدراوالنتيجة اال( املعدل العام)بني عديبني الب خرياألالسطر وللحصول على تصور ,يف احلالتني أضعاف 8وهي أكثر من σ لـاعالقات مقاسة مبضاعفات

وفيه يظهر أن احلالة . علمي من جدول مستنسخ من موقع اءزأرفقت ج, مة هذه النتيجةظعتقرييب ل !!!رمليا 390إىل 1 نسبة احتمالية حدوثها تقاربفإن ( σ 7)اليت تبعد مبقدار

Page 16: معجزة ترتيب سور القرآن.pdf

06

الذي حقق العالقات السبع واليت من ضمنها العالقات العجيبة (الترتيب الوحيد)الترتيب القرآين هو و( (59هناك Score[7]يف السطر األعلى من اجلدولني األيسر واألمين أمام , الثالثة والرابعة

1ال اخليارين قيد الدراسة أي بنسبة احتمالية تقارب كحالة خمتربة ل (ملياري)حالة من أصل 626))العالقات ليس من ضمنهاعالقات (7)قد حققت أي ( وهي نسبة منخفضة للغاية)مليون 2.8إىل

إهنا نتيجة حامسة تنفي احتمالية الصدفة يف حصول هذه , يف الترتيب القرآينالعجيبة املتحققة .العالقات

( املبحث الثاين) العالقات من ثانية جمموعةو :األوىل والثانية والثالثة العالقات

58-114)) روالس الثاين والنصف( 1-57) روالس األول النصف, القرآن نصفي مع نتعامل عندما لقياس حمورا (19) العدد ومن األول, النصف يف اآليات أعداد لقياس حمورا 76)) العدد من ونتخذ ,27 ,27جمموعات أربع إىل تتوزع الكرمي القرآن روس فإن( معكوسة عالقة)الثاين النصف أعداد

السور ولكن( 4 صفحة 2-دولاجل) يف اجملاميع أعداد نفس إهنا( 4-دولاجل)الحظ 30 ,30 30و آية 76 من أقل منها كل يف اآليات عدد ةورس 27: األول النصف يف جند إننا. متاما خمتلفة كل يف اآليات عدد ةورس 27: الثاين النصف يف وجند. فأكثر 76 منها كل يف اآليات عدد سورة مع (4-دولاجل) بلقا. فأكثر 19 منها كل يف اآليات عدد ةورس 30و آية 19 من أقل منها

.التناسب نفس أنه الثانية واملالحظة ,التناظرنفس أنه األوىل املالحظة .(2-دولاجل)

العددي اإلعجاز عالقات يف 19 العدد أمهية إن للقياس؟ حمورا 76و 19 العددين نتخذ ملاذاولكن النصف يف 19 رقم ةورالس تقابل املصحف من الثاين النصف يف 76 رقم ةورالس أن كما, معروفة النصف يف استعمل الثاين النصف إىل ينتمي الذي (76) فالعدد. 76= 57+ 19 فهي األول وجد لقد: ةمعلوم. الثاين النصف يف استعمل األول النصف إىل ينتمي الذي (19) والعدد األول

على للداللة( الثاين النصف أعداد) 58-114 من األعداد استخدم القرآن أن جلغوم عبداهلل الباحث ةورس) هي الثاين النصف روس أطول فإن لذلك, وبالعكس األول النصف روس يف اآليات أعداد !آية 56 هو آياهتا وعدد (املدثر

(3105) هو 54 الـ روالس ترتيب مواقع على الدالة األرقام جمموع أن عجباأل الثالثة واملالحظة السابقان العددان ومها (3450) هو 60 الـ روالس ترتيب مواقع على الدالة األرقام جمموع وأن

.10 إىل 9 بينهما النسبةمنا سابقا أن لقد عو ! األول املبحث من الثانية العالقة يف ظهرا اللذان

! فقطالثانية بعد اختبار مليار حالة مل جيد احلاسوب حالة واحدة استطاعت حتقيق العالقة : معلومة !مليون حالة خمتربة 1.5يف كل حتدث مبعدل مرة واحدة الثالثةالعالقة : ومعلومة

Page 17: معجزة ترتيب سور القرآن.pdf

07

روس جماميع بني تناسب بأيو تناظر أي حتقيق يستطيع اعدد 114 لـ ترتيب كل :وىلاأل العالقة (.1) مقدارها عددية قيمة على يحصلس أعاله املبينة التفاصيل حسب والثاين األول نيالنصف

العالقة يف للتناسب مساو وبتناسب وىلاأل العالقة حقق اعدد 114 لـ ترتيب كل :ثانيةال العالقة املبحث هذا من األوىل العالقة يف للتناسب مساو أو األول املبحث عالقات جمموعة من األوىل

(.1) مقدارها عددية قيمة على يحصلس

هسنف التناسب حتقيق ويستطيع وىلاأل العالقة حقق قد اعدد 114 لـ ترتيب كل :الثالثة العالقة (.1) مقدارها عددية قيمة على يحصلس األعمدة تلك حمتويات جمموع وبني األعمدة أطوال بني

:يةاآلت احلقائق سنكتشفف آياهتا عدد باعتبار الكرمي القرآن روس رتبنا إذا :رابعةال العالقة .قصرية ةورس 57+ طويلة ةورس 57: متساويتني جمموعتني إىل االعتبار هبذا القرآن روس تنقسم

جمموعات 6 هناك أن أي, ةورس 19 من منها كل تتألف جمموعات ثالث إىل جمموعة كل وتنقسم :اآليت النحو على والزوجية الفردية خاصية حسب تنقسم الستة واجملموعات

Page 18: معجزة ترتيب سور القرآن.pdf

08

.اآليات زوجية سور 9+ اآليات فردية سور A :10 األوىل اجملموعة .اآليات زوجية سور 7+ اآليات فردية سورة B :12 الثانية اجملموعة .اآليات زوجية سورة 12+ اآليات فردية سور C :7 الثالثة اجملموعة .اآليات زوجية سورة 12+ اآليات فردية سور D :7 الرابعة اجملموعة .اآليات زوجية سور 10+ اآليات فردية سور E :9 اخلامسة اجملموعة .اآليات زوجية سور 10+ اآليات فردية سور F :9 السادسة اجملموعة اجملموعتني عكس الثانية اجملموعة وأن والسادسة, اخلامسة اجملموعتني عكس األوىل اجملموعة أن الحظ .والرابعة الثالثة

ألن طبيعي شيء أقسام ستة إىل روالس انقسام أن البعض يتوهم قد (114) روالس عدد نأل 24 متيز أن تستطيع 5)-دولاجل) تالحظ لو, التصور هبذا ليس لكن األمر ,19 × 6 =114

وقعت لو أنه هذا ومعىن, اآليات من نفسه العدد هلا أكثر أو سورتني متثل جمموعة كل, ملونة جمموعة المتنعت الستة اجملموعات من جمموعتني بني الفاصل احلد جانيب على التكرار جماميع إحدى سور من 11 األول العدد لزحف, بواحد أقل A العمود يف روالس عدد أن لو مثال أقصد, القسمة قابلية للمجموعتني الفاصل احلد جانيب على 11 األعداد وألصبحت A العمود أسفل إىل B العمود أعلى

A وB العمود يف األوىل 22 أن كذلك تالحظ أن تستطيع, التقسيم لويبط C يف تكونس B و .D يف كونت E يف األوىل 60 الـ , كذلكC يف كونت D يف األوىل 40

Page 19: معجزة ترتيب سور القرآن.pdf

09

:باحلاسوب العالقة الرابعة حماكاة

بنتيجة وخيرج جمموعة, كل ضمن والزوجية الفردية األعداد عدد بني بسالن احلاسوب يرصد سوف سوف, الكرمي القرآن روس مع حصل مبا شبيه احلاالت يف متاثل حتقيق استطاع قد الترتيب كان إن نسب من قبلوي جمموعتني, إىل تنقسم الستة اجملموعات أن شرط على نسبة أي احلاسوب لقبي

: يأيت كما كانت جمموعات لثالث النسب أن لو مثال, متعاكسة أو متساوية تكون أن اجملموعة(x/y, y/x, x/y )لـ قيم وبأي اجملموعة, داخل للقيم ترتيب بأي x و y ,قد نعدها سوفف

.x +y =19 جمموع أن بد ال طبعا, القرآن روس ترتيب حققه ما حققت

املبينة اخلطوات حسب عشوائية بطريقة تكوينه يتم اعدد 114 لـ ترتيب كل :ةرابعال العالقة والزوجية الفردية األعداد بني تناسب حتقيق ويستطيع متساوية أقسام 6 إىل ينقسم أن ويستطيع أعاله

(.1) مقدارها عددية قيمة على سيحصل السابق التوضيح يف ذكر ما حسب

:سادسةوالعالقة ال امسةاخل العالقة ,ازوجي اعدد 57و افردي اعدد 57 إىل تنقسم 114 إىل 1 من األعداد جمموعة أن البديهي من

يف اآليات أعداد على للداللة عددا 32 الفردية األعداد بني من استخدم القرآن أن للنظر امللفت األعداد بني من استخدمو, A2 والعمود A1 العمود( 6-دولاجل) يف موضح كما 25 كرتو هروس

أن هذا ومعىن, (التساوي الحظ) B2 والعمود B1 العمود ,عددا 25 كرتو عددا 32 الزوجية األعداد سلسلة بني من هروس يف اآليات أعداد على للداللة القرآن يف املستخدمة األعداد عدد

:آخر تناسق التناسق وداخل. عددا 50 املستخدمة غري األعداد وأن عددا, 64 يساوي 114-1 (A4 و A3 األعمدة) 9 كروت عددا 20 استخدم 1-57 السلسلة يف الفردية األعداد بني من

B4 و B3 األعمدة,20 كروت 9 استخدم 58-114 السلسلة يف الزوجية األعداد بني ومن .(والتبادل التساوي الحظ)

(الحقا العدد هذا ندرس سوف! ) 319: هو يستخدمها مل اليت األوىل التسعة األعداد جمموع وأن

الفردية األعداد بني متساو استخدام حتقيق يستطيع اعدد 114 لـ ترتيب كل :ةامساخل العالقة يف ذكر ما حسب روالس ألرقام كداللة املستخدمة( 1-114) األعداد جمموعة ضمن والزوجية (.1) مقدارها عددية قيمة على سيحصل السابق التفصيل

( 58-114) و( 1-57) اجملموعتني من األعداد استخدام يستطيع ترتيب كل :ةسادسال العالقة (.1) مقدارها عددية قيمة على سيحصل نسبة وبأي تبادل تناسق أو تساو تناسق حيقق حبيث

Page 20: معجزة ترتيب سور القرآن.pdf

21

:ةسابعال العالقة

روس, جمموعتني إىل اآليات أعداد باعتبار والقصر الطول نظام حسبالكرمي القرآن روس تنقسم . 40-286 من وحتديدا آية, 39 على آياهتا عدد زاد ما بأهنا هلا تعريفا نضع أن ميكن (طويلة)

القرآن روس تنقسم. آية 3-38 من وحتديدا, آية 39 من أقل آياهتا عدد كان ما (قصرية) رووس :متساويتني جمموعتني إىل النظام هذا حسب

7)-دولاجل) الحظ الثاين النصف يفسور 9 و األول النصف يف سورة 48 منها :طويلة ةورس 57 يف وتبادل ساوت. األول النصف يفسور 9 و الثاين النصف يف سورة 48منها :قصرية ةورس 57

!األعداد

Page 21: معجزة ترتيب سور القرآن.pdf

20

واجملموعتان ,متساويتني جمموعتني إىل انقسام حتقيق ستطيعي اعدد (114) أي :ةعابسال العالقة (.1) مقدارها عددية قيمة على حصليسأعاله ذكر ما حسب تبادل أو تناظر حتقيق تستطيعان

الثاين النصف يف 48لـ اول والقصرية يف النصف األ 48لـ االطويلة ر وإن الس :العالقة الثامنة غري متجانسةسورة 48و متجانسةسورة 48تنقسم بدورها إىل , سورة 96واليت جمموعها الكلي

!

ول يف النصف األ 9لـ ايف النصف الثاين والسور القصرية 9لـ ار الطويلة ون السإ :العالقة التاسعة .غري متجانسةر وس 9و متجانسةر وس 9تنقسم بدورها إىل , ورةس 18واليت جمموعها

Page 22: معجزة ترتيب سور القرآن.pdf

22

(الثالث املبحث) العالقات من ثالثة جمموعة

ههو الذي ال يقبل القسمة إال على نفس العدد األويل: Prime Numbersولية األعداد األنعلم أن كل ,داعداأل تكلما كبرعداد املركبة األإىل ولية األعداد األتقل نسبة و, الواحدعلى و :ةورعدد آيات السواآلخر هو ةورتسلسل السأحدمها هو , ة يف القرآن الكرمي متتلك إحداثينيورس

.عدد أويلحنصل على ر القرآن وجنمع اإلحداثيات جلميع سعندما :وىلالعالقة األ (1+7) + (2+286) + (3+200) + . . . . . . . + (114+6) = 12791

.ر حنصل على عدد أويلوناتج مجيع الس ة مث جنمعوركل س يعندما نضرب إحداثيو :العالقة الثانية(1×7) + (2×286) + (3×200) + . . . + (114×6) = 209029

يمثل الذي 57 الرقم حتمل (احلديد سورة) أن املعلوم من: ثبات سورة املنتصف, العالقة الثالثة 114 الـ الكرمي القرآن روس من سورة كلإحداثيي عندما نضربف, الكرمي القرآن سور منتصف

تكون سوفف يا,تصاعدعداد األ عندما نرتبو, آخر اعدد 114 على حنصل سوفف آياهتا, بعدد امترتيبه على انحتافظ اللتان تانالوحيد تانورالس مها (احلديد) ةوروس (الفاحتة) ةورس نإ املفاجأة

.90 إىل 1 وحدها ة املنتصفوراحتمالية ثبات س نسبة وجد احلاسوب أنلقد املصحف, روس بني

اجملموع أن املفاجأة, آية 29 من تتألف 57 الرقم حتمل اليت (احلديد) سورة إن: ةرابعال العالقة معاحلديد ورةس تسلسل ضرب حاصل , وأن1653 يساوي 57 إىل 1 من رقام السورأل التراكمي

ما, (احلديد) املنتصف ةورس يف إال التوافق هذا مثل حيصل مل, ! 1653 كذلك يساوي آياهتا عدد .200 إىل 1 االحتمالية نسبة وجد احلاسوب أن التوافق؟ هذا مثل حصول احتمالية هي

وأن 6555 القرآن سور أرقام جمموع أن ونعلم 6236 القرآن آيات عدد أن نعلم: ةامساخل العالقة: وهي الكرمي القرآن يف روس مخس هناك أن :األوىل املالحظة .(319) يساوي العددين بني الفرق

آياهتا عدد مع ةورس كل رقم مجع حاصل, (8-دولاجل) (واملاعون الغاشية, املعارج, الزمر, احلجر,) ,15) اخلمس روالس أرقام جمموع أن وامللفت للنظر. الكرمي القرآن روس عدد وهو (114) يساوي

حصول احتمالية نسبة هي وما قصد؟ أم صدفة هي , فهل((319 يساوي( 107 ,88 ,70 ,39 !!!حماولة مليار (1) اختبار بعد واحدة مماثلة حالة احلاسوب دجي مل, اجلواب ؟الصدفة هذه مثل

يساوي القرآن من آية آخر وإىل البسملة آية من القرآن آيات أرقام جمموع إن: السادسة العالقةالقرآن آيات أرقام جمموع) قسمة حاصل إن( 8-دولاجل) من األخري السطر الحظ, 333667 العدد هو القسمة وباقي 50 يساوي( 6555 جمموع أرقام سور القرآن) على (333667

للمرة يظهر الذي (319) يساوي العدد 5917 والعدد 6236 بني الفرق أن العجيب, 5917 ! 36000هو واحد إىل الةاحلاسوب أن نسبة احتمالية حصول مثل هذه احل وجد! الثالثة

Page 23: معجزة ترتيب سور القرآن.pdf

23

الكرمي معلومات عددية عن سور القرآن 8 -جدول A أرقام سور القرآن الكرمي حسب ترتيبها يف املصحف B عدد آيات سور القرآن الكرمي حسب العد الكويف

C أمساء سور القرآن الكرمي D=A×B D العدد الناتج من ضرب رقم السورة يف عدد آياهتا E اجملموع التراكمي ألرقام سور القرآن F اآليات يف سور القرآناجلمع التراكمي لعدد

G 28= 7إىل 1قمثال سورة الفاحتة مجع االعداد من , جمموع أرقام اآليات لكل سورة G Hاجلمع التراكمي لقيم العمود 114إىل 58سور النصف الثاين من 57إىل 1سور النصف االول من

Bو Aقيم مستنتجة من االعمدة قيم أصلية Bو Aقيم مستنتجة من االعمدة قيم أصليةA B C D E F G H A B C D E F G H لفاحتةا 7 1 ة 22 58 28 28 7 1 7 316118 253 5126 1711 1276 اجملادل 316418 300 5150 1770 1416 احلشر 24 59 41069 41041 286+7 3=2+1 572 البقرة 286 2 316509 91 5163 1830 780 املمتحنة 13 60 61169 20100 493 6=3+2+1 600 آل عمران 200 3 316614 105 5177 1891 854 الصف 14 61 76745 15576 669 10 704 النساء 176 4 316680 66 5188 1953 682 اجلمعة 11 62 84005 7260 789 15 600 املائدة 120 5 316746 66 5199 2016 693 املنافقون 11 63 97700 13695 954 21 990 األنعام 165 6 316917 171 5217 2080 1152 التغابن 18 64 119021 21321 1160 28 1442 األعراف 206 7 316995 78 5229 2145 780 الطالق 12 65 121871 2850 1235 36 600 األنفال 75 8 317073 78 5241 2211 792 التحرمي 12 66 130256 8385 1364 45 1161 التوبة 129 9 317538 465 5271 2278 2010 امللك 30 67 136251 5995 1473 55 1090 يونس 109 10 318916 1378 5323 2346 3536 القلم 52 68 143877 7626 1596 66 1353 هود 123 11 320294 1378 5375 2415 3588 احلاقة 52 69 150093 6216 1707 78 1332 يوسف 111 12 321284 990 5419 2485 3080 املعارج 44 70 151039 946 1750 91 559 الرعد 43 13 321690 406 5447 2556 1988 نوح 28 71 152417 1378 1802 105 728 إبراهيم 52 14 322096 406 5475 2628 2016 اجلن 28 72 157367 4950 1901 120 1485 احلجر 99 15 322306 210 5495 2701 1460 املزمل 20 73 165623 8256 2029 136 2048 النحل 128 16 323902 1596 5551 2775 4144 املدثر 56 74 171839 6216 2140 153 1887 اإلسراء 111 17 324722 820 5591 2850 3000 القيامة 40 75 177944 6105 2250 171 1980 الكهف 110 18 325218 496 5622 2926 2356 اإلنسان 31 76 182795 4851 2348 190 1862 مرمي 98 19 326493 1275 5672 3003 3850 املرسالت 50 77 191975 9180 2483 210 2700 طه 135 20 327313 820 5712 3081 3120 النبأ 40 78 198303 6328 2595 231 2352 األنبياء 112 21 328394 1081 5758 3160 3634 النازعات 46 79 201384 3081 2673 253 1716 احلج 78 22 329297 903 5800 3240 3360 عبس 42 80 208405 7021 2791 276 2714 املؤمنون 118 23 329732 435 5829 3321 2349 التكوير 29 81 210485 2080 2855 300 1536 النور 64 24 329922 190 5848 3403 1558 االنفطار 19 82 213488 3003 2932 325 1925 الفرقان 77 25 330588 666 5884 3486 2988 املطففني 36 83 239366 25878 3159 351 5902 الشعراء 227 26 330913 325 5909 3570 2100 االنشقاق 25 84 243737 4371 3252 378 2511 النمل 93 27 331166 253 5931 3655 1870 الربوج 22 85 247653 3916 3340 406 2464 القصص 88 28 331319 153 5948 3741 1462 الطارق 17 86 250068 2415 3409 435 2001 العنكبوت 69 29 331509 190 5967 3828 1653 األعلى 19 87 251898 1830 3469 465 1800 الروم 60 30 331860 351 5993 3916 2288 الغاشية 26 88 252493 595 3503 496 1054 لقمان 34 31جدةالس 30 32 332325 465 6023 4005 2670 الفجر 30 89 252958 465 3533 528 960 332535 210 6043 4095 1800 البلد 20 90 255659 2701 3606 561 2409 االحزاب 73 33 332655 120 6058 4186 1365 الشمس 15 91 257144 1485 3660 595 1836 سبأ 54 34 332886 231 6079 4278 1932 الليل 21 92 258179 1035 3705 630 1575 فاطر 45 35 332952 66 6090 4371 1023 الضحى 11 93 261665 3486 3788 666 2988 يس 83 36 332988 36 6098 4465 752 الشرح 8 94 278318 16653 3970 703 6734 الصافات 182 37 333024 36 6106 4560 760 التني 8 95 282234 3916 4058 741 3344 ص 88 38 333214 190 6125 4656 1824 العلق 19 96 285084 2850 4133 780 2925 الزمر 75 39رغاف 85 40 333229 15 6130 4753 485 القدر 5 97 288739 3655 4218 820 3400 333265 36 6138 4851 784 البينة 8 98 290224 1485 4272 861 2214 فصلت 54 41 333301 36 6146 4950 792 الزلزلة 8 99 291655 1431 4325 903 2226 الشورى 53 42 333367 66 6157 5050 1100 العاديات 11 100 295660 4005 4414 946 3827 الزخرف 89 43 333433 66 6168 5151 1111 القارعة 11 101 297430 1770 4473 990 2596 الدخان 59 44 333469 36 6176 5253 816 التكاثر 8 102 298133 703 4510 1035 1665 اجلاثية 37 45 333475 6 6179 5356 309 العصر 3 103 298763 630 4545 1081 1610 األحقاف 35 46 333520 45 6188 5460 936 اهلمزة 9 104 299504 741 4583 1128 1786 حممد 38 47 333535 15 6193 5565 525 الفيل 5 105 299939 435 4612 1176 1392 الفتح 29 48 333545 10 6197 5671 424 قريش 4 106 300110 171 4630 1225 882 احلجرات 18 49 333573 28 6204 5778 749 املاعون 7 107 301145 1035 4675 1275 2250 ق 45 50 333579 6 6207 5886 324 الكوثر 3 108 302975 1830 4735 1326 3060 ارياتالذ 60 51 333600 21 6213 5995 654 الكافرون 6 109 304200 1225 4784 1378 2548 الطور 49 52 333606 6 6216 6105 330 النصر 3 110 306153 1953 4846 1431 3286 النجم 62 53 333621 15 6221 6216 555 املسد 5 111 307693 1540 4901 1485 2970 القمر 55 54 333631 10 6225 6328 448 اإلخالص 4 112 310774 3081 4979 1540 4290 الرمحن 78 55 333646 15 6230 6441 565 الفلق 5 113 315430 4656 5075 1596 5376 الواقعة 96 56 333667 21 6236 6555 684 الناس 6 114 315865 435 5104 1653 1653 احلديد 29 57A B C D E F G H A B C D E F G H

Page 24: معجزة ترتيب سور القرآن.pdf

24

اليت تظهر ! (احلديد ةورس) وأمام Fيف العمود , (8-دولاجل) من األخري السطر يف: ةسابعال العالقة النصف روس يف اآليات أعداد جمموع ميثل الذي 5104 العدد يظهر! يف العالقات وللمرة الثالثة

يرصد سوف, 319 للعدد الرابع الظهور الحظ. 16 × 319 يساوي وهو القرآن, من األول هي ما, التوافق هذا يف حصل ملا مشاهبة صفة فيه (57) العدد أمام عدد أي ظهور احلاسوب

.4300 إىل 1 االحتمالية نسبة وجد احلاسوب أن االحتمالية؟

األرقام جمموع ميثل والذي, ةسادسال العالقة يف ظهر الذي 333667 العدد إن :ةثامنال العالقة مرتبة كل ضرب حلاصل الكلي اجملموع إن: اآلتية اخلاصية ميلك املصحف آيات ترقيم يف املستخدمة

:نإ أي, الكرمي القرآن سور عدد وهو 114 يساوي تليها واليت العدد من العالقة؟ هذه مثل حصول احتمالية هي ما. 7×6 + 6×6 + 6×3 + 3×3 + 3×3 = 114

.140 إىل 1 االحتمالية نسبة: اجلواب

مل يستطع حققت عالقتني (ورس مخس)العالقة اخلامسة رأينا يف: (عجيبةارتباطات ) العالقة التاسعة :اآلتية العجيبة حتقق العالقات نفسها اخلمس روالسهذه و, ترتيب حتقيقها مليار (1)أي ترتيب من

حنتاج إىل عمل عشر سوفف (اخلمس روالس) من تنيورس كلنقارن من البديهي أنه لكي تنيورالس يرقم بني الفرق نإ :يأيتيتبني ما املقارنات العشرمن العجيب أنه يف كل, مقارنات (. أدناه 9-اجلدول يف العشرة اجملاميع مقارنات انظر إىل) متساو تنيورالس آيات عدد بني والفرق

.900إىل 1 هي رتباطاتهذه اإلمثل أن نسبة احتمالية حصول تبني, اختبار مليار (1)من نتائج

يف ورد مبا شبيهة عددية عالقات حيقق اعدد 114 لـ ترتيب كل :السابقة عستال العالقات .حيققها اليت العالقات بعدد الدرجات من عدد على يحصلس السابقة عستال العالقات

Page 25: معجزة ترتيب سور القرآن.pdf

25

(:319) الكرمي القرآن على االقتراء كشف منظومة إن, الدراسة هذه يف يدخل مل خامس ظهور وهناك مرات, أربع( 319) العدد ظهر كيف للتو رأينا

, 6555( القرآن روس تسلسل جمموع) و 6236( القرآن آيات عدد) بني ربط قد( 319) العدد آيات عدد جمموع)و. 333667( !القرآن روس آيات أرقام جمموع)و 114( القرآن روس عدد)و

حتميه عددية وأنظمة بقوانني الكرمي ابهكت اهلل أحاط لقد, 5104( !القرآن روس من األول النصف النظام هذا إن .وحتفظه القرآن حترس اليت احلماية أنظمة من هي السابقة العالقاتو ,لتدخ أي من

هذا على وكمثال, القرآن روس من سورة أي يف نقص أو زيادة أو تبديل أو تغيري أي حدث لو خيتل من األخريتني اآليتني وجود بعدم وادعائه( خليفة رشاد) املدعو بافتراء تطيح املنظومة هذهإن ف احلفظ مبجرد (والسادسة واخلامسة والرابعة الثالثة) التحقق يف عالقات أربع أهم تفشل حني ,(التوبة) سورة .يف نفس اجملموعة( وىل والثانيةاأل) وتفشل كذلك العالقتان! 127 إىل 129 العدد تغيري

أقدم (خليفة رشاد)فتراء املدعو اولدحض , أربع مرات (319) العدد ظهور يف الصدفة لنفيو : دليلني

لـ واحد ترتيب إجياد يستطع مل ترتيب مليار (1) احلاسوب اختبر أن وبعد أنه سابقا علمنا :أوال العدد ظهور احتمالية تنفي النتيجة هذه !العالقة اخلامسةب عالقة شبيهة حتقيق يستطيع ادعد (114)

.قاطعا نفيا الصدفة بطريق (319)

العدد فيها ظهر اليت األربعة املواقع يف تظهر اليت األعداد لريصد صمم قد احلاسوب برنامج إن :ثانيا األعداد من عددين أي تساوي يرصد فعندما, احلاسوب تربهاخي اليت احلاالت من حالة لكل( 319)

أعداد ثالثة أية تساوي يرصد وعندما ,(1) مبقدار 2 رقم املخزن حمتويات يزيد األربعةيف املواقع خزنامل حمتويات يزيد أعداد أربعة تساوي يرصد وعندما ,(1) مبقدار 3 رقم املخزن حمتويات يزيد( 10-دولاجل), األعداد لتكرار شاملة صورة على احلصول أمكن األسلوب هبذا, (1) مبقدار 4 رقم ترتيب أن يوضح اجلدول من ولاأل السطر .املختبرة احلاالت مجيع لقابلية اإلحصائي التوزيع يبين أنه يبين الثاين والسطر, مواقع أربعيف ( عددنفس ال)ظهور فيه حدث الذي هو (فقط) القرآنية روالس .مواقع ثالثةيف (نفس العدد)ظهر فيه احلاسوب ختربهاترتيب مليار (1) من ترتيب أي يوجد ال

العالقات وبني املعدل (اهلائلة)واملسافة SDواالحنراف املعياري meanاجلدول كذلك املعدل يبني ملاذا هائلة؟ ولكن , (SD 27.70)وهي اليت حتققت يف الترتيب القرآين ربعاأل

.سيتبني السبب يف األسطر القادمة

Page 26: معجزة ترتيب سور القرآن.pdf

26

؟ ) σ25( ما معىن ق ! )σ 27.70)مبقدار لدععن امل دبعت نتيجة الترتيب القرآينأما , مليون العدد أو مائةالعدد مثال نذكر عندماعداد األ مقدار روصتال خيتلف معظم البشر يف

وللتوضيح سوف أستعني مبقالة ! البشر إىل توضيح مجيعيحتاج سف فلكيةمبقاييس عداد تكون األ عندما .كتاب املقالة مبني أدناه علمية منشورة ومتوفرة على شبكة االنترنت عنواهنا وأمساء

Page 27: معجزة ترتيب سور القرآن.pdf

27

:(عالهاملصورة واملعروضة أ)من املقالة 5صفحة المن فقرات فصرتب سوف أترجم

حالة حتدث ( σ 20)يبعد عن املعدل مبقدار ما ثديتبني أن حصول ح 2اجلدول يف :تقول املقالة ماأ, !صفر 86ه وأمام 1.453 العدد أي, سنة 1.453e+86باملقاييس الرياضية مرة واحدة كل

(25 σ ) 1.309فهي حتدث مرة واحدة كلe+135 ةفلكيمبقاييس داعداأل ههذ وألن ,!سنة تراوح ي عتقد أن عددهاي واليت !ملقارنة مع عدد جزيئات الكونفضل أن تكون األفا هاروصعب تصيو

(σ 20) يبعد ثدحإمكانية حصول وهلذا فإن 1.0e85 (Clair, 2001.)و 1.0e73بني حنن نتحدث عن , عشرة أضعاف عدد جزيئات الكون على أقل تقدير فهي عندما تقاس بالسنوات

(20 σ ) أما عندما نتحدث عن(25 σ ) أمام العدد املذهل السابق اصفر 52فيجب إضافة!!! .نعلم , مليون بطاقة 2.5اع منه بي ايانصيبلنفرض أن هناك , رضيةر أقرب وباملقاييس األوصوإلعطاء ت

لذلك فإن احتمالية الفوز بشكل . 0.0000004تساوي ن احتمالية الفوز يف هذا اليانصيبأ ما ثدمبعىن أن احتمالية حصول ح 0.0000004ªمن املرات يساوي (a)متكرر وبدون انقطاع

بشكل متكرر وبدون انقطاع مرة 22أو 21حتمالية الفوز يف هذا اليانصيب كا( σ 25)يبعد !!!ولنفس الشخص صاحب احلظ السعيد

(σ 25)وليس ! (σ 27.7)د بعالسابقة يف البحث ت نتيجة العالقات االربع: مالحظة

(عالقة 7 + 9 + 9 = 25) البحث عالقات جلميع النهائية جائالنت

ل بأن يحققها وجلميع احلاالت املختربة من ق ملعرفة العدد الكلي من العالقات اليت يستطيع أي ترتيبيف , مليار حماولة (1)نتائج اختبار ل التوزيع اإلحصائي أدناه ميثل يف الشكل يسراأل اجلدول, احلاسوب

نتائج التوزيع اإلحصائي لمين ميثل واجلدول األ, اعشوائي اعدد( 114)د احلاسوب لوكل حماولة يولكن بعد (114)لـ ا ر القرآن الكرميونفس أعداد سباستخدام أخرى حماولةمليار ( 1)اختبار

من عدد العالقات اليت يف كل حماولة يتحقق احلاسوب .كل حماولةقبل لألعداد اخللط العشوائيويعرضها كما عالقاتال قابليتها لتحقيقيصنف احلاالت حسب وحققها عداد أن ياأل يستطيع ترتيب

يف ,باإلضافة إىل خزهنا يف ملفات بشكل دائمي وخزن تفاصيل احلاالت املتميزة, أدناهيف اجلداول .يف ملفات أخرى حالة ظهورها

هو الترتيب الوحيد (الترتيب القرآين)يتبني أن , هدنايسر أمن السطر األعلى يف اجلدولني األمين واأللعدد العالقات اليت حققتها احلاالت ( meanاملعدل العام )وأن , عالقة( 25)الذي يستطيع حتقيق

Page 28: معجزة ترتيب سور القرآن.pdf

28

عالقة اليت ( 25) الـ عن تبعد بعد املشرقنيهي فعالقة ( (2.09يساوي ريسدول األاجليف املختربة( 25) الـو( 2.09)أن البعد بني املعدل هي املالحظة الثانية املهمة جداو, حققها الترتيب القرآين

, يف الصفحة السابقةكما مر بنا املقاييس اإلحصائيةوهو بعد هائل حسب ( 17.95σ)يساوي مليار حماولة مل جيد احلاسوب حالة واحدة تستطيع حتقيق أكثر من ( 1)أنه بعد هي املالحظة الثالثةو !عالقة( 13)

:يأيتما ميكن مالحظة, ميندول األاجليف

والسبب أنه مبجرد , score[6]السطر فوقن مجيع احلاالت املختربة قد قفزت إىل األعلى إىل ما أ .تلقائياعالقات تتحقق ر القرآن الكرمي فهناك سبعواستخدام نفس أعداد س

.عالقة( 25)من أصل !عالقة (18)للحاالت املختربة مل تتجاوز القصوىن الطاقة إ .عالقة فقط (7.83) يساوي للقدرة على حتقيق العالقات mean وأن املعدل العام

(17.45σ)ال زالت كبرية جدا فهي تساوي ( 25) الـو mean املسافة بني املعدلوأن

Page 29: معجزة ترتيب سور القرآن.pdf

29

نستطيع أن واآلن , (25σ) و( 20σ) املعىن املذهل لـ 27و 26علمنا سابقا يف الصفحتني أهنا نقرأ (15σ)أمام و, 26الصفحة يف نفسه باستخدام اجلدول السابق .(17.5σ) نستنتج معىنمرة ) أهنا حالة حتدث نقرأ( 20σ)وأمام , (سنة 1.090e+48مرة واحدة كل ) حالة حتدثعلى حالة حتدث (17.5σ)أن ببأخذ املعدل نستطيع القول و, (سنة 1.453e+86واحدة كل

أن تقدير العلماء 27صفحة المن وقد علمنا سابقا (سنة 1.00e+57مرة واحدة كل ) أقل تقديرو 1.0e73)يتراوح بني النظر عن صحة أو خطأ تقديراهتمبغض , لعدد جزيئات الكون

1.0e85). يف العددية املعجزة عظمة وصف عن قاصر عال مهما وصف أن كل: من املعلومات السابقة يتبني

سور ترتيب يف عددية معجزة بوضع إهليا قصدا هناك أن خلصةستامل والنتيجة ,القرآين الترتيباهلل كما من حمفوظ وأنه اهلل, عند من منزل الكرمي القرآن أنعلى للناس آية لتكون, القرآن

.نزل

( آالف) منها وهناكقحمن العالقات العددية مت الت( ققط فنةحل)لة ذهالنتيجة امل هذه قإن, للعلم .يكتشفها من تنتظر من العالقات( ا اهللإل هعلما اليوم)ق منها حتي نمن العالقات تنتظر م

!تعلي ال حيتاج إىل خرب علمي اهليئة األوربية لألحباث النووية املعروفة بـ )أعلن العلماء يف 2012 عام الرابع من متوزيف

CERN ) على الشاهد يف املوضوع أن العلماء ,كونات الذرةجديد يف م يمسجعن اكتشافواجلرأة قد أصبحت لديهم القناعةف سيم وال يعرفون صفاتههذا اجلشاهدوا مل ي الرغم من أهنم

هلا اختباراهتم ن نتائجسيم ألوجود هذا اجلعن بشكل رمسي يف االوساط العلمية العاملية لإلعالن 2بكالم آخر أن احتمال اخلطأ يف نتائجهم حوايل الواحد إىل ,(5σ) مصداقية إحصائية تقع ضمن

.يف الشكل أدناه نرى لقطة للخرب من إحدى اجملالت العلمية .مليون

Page 30: معجزة ترتيب سور القرآن.pdf

31

:العالقات وزن يف النظر إعادة العالقات, لوزن( الصفر)و( الواحد) قيم استخدمت( املساواة) مبدأ على واعتمادا البحث بداية يف

تتفاوت العالقات حصول احتمالية أن أدناه 12)-اجلدول) من وحتديدا البحث, نتائج من تبين وقد احتمالية بينما ,(1/7) األوىل اجملموعة يف األوىل العالقة حصول احتمالية إن فمثال, كبري بشكل

الوزن نستخدم أن املعقول غري من ويكون, (1/27000) الثانية اجملموعة يف الثالثة العالقة حصول( 1) األوىل العالقة وزن يكون عندما أنه( العدل) مبدأ على اعتمادا فاملفترض, العالقات جلميع نفسه

القرآين الترتيب ارتفاع ويكون, العالقات بقية وهكذا ,(3850) الثالثة العالقة وزن يكونجيب أن حصوهلا احتمالية نسبة عالقة( 23) من ! (325,000) وإنما( 25) ليس( 11-دولاجل) يف

ينتج( مستحيلة شبه القرآين الترتيب غري يف امحصوهل احتمالية انتعالق) زائدا اجلدول من معلومة أكرب على أقل تقدير اممنه واحد كل وزن أن نعلم ولكن ماهقدارنعلم م ال جدا انكبري عددان عنها !!!مليون 100 من

بدال مليون 200 من أكثر يكون سوف (11-دولاجل) يف( القرآين الترتيب) ارتفاع أن هذا معىن !!!!! 25 من

Page 31: معجزة ترتيب سور القرآن.pdf

30

:احلاسوب برنامج مبزايا تعريف االختصاص أهل لبق من ومفهومة ةءمقرو الربنامج شفرة إن. املوضوع حول جديدة عالقات شفتاكت مالك للتطوير قابل الربنامج. ألشهر احلاسبة تشغيل تستطيع, خاصة خربات إىل حيتاج وال ,التشغيل سهل الربنامج

.ملفات تلقائيا يف ستخزن والنتائج احملاوالت, تريليونات الختبار! توقف بدون سنوات أو تكفي النظرية الناحية من, تنضب ال بيانات ديول فهو, للتشغيل بيانات إىل حيتاج ال الربنامج

!السنني من تريليونات تعمل احلاسبات تريليونات يشغل منهم وكل ,البشر من تريليونات

حتسم البحث ونتائج, لآلراء جمال هناك يعد قلم, اجتهادية قضية وليست مادية البحث نتائج إن نتائجه على قليحصل بنفسه التأكد يرد ومن الكرمي, القرآن يف العددية املعجزات وجود موضوع . به خاص برنامج لكتابة االختصاص بأهل االستعانة أو الربنامج, تشغيل من اخلاصة

:البحث نتائج هو , واحد تفسري إال هلا ليس (املادي لمالع تتحدى عددية ظاهرة) عن أمجع للعامل يكشف

صدقا اهلل ولسر حممدا وأن نزل, كما حمفوظ وأنه ,اهلل ندع من منزل الكرمي القرآن أن .فيه يبتدعوا ومل جيتهدوا ومل القرآن على حافظوا قد مهعبت ومن الكرام الصحابة وأن .وحقا

إلهناء ,الكرمي القرآن روس ترتيب توقيفية على احلاسم الرياضي الدليل مقدي, للمسلمني كل آيات عدد توقيفية كذلكو.اإلسالمي التراث كتب مألت اليت اخلالفية املسائل إحدى سورة نفالواأل التوبة سورة بأن قال من خطأ ويثبت ,كثرية خالفية أمورا وحيسم, سورة .دليل من هلا ليس بطالهنا ظهر آراء من شاهبها وماأو أن املعوذتني ليستا من القرآن ,واحدة

حول والنزاع اجلدل نهيلي الكرمي القرآن يف عددية أنظمة وجود على احلاسم الدليل ميقد املعجزة هذه على حيتوي كتاب حمتويات فهرس كان إذا أنه ذلك, العددي إلعجازا موضوع ألنظمةا من حميط حبر أنه األيام تثبت سوف) الكتاب؟ مبحتويات بالك فما املذهلة, العددية .(عجزةامل العددية

الشريف املصحف ترتيب ةصدقي من تنال أن حاولت اليت االستشراقية احملاوالت نسف. النظام أن ضمنا فيفهم, العشري ديدالع النظام على اعتمدت قد العددية املعجزة هذه وألن

.بشريا اختراعا وليس للبشر اهلل من إهلاما العشري ديدالع الكذب هءوافترا خليفة رشاد املدعو عاءدا يدحض الذي احلاسم املادي الرياضي الدليل تقدمي

.(التوبة سورة) آيات عدد حول

Page 32: معجزة ترتيب سور القرآن.pdf

32

:التوصيات العاملية اهليئة) ومنها هلا التابعة خرىاأل واملنظمات سالمياإل العمل منظمة مع االتصال

.النتائج على طالعهاإل اإلسالمية البحوث مراكز وكل( والسنة القرآن يف العلمي لإلعجاز وجه على اإلسالمية غري) العاملية العلمية البحوث مراكز إىل البحث وإرسال ترمجة

البشر تتحدى اليت الغريبة العددية الظاهرة هذه لدراسة, نطاق أوسع وعلى (اخلصوص ستطيعت( بالصدفة) اعدد (114)على احلصول يستطيعواأن يثبتوا أهنم احلاسوب وأجهزة

القرآن سور آيات عدد ترتيب من حتققت اليت بالعالقات (شبيهة) أو( مثل) عالقات حتقيق .اخلاصة برباجمهم وليستعينوا, الكرمي

ألكرب الربنامج حتميل وتسهيل العددية املعجزة هبذه للتعريف االنترنت شبكة على مواقع فتح .احلق لدين الدعوة أساليب أحد لتكونو, منها بأنفسهم دواليتأك البشر من عدد

الربجمة لغات الستخدام باحثني لتجنيد باملوضوع االهتمام ذات البحوث مراكز تشجيع .الكرمي القرآن عجائب كشف يف املتقدمة

Page 33: معجزة ترتيب سور القرآن.pdf

33

برنامج احلاسوب

.شفرة الربنامج لكل امللفات يف الصفحات التالية, ملف كما تبني اللقطة أدناه 29يتألف من , ++Cبلغة مكتوب الربنامج .ميكن نسخ ولصق حمتويات امللفات من هذه النسخة واستخدامها بشكل مباشر لتشغيل الربنامج

:حيتوي على أعداد آيات سور القرآن الكرمي وبنفس الترتيب الذي تبينه اللقطة أدناه txt.جيب توفر ملف بامتداد :تنبيه

وتقدمي إحصائيات بعدة طرق النتائج بشكل تلقائي د جملدات وملفات لتخزينلتشغيل الربنامج سوف يو عند//-----------------------------------------------------------------------------------------------

برنامج للبحث عن عالقات عددية تشبه العالقات العددية التي وجدت في الترتيب القرآني //

//عدد تمثل عدد سور القرآن الكريم وبنفس الترتيب 111يحتوي على txtالبرنامج يحتاج إلى ملف من نوع

. ملف بنوعين من االمتداد كما هو واضح في الشكل أعاله 92البرنامج يتألف من //

// االول أن يمزج الحاسوب عدد سور القرآن بطريقة عشوائية في كل اختبار جديد : للمستخدم خيارين

ى يحددعدد بطريقة عشوائية وتقع هذه االعداد ضمن حد أعلى وأدن 111الخيار الثاني أن يولد الحاسوب //

من قبل المستخدم //

على المستخدم فتح مشروع بتسعة وعشرين ملف تحمل نفس االسماء المستخدمة في البرنامج ثم إجراء عملية //

نسخ ولصق محتويات كل ملف من هذا الملف وهناك حدود واضحة تفصل بين مكونات الملفات //

مل أن ينجز الحاسوب مليون اختبار لكل ساعة تقريبافي حالة استخدام حاسوب بمعالج جيد من المحت //

االختبار االول وفي كل من الخيارين سوف يكون للترتيب القرآني لكي يظهر الفرق الجلي بين الترتيب //

القرآني وبين أي ترتيب آخر لألعداد //

اكمية للنتائج في مجلدين منفصلينالنتائج سوف تظهر على شاشة الحاسوب وتخزن كذلك في ملفات دائمية تر //

أحدهما يخزن نتائج الخيار االول والمجلد الثاني يخزن نتائج الخيار الثاني //

//

// The code was developed and tested with Microsoft's Visual C++ Express

// (which is available free of charge from Microsoft)

// Program version 1: date 1:1:2013

// Maher Omar Amin /Mosul - Iraq/ Technical Institute / Mobile number : (00964) 770 163 7071

// programmer email: [email protected]

//

// File Table.h

#ifndef TABLE_H

#define TABLE_H

Page 34: معجزة ترتيب سور القرآن.pdf

34

#include "utility.h"

class Table

{

public:

Table(tvpii v);

void printTable ();

protected:

tvpii vp;

tvvpii vvp;

vector<int> v8sum;

void categorizeTo4 ();

void addSumTo8Columns ();

int getMaxRow ();

void expandString (string n, string &f, string &s);

string makeColString (int seq, int f, int s);

}; // end of Table class

#endif

// End of File Table.h

//-----------------------------------------------------------------------------------------------

// File Table.cpp

#include "Table.h"

Table::Table(tvpii v) : vp(v){}

void Table::categorizeTo4 ()

{

vvp.clear();

for (int i=0; i<4; ++i) {

vvp.push_back(vector< pair<int, int> > ());

}

for (int i=0; i<2; ++i) {

vvp[0].push_back( make_pair(0, 0) );

vvp[1].push_back( make_pair(0, 0) );

vvp[2].push_back( make_pair(0, 0) );

vvp[3].push_back( make_pair(0, 0) );

}

for ( unsigned int i=0; i<vp.size(); ++i) {

if ( (vp[i].first % 2 != 0) && (vp[i].second % 2 != 0) ) {

vvp[0].push_back( make_pair(vp[i].first, vp[i].second) );

}

else if ( (vp[i].first % 2 == 0) && (vp[i].second % 2 == 0) ) {

vvp[1].push_back( make_pair(vp[i].first, vp[i].second) );

}

else if ( (vp[i].first % 2 != 0) && (vp[i].second % 2 == 0) ) {

vvp[2].push_back( make_pair(vp[i].first, vp[i].second) );

}

else if ( (vp[i].first % 2 == 0) && (vp[i].second % 2 != 0) ) {

vvp[3].push_back( make_pair(vp[i].first, vp[i].second) );

}

}

}

void Table::addSumTo8Columns ()

{ for (unsigned int i=0; i<vvp.size(); ++i) {

int sum_seq = 0, sum_ayat = 0;

for (unsigned int j=1; j<vvp[i].size(); ++j) {

sum_seq = sum_seq + vvp[i][j].first;

sum_ayat = sum_ayat + vvp[i][j].second;

}

vvp[i][0].first = vvp[i].size()-2;

vvp[i][1].first = sum_seq;

vvp[i][1].second = sum_ayat;

v8sum.push_back( vvp[i][1].first );

v8sum.push_back( vvp[i][1].second );

}

}

int Table::getMaxRow ()

{ unsigned int max = 0;

for (unsigned int i=0; i<vvp.size(); ++i) {

max > vvp[i].size()-2 ? max : max = vvp[i].size()-2;

}

return max;

}

void Table::expandString (string num, string &seqment, string &space)

{ if (num.size() == 1) seqment = seqment + space + " " + num;

else if (num.size() == 2) seqment = seqment + space + " " + num;

else if (num.size() == 3) seqment = seqment + space + " " + num;

else if (num.size() == 4) seqment = seqment + space + " " + num;

Page 35: معجزة ترتيب سور القرآن.pdf

35

else if (num.size() == 5) seqment = seqment + space + "" + num;

}

string Table::makeColString (int seq, int f, int s)

{ string space (2, ' ');

string seqment = "";

string num = itos(seq);

if (seq == 0) seqment = " ";

else if (num.size() == 1) seqment = " " + num;

else if (num.size() == 2) seqment = " " + num;

else seqment = " ";

num = itos(f);

expandString (num, seqment, space);

num = itos(s);

expandString (num, seqment, space);

return seqment;

}

void Table::printTable ()

{ string space (10, ' ');

string noData (17, ' ');

string line = " ";

unsigned int rows = getMaxRow() + 2;

for (unsigned int i=2; i<rows; ++i) {

line = " ";

for (unsigned int j=0; j<vvp.size(); ++j) {

if ((int)i <= vvp[j][0].first+1) {

line = line + makeColString (i-1, vvp[j][i].first, vvp[j][i].second);

line = line + space;

}

else {line = line + noData + space;}

}

cout << line << "\n";

}

printLine();

line = " ";

for (unsigned int j=0; j<vvp.size(); ++j) {

line = line + makeColString (0, vvp[j][1].first, vvp[j][1].second);

line = line + space;

}

cout << line << endl;

printLine();

cout << endl;

}

// End of File Table.cpp

//-----------------------------------------------------------------------------------------------

// File Base1.h

#ifndef BASE1_H

#define BASE1_H

#include "utility.h"

#include "Table.h"

#include "Ratio.h"

class Base1 : public Table

{

public:

Base1 (tvpii v);

int r1, r2, r3;

void prepareData();

void doingWork();

void printResult();

void testRelations();

protected:

int ayatTotal, oddAyat, evenAyat;

int seqTotal, oddSeq, evenSeq, seqOddAyat, seqEvenAyat;

int notEqualColumns;

vector<int> v4;

vector<int> v4sorted;

set <int> elementsSet;

void setVecColumns ();

void calculateInfo ();

}; // end of Base1 class

#endif

// End of File Base1.h

//-----------------------------------------------------------------------------------------------

// File Base1.cpp

#include "Base1.h"

Base1::Base1(tvpii vp) : Table(vp){}

Page 36: معجزة ترتيب سور القرآن.pdf

36

void Base1::prepareData()

{

categorizeTo4 ();

addSumTo8Columns ();

setVecColumns();

calculateInfo();

}

void Base1::doingWork()

{

prepareData();

testRelations();

}

void Base1::setVecColumns()

{ v4.push_back(vvp[0][0].first);

v4.push_back(vvp[1][0].first);

v4.push_back(vvp[2][0].first);

v4.push_back(vvp[3][0].first);

v4sorted.assign(v4.begin(), v4.end());

sort(v4sorted.begin(), v4sorted.end());

elementsSet.insert(vvp[0][0].first);

elementsSet.insert(vvp[1][0].first);

elementsSet.insert(vvp[2][0].first);

elementsSet.insert(vvp[3][0].first);

vector<int> vtemp;

vtemp.assign(elementsSet.begin(), elementsSet.end());

notEqualColumns = vtemp.size();

}

void Base1::calculateInfo ()

{ seqTotal = v8sum[0] + v8sum[2] + v8sum[4] + v8sum[6];

ayatTotal = v8sum[1] + v8sum[3] + v8sum[5] + v8sum[7];

oddAyat = v8sum[1] + v8sum[7];

evenAyat = v8sum[3] + v8sum[5];

oddSeq = v8sum[0] + v8sum[4];

evenSeq = v8sum[2] + v8sum[6];

seqOddAyat = v8sum[0] + v8sum[6];

seqEvenAyat = v8sum[2] + v8sum[4];

}

void Base1::testRelations ()

{

if ( elementsSet.size() == 2 && (v4sorted[1] != v4sorted[2]) )

r1 = 1;

else {r1 = 0; r2 = 0; r3 = 0;}

if (r1 == 1) {

Ratio t1(9, 10);

Ratio t2(v4sorted[1], v4sorted[2]);

Ratio t3(oddSeq, evenSeq);

Ratio t4(oddAyat, evenAyat);

Ratio t5(seqOddAyat, seqEvenAyat);

if (t2 == t1) r2 = 1;

else r2 = 0;

if(t2 == t3|| t2 == t4 || t2 == t5 || t3 == t4 || t3 == t5 || t4 == t5)

r3 = 1;

else r3 = 0;

}

}

void Base1::printResult()

{

cout << "g2r1 = " << r1 << " g2r2 = " << r2 << " g2r3 = " << r3 << endl;

}

// End of File Base1.cpp

//-----------------------------------------------------------------------------------------------

// File Ayat.h

#ifndef AYAT_H

#define AYAT_H

#include "Base1.h"

class Ayat : public Base1

{

friend vector<int> twoHalf_Intersection (const Ayat& a, const Ayat& b);

friend int twoHalf_LengthCompare (const Ayat& a, const Ayat& b);

friend bool twoHalf_HomogCompare (const Ayat& a, const Ayat& b);

friend bool twoHalf_AyatCompare (const Ayat& a, const Ayat& b);

public:

Ayat (tvpii v, string str);

Page 37: معجزة ترتيب سور القرآن.pdf

37

int ayatPlusSeq_A, ayatPlusSeq_B, ayatPlusSeq_C, ayatPlusSeq_D;

int r4, r5, r6, r7;

string headLine;

void doingWork ();

void fillv6NumToCompare ();

void testRelations ();

void showRelations ();

protected:

vector<int> v6NumToCompare;

vector<int> v8sum;

void printHeading();

}; // end of Ayat class

#endif

// End of File Ayat.h

//------------------------------------------------------------------------------------------------ // File Ayat.cpp

#include "Ayat.h"

Ayat::Ayat(tvpii vp, string str) : Base1(vp), headLine(str){}

void Ayat::doingWork()

{ Base1::prepareData();

}

void Ayat::printHeading()

{

string line(102, '*');

cout << endl << line << endl;

string s1(19, ' '), s2(13, ' '), s3(15, ' '), s4(10, ' '), ss1;

ss1 = s1 + "Homogenious" + s2 + headLine + s3 + "Non-Homogenious";

cout << ss1 << endl;

string s5(9, ' '), s6(16, ' '), s7(17, ' '), s8(16, ' '), ss2;

ss2 = s5 + "odd odd" + s6 + "even even" + s7 + "odd even" + s8 + "even odd";

cout << ss2 << endl;

cout << line << endl;

}

//الثاني والنصف االول النصف بين الترابطات عدد لمعرفة دالة

vector<int> twoHalf_Intersection (const Ayat& a, const Ayat& b)

{ vector<int> v;

set_intersection (a.v6NumToCompare.begin(), a.v6NumToCompare.end(),

b.v6NumToCompare.begin(), b.v6NumToCompare.end(),

back_inserter(v));

return v;

}

// والثاني االول النصفين بين االعمدة أطوال تساوي تقييم

int twoHalf_LengthCompare (const Ayat& a, const Ayat& b)

{ if (a.notEqualColumns == 2 && b.notEqualColumns == 2) return 2;

else if (a.notEqualColumns <= 3 && b.notEqualColumns <= 3) return 1;

else return 0;

}

//متعاكسة أو متساوية النصفين في المتجانسة وغير المتجانسة السور مقارنة

bool twoHalf_HomogCompare (const Ayat& a, const Ayat& b)

{ int sum1 = a.v4[0] + a.v4[1];

int sum2 = a.v4[2] + a.v4[3];

Ratio r1(sum1, sum2);

int sum3 = b.v4[0] + b.v4[1];

int sum4 = b.v4[2] + b.v4[3];

Ratio r2(sum3, sum4);

if (r1 == r2) return true;

else return false;

}

//النصفين بين اآليات وزوجية فردية السور نسبة مقارنة

bool twoHalf_AyatCompare (const Ayat& a, const Ayat& b)

{ int sum1 = a.v4[0] + a.v4[3];

int sum2 = a.v4[1] + a.v4[2];

Ratio r1(sum1, sum2);

int sum3 = b.v4[0] + b.v4[3];

int sum4 = b.v4[1] + b.v4[2];

Ratio r2(sum3, sum4);

if (r1 == r2) return true;

else return false;

}

//تصاعديا وترتيبها مصفوفة في للمقارنة المهمة المعلومات جمع

void Ayat::fillv6NumToCompare ()

{

v6NumToCompare.push_back(oddAyat);

Page 38: معجزة ترتيب سور القرآن.pdf

38

v6NumToCompare.push_back(evenAyat);

v6NumToCompare.push_back(seqOddAyat);

v6NumToCompare.push_back(seqEvenAyat);

v6NumToCompare.push_back(oddSeq);

v6NumToCompare.push_back(evenSeq);

sort (v6NumToCompare.begin(), v6NumToCompare.end());

}

void Ayat::testRelations ()

{ r1 = 0; r2 = 0; r3 = 0; r4 = 0; r5 = 0; r6 = 0; r7 = 0;

ayatPlusSeq_A = Table::v8sum[0] + Table::v8sum[1];

ayatPlusSeq_B = Table::v8sum[2] + Table::v8sum[3];

ayatPlusSeq_C = Table::v8sum[4] + Table::v8sum[5];

ayatPlusSeq_D = Table::v8sum[6] + Table::v8sum[7];

if ( elementsSet.size() == 2 && (v4sorted[1] != v4sorted[2]) )

r1 = 1; else r1 = 0;

if (r1 == 1){

Ratio t1(v4sorted[1], v4sorted[2]);

Ratio t2(oddSeq, evenSeq);

Ratio t3(oddAyat, evenAyat);

Ratio t4(seqOddAyat, seqEvenAyat);

if (t1 == t2 || t1 == t3 || t1 == t4)

r2 = 1; else r2 = 0;

}

int s1 = ayatPlusSeq_A + ayatPlusSeq_B;

int s2 = ayatPlusSeq_A + ayatPlusSeq_C;

int s3 = ayatPlusSeq_A + ayatPlusSeq_D;

bool b1=false, b2=false, b3=false;

if ( s1 == ayatTotal || s1 == seqTotal ) b1 = true;

if ( s2 == ayatTotal || s2 == seqTotal ) b2 = true;

if ( s3 == ayatTotal || s3 == seqTotal ) b3 = true;

if ( b1 || b2 || b3 ) {

r3 = 1;

r4 = 1;

}

else { r3 = 0, r4 = 0; }

}

void Ayat::showRelations ()

{

printHeading();

printTable ();

}

// End of File Ayat.cpp

//-----------------------------------------------------------------------------------------------

// File C19_76.h

#ifndef C19_76_H

#define C19_76_H

#include "utility.h"

#include "Base1.h"

class CLeng19_76 : public Base1

{

public:

CLeng19_76 (tvpii v);

void doingWork();

protected:

void categorizeTo4();

void printResult();

}; // end of CLeng19_76 class

#endif

// End of File C19_76.h

//-----------------------------------------------------------------------------------------------

// File C19_76.cpp

#include "C19_76.h"

CLeng19_76::CLeng19_76(tvpii vp) : Base1(vp)

{

}

void CLeng19_76::doingWork()

{

categorizeTo4 ();

addSumTo8Columns();

setVecColumns();

Page 39: معجزة ترتيب سور القرآن.pdf

39

calculateInfo();

testRelations();

}

void CLeng19_76::categorizeTo4()

{

vvp.clear();

for (int i=0; i<4; ++i) {

vvp.push_back(vector< pair<int, int> > ());

}

for (int i=0; i<2; ++i) {

vvp[0].push_back( make_pair(0, 0) );

vvp[1].push_back( make_pair(0, 0) );

vvp[2].push_back( make_pair(0, 0) );

vvp[3].push_back( make_pair(0, 0) );

}

for ( size_t i=0; i<vp.size(); ++i) {

if ( (vp[i].first < 58) && (vp[i].second < 76) ) {

vvp[0].push_back( make_pair(vp[i].first, vp[i].second) );

}

else if ( (vp[i].first < 58) && (vp[i].second > 75) ) {

vvp[1].push_back( make_pair(vp[i].first, vp[i].second) );

}

else if ( (vp[i].first >= 58) && (vp[i].second < 19) ) {

vvp[2].push_back( make_pair(vp[i].first, vp[i].second) );

}

else if ( (vp[i].first >= 58) && (vp[i].second > 18) ) {

vvp[3].push_back( make_pair(vp[i].first, vp[i].second) );

}

}

}

void CLeng19_76::printResult()

{

cout << "g2r3 = " << r1 << " g2r4 = " << r2 << " g2r5 = " << r3 << endl;

}

// End of File C19_76.cpp

//-----------------------------------------------------------------------------------------------

// File Base2.h

#ifndef BASE2_H

#define BASE2_H

#include "utility.h"

class Base2

{

public:

Base2(tvpii v);

protected:

tvpii vp;

static bool sortPair( const Pair& b1, const Pair& b2 );

}; // end of Base2 class

#endif

// End of File Base2.h

//-----------------------------------------------------------------------------------------------

// File Base2.cpp

#include "Base2.h"

Base2::Base2(tvpii v): vp(v)

{

}

bool Base2::sortPair( const Pair& b1, const Pair& b2 )

{ return b1.second > b2.second;

}

// End of File Base2.cpp

//-----------------------------------------------------------------------------------------------

// File SixPart.h

#ifndef SIXPART_H

#define SIXPART_H

#include "utility.h"

#include "Base2.h"

class SixPart : public Base2

{

public:

SixPart (tvpii v);

bool isDivisibleTo6;

Page 40: معجزة ترتيب سور القرآن.pdf

41

int setSize, score;

void prepareClass();

void printTable ();

protected:

tvpii vs;

vector<int> ivec;

vector<int> p1, p2, p3, p4, p5, p6;

tvpii oddEvenVector;

set<int> si;

void extractOddEven(vector<int> v);

void fillSet();

void calcuWeight();

void divideTo6Vectors();

}; // end of C6Parts class

// End of File SixPart.h

#endif

//-----------------------------------------------------------------------------------------------

// File SixPart.cpp

#include "SixPart.h"

SixPart::SixPart(tvpii vp) : Base2(vp)

{

prepareClass();

}

void SixPart::prepareClass()

{ isDivisibleTo6 = true;

vs = vp;

sort( vs.begin(), vs.end(), sortPair );

for (size_t i = NUM_SURAS/6; i<vs.size(); i=i+NUM_SURAS/6)

{ if (vs[i-1] == vs[i]) {isDivisibleTo6 = false;}

}

if (isDivisibleTo6 == true) {

divideTo6Vectors();

extractOddEven(p1);

extractOddEven(p2);

extractOddEven(p3);

extractOddEven(p4);

extractOddEven(p5);

extractOddEven(p6);

fillSet();

setSize = si.size();

calcuWeight();

}

}

void SixPart::divideTo6Vectors()

{ for (size_t i=0; i<NUM_SURAS; ++i) {

ivec.push_back( vs[i].second );

}

vector<int>::iterator it;

it = ivec.begin();

p1.assign(it, it+19);

p2.assign(it+19, it+38);

p3.assign(it+38, it+57);

p4.assign(it+57, it+76);

p5.assign(it+76, it+95);

p6.assign(it+95, ivec.end());

}

void SixPart::extractOddEven(vector<int> v)

{ int odd=0, even=0;

for (size_t i=0; i<v.size(); ++i) {

if (v[i] % 2 != 0)

odd++;

else even++;

}

oddEvenVector.push_back(make_pair(odd, even));

}

void SixPart::fillSet()

{

for (size_t i=0; i<oddEvenVector.size(); ++i) {

si.insert(oddEvenVector[i].first);

si.insert(oddEvenVector[i].second);

}

}

void SixPart::calcuWeight()

{ if (setSize == 2) score = 2;

else if (setSize == 4) score = 1;

else score = 0;

Page 41: معجزة ترتيب سور القرآن.pdf

40

}

// End of File SixPart.cpp

//-----------------------------------------------------------------------------------------------

// File UsedUn.h

#ifndef USED_UNUSED_H

#define USED_UNUSED_H

#include "utility.h"

#include "Base2.h"

class CUsedUnUsed : public Base2

{

public:

CUsedUnUsed (tvpii v);

bool isOddEvenUsedEqually;

int scoreOddEven2Half_Uses;

void calcScore();

void printTable ();

protected:

int A[NUM_SURAS];

int B[NUM_SURAS];

vector<int> oddVec, evenVec;

void prepareClass();

vector<int> intersection, difference;

vector<int> oddUsed, evenUsed, oddNOTused, evenNOTused;

vector<int> oddUsed_1H, oddUsed_2H, oddNOTused_1H, oddNOTused_2H;

vector<int> evenUsed_1H, evenUsed_2H, evenNOTused_1H, evenNOTused_2H;

set<int> coll1;

}; // end of CUsedUnUsed class

#endif

// End of File UsedUn.h

//-----------------------------------------------------------------------------------------------

// File UsedUn.cpp

#include "UsedUn.h"

//السور في المستعملة غير واالعداد المستعملة االعداد

CUsedUnUsed::CUsedUnUsed(tvpii v) : Base2(v){prepareClass();}

void CUsedUnUsed::prepareClass()

{

for (int i=0; i<NUM_SURAS; ++i)

{

A[i] = i+1;

B[i] = vp[i].second;

}

sort(B, B+NUM_SURAS);

set_intersection(A, A+NUM_SURAS, B, B+NUM_SURAS, back_inserter(intersection));

set_difference (A, A+NUM_SURAS, B, B+NUM_SURAS, back_inserter(difference));

for (size_t i=0; i<intersection.size(); ++i){

if (intersection[i] % 2 != 0) oddUsed.push_back(intersection[i]);

else evenUsed.push_back(intersection[i]);

}

if (oddUsed.size() == evenUsed.size()) isOddEvenUsedEqually = true;

else isOddEvenUsedEqually = false;

for (size_t i=0; i<difference.size(); ++i){

if (difference[i] % 2 != 0) oddNOTused.push_back(difference[i]);

else evenNOTused.push_back(difference[i]);

}

for (unsigned int i=0; i<oddUsed.size(); ++i){

if (oddUsed[i] < 58) oddUsed_1H.push_back(oddUsed[i]);

else oddUsed_2H.push_back(oddUsed[i]);

}

for (unsigned int i=0; i<evenUsed.size(); ++i){

if (evenUsed[i] < 58) evenUsed_1H.push_back(evenUsed[i]);

else evenUsed_2H.push_back(evenUsed[i]);

}

for (unsigned int i=0; i<oddNOTused.size(); ++i){

if (oddNOTused[i] < 58) oddNOTused_1H.push_back(oddNOTused[i]);

else oddNOTused_2H.push_back(oddNOTused[i]);

}

for (unsigned int i=0; i<evenNOTused.size(); ++i){

if (evenNOTused[i] < 58) evenNOTused_1H.push_back(evenNOTused[i]);

else evenNOTused_2H.push_back(evenNOTused[i]);

}

coll1.insert(oddUsed_1H.size());

coll1.insert(oddNOTused_1H.size());

Page 42: معجزة ترتيب سور القرآن.pdf

42

coll1.insert(oddUsed_2H.size());

coll1.insert(oddNOTused_2H.size());

coll1.insert(evenUsed_1H.size());

coll1.insert(evenNOTused_1H.size());

coll1.insert(evenUsed_2H.size());

coll1.insert(evenNOTused_2H.size());

calcScore();

}

void CUsedUnUsed::calcScore()

{ size_t s = coll1.size();

if (s == 8 || s == 7) scoreOddEven2Half_Uses = 0;

else if (s == 6 || s == 5) scoreOddEven2Half_Uses = 1;

else if (s == 4 || s == 3) scoreOddEven2Half_Uses = 2;

else if (s == 2) scoreOddEven2Half_Uses = 3;

else if (s == 1) scoreOddEven2Half_Uses = 4;

}

// End of File UsedUn.cpp

//-----------------------------------------------------------------------------------------------

// File LongShortC1.h

#ifndef LONGSHORT_C1_H

#define LONGSHORT_C1_H

#include "utility.h"

#include "Base2.h"

class LongShortC1 : public Base2

{

public:

LongShortC1 (tvpii v);

bool isSymmetrical;

void prepareClass3();

void printTable ();

protected:

tvpii S;

int LL, UL;

vector<int> LH1, LH2, SH1, SH2;

set<int> lengSet;

void categorize();

}; // end of LongShortC1 class

#endif

// End of File LongShortC1.h

//-----------------------------------------------------------------------------------------------

// File LongShortC1.cpp

#include "LongShortC1.h"

LongShortC1::LongShortC1(tvpii vp) : Base2(vp){}

void LongShortC1::prepareClass3()

{ isSymmetrical = false;

S = vp;

sort(S.begin(), S.end(), sortPair);

UL = S[56].second;

LL = S[57].second;

if (LL != UL){

categorize();

}

}

void LongShortC1::categorize()

{

for (size_t i=0; i<S.size(); ++i){

if ( (S[i].second >= UL) && (S[i].first-1 <= 56) ) LH1.push_back(S[i].second);

else if ( (S[i].second >= UL) && (S[i].first-1 >= 57) ) LH2.push_back(S[i].second);

else if ( (S[i].second <= LL) && (S[i].first-1 <= 56) ) SH1.push_back(S[i].second);

else if ( (S[i].second <= LL) && (S[i].first-1 >= 57) ) SH2.push_back(S[i].second);

}

lengSet.insert(LH1.size());

lengSet.insert(LH2.size());

lengSet.insert(SH1.size());

lengSet.insert(SH2.size());

if (lengSet.size() == 2)

isSymmetrical = true;

else isSymmetrical = false;

}

// End of File LongShortC1.cpp

//-----------------------------------------------------------------------------------------------

// File LongShortC2.h

#ifndef LONGSHORT_C2_H

#define LONGSHORT_C2_H

Page 43: معجزة ترتيب سور القرآن.pdf

43

#include "utility.h"

#include "LongShortC1.h"

class LongShortC2 : public LongShortC1

{

public:

LongShortC2 (tvpii v);

void prepare();

private:

vector<int> vLoOdSeq, vLoEvSeq, vShOdSeq, vShEvSeq;

void categorize();

}; // end of LongShortC2 class

#endif

// End of File LongShortC2.h

//-----------------------------------------------------------------------------------------------

// File LongShortC2.cpp

#include "LongShortC2.h"

LongShortC2::LongShortC2(tvpii vp) : LongShortC1(vp){}

void LongShortC2::prepare()

{ S = vp;

sort(S.begin(), S.end(), sortPair);

UL = S[56].second;

LL = S[57].second;

if (LL != UL){

categorize();

}

}

// Distribution of Long & Short suras with respect to sequence numbers.

void LongShortC2::categorize()

{

for (size_t i=0; i<vp.size(); ++i){

if ( (S[i].second >= UL) && (S[i].first % 2 != 0) ) vLoOdSeq.push_back(S[i].second);

else if ( (S[i].second >= UL) && (S[i].first % 2 == 0) ) vLoEvSeq.push_back(S[i].second);

else if ( (S[i].second <= LL) && (S[i].first % 2 != 0) ) vShOdSeq.push_back(S[i].second);

else if ( (S[i].second <= LL) && (S[i].first % 2 == 0) ) vShEvSeq.push_back(S[i].second);

}

lengSet.insert(vLoOdSeq.size());

lengSet.insert(vLoEvSeq.size());

lengSet.insert(vShOdSeq.size());

lengSet.insert(vShEvSeq.size());

if (lengSet.size() == 2)

isSymmetrical = true;

else isSymmetrical = false;

}

// End of File LongShortC2.cpp

//----------------------------------------------------------------------------------------------- // File LongShortC3.h

#ifndef LONGSHORT_C3_H

#define LONGSHORT_C3_H

#include "utility.h"

#include "LongShortC1.h"

class LongShortC3 : public LongShortC1

{

public:

LongShortC3 (tvpii v);

void prepare();

bool isLenPos_MatchEqNotMatch;

bool isHomogEqualNonHomog_Match;

bool isHomogEqualNonHomog_NotMatch;

private:

tvpii lenPos_Match, lenPos_NotMatch;

tvpii homo_Match, homo_NotMatch, nonHomo_Match, nonHomo_NotMatch;

vector<int> vLoOdSeq, vLoEvSeq, vShOdSeq, vShEvSeq;

void categorize1();

void categorize2();

void categorize3();

}; // end of LongShortC3 class

#endif

// End of File LongShortC3.h

//-----------------------------------------------------------------------------------------------

// File LongShortC3.cpp

#include "LongShortC3.h"

LongShortC3::LongShortC3(tvpii vp) : LongShortC1(vp){}

Page 44: معجزة ترتيب سور القرآن.pdf

44

void LongShortC3::prepare()

{ isSymmetrical = false;

S = vp;

sort(S.begin(), S.end(), sortPair);

UL = S[56].second;

LL = S[57].second;

if (LL != UL){

categorize1();

categorize2();

categorize3();

}

}

void LongShortC3::categorize1()

{

for (size_t i=0; i<S.size(); ++i){

if ( (S[i].second >= UL) && (S[i].first-1 <= 56) ) lenPos_Match.push_back(S[i]);

else if ( (S[i].second >= UL) && (S[i].first-1 >= 57) ) lenPos_NotMatch.push_back(S[i]);

else if ( (S[i].second <= LL) && (S[i].first-1 <= 56) ) lenPos_NotMatch.push_back(S[i]);

else if ( (S[i].second <= LL) && (S[i].first-1 >= 57) ) lenPos_Match.push_back(S[i]);

}

if (lenPos_Match.size() == lenPos_NotMatch.size()) isLenPos_MatchEqNotMatch = true;

else isLenPos_MatchEqNotMatch = false;

}

// Homogeneous surahs whose lengths & positions match = 48

// Non-homogeneous surahs whose lengths & positions match = 48

void LongShortC3::categorize2()

{

for (size_t i=0; i<lenPos_Match.size(); ++i){

if ( (lenPos_Match[i].second % 2 != 0) && (lenPos_Match[i].first % 2 != 0) )

homo_Match.push_back(lenPos_Match[i]);

else if ( (lenPos_Match[i].second % 2 == 0) && (lenPos_Match[i].first % 2 == 0) )

homo_Match.push_back(lenPos_Match[i]);

else if ( (lenPos_Match[i].second % 2 != 0) && (lenPos_Match[i].first % 2 == 0) )

nonHomo_Match.push_back(lenPos_Match[i]);

else if ( (lenPos_Match[i].second % 2 == 0) && (lenPos_Match[i].first % 2 != 0) )

nonHomo_Match.push_back(lenPos_Match[i]);

}

if (homo_Match.size() == nonHomo_Match.size()) isHomogEqualNonHomog_Match = true;

else isHomogEqualNonHomog_Match = false;

}

// Homogeneous surahs whose lengths & positions do not match = 9

// Non-homogeneous surahs whose lengths & positions do not match = 9

void LongShortC3::categorize3()

{

for (size_t i=0; i<lenPos_NotMatch.size(); ++i){

if ( (lenPos_NotMatch[i].second % 2 != 0) && (lenPos_NotMatch[i].first % 2 != 0) )

homo_NotMatch.push_back(lenPos_NotMatch[i]);

else if ( (lenPos_NotMatch[i].second % 2 == 0) && (lenPos_NotMatch[i].first % 2 == 0) )

homo_NotMatch.push_back(lenPos_NotMatch[i]);

else if ( (lenPos_NotMatch[i].second % 2 != 0) && (lenPos_NotMatch[i].first % 2 == 0) )

nonHomo_NotMatch.push_back(lenPos_NotMatch[i]);

else if ( (lenPos_NotMatch[i].second % 2 == 0) && (lenPos_NotMatch[i].first % 2 != 0) )

nonHomo_NotMatch.push_back(lenPos_NotMatch[i]);

}

if (homo_NotMatch.size() == nonHomo_NotMatch.size()) isHomogEqualNonHomog_NotMatch = true;

else isHomogEqualNonHomog_NotMatch = false;

}

// End of File LongShortC3.cpp

//-----------------------------------------------------------------------------------------------

// File Mixed.h

#ifndef MIXED_H

#define MIXED_H

#include "utility.h"

class CMixed

{

public:

explicit CMixed (tvpii v) : vp(v) {initializeData();}

void printTable ();

bool mid57Match1();

bool CenterPoint();

bool isEqualDiff();

bool isTotaNumAyatModeSeq();

bool is5104Relat319();

bool isEqual_114();

int degree;

int repetitionSetSize;

int getAyatTotal(){return ayatTotal;};

int getSeqTotal(){return seqTotal;};

Page 45: معجزة ترتيب سور القرآن.pdf

45

int getSumAyatMultipleSeq();

protected:

tvpii vp;

int seqSumSp5Suras;

int ayatTotal, seqTotal, diffTotal, ayatNumTotal, vpSize;

void initializeData();

void sumTotalAyatNumbers();

bool equal_AyatSeq_Difference();

bool equalDiff;

vector<pair<int, int> > specialSoar;

int numSpeciSuar;

void weight();

int ayatNumberIn57Suras;

void calculateNumAyatAtMiddle();

set<int> setRepetition;

void fill_setRepetition();

}; // end of CMixed class

#endif

// End of File Mixed.h

//-----------------------------------------------------------------------------------------------

// File Mixed.cpp

#include "Mixed.h"

void CMixed::initializeData()

{ ayatTotal = 0, seqTotal = 0, degree = 0;

repetitionSetSize = 0, seqSumSp5Suras = 0, numSpeciSuar = 0;

vpSize = vp.size();

for (int j = 0; j<vpSize; ++j){

seqTotal = seqTotal + vp[j].first;

ayatTotal = ayatTotal + vp[j].second;

}

diffTotal = abs(seqTotal - ayatTotal);

sumTotalAyatNumbers();

for (int i = 0; i<vpSize; ++i) {

if (vp[i].first + vp[i].second == vpSize) {

seqSumSp5Suras = seqSumSp5Suras + vp[i].first;

specialSoar.push_back(make_pair(vp[i].first, vp[i].second));

}

}

equalDiff = equal_AyatSeq_Difference();

weight();

fill_setRepetition();

}

bool CMixed::mid57Match1()

{ int sum = 0;

for (size_t j=1; j <= vp.size()/2; ++j)

sum = sum + j;

return ( sum == vp[56].first * vp[56].second );

}

bool CMixed::CenterPoint()

{ int tmp = 0;

int c[NUM_SURAS];

for (size_t i=0; i<NUM_SURAS; ++i) {c[i] = vp[i].first * vp[i].second;}

tmp = vp[56].first * vp[56].second;

sort(c, c+NUM_SURAS);

return ( tmp == c[56] );

}

bool CMixed::isEqualDiff()

{ return seqSumSp5Suras == diffTotal;

}

void CMixed::sumTotalAyatNumbers()

{ ayatNumTotal = 0;

for (size_t i=0; i<vp.size(); ++i)

{ for (int j=1; j <= vp[i].second; ++j)

ayatNumTotal = ayatNumTotal + j;

}

}

int CMixed::getSumAyatMultipleSeq()

{ int sum = 0;

for (size_t i=0; i<vp.size(); ++i)

sum = sum + vp[i].first * vp[i].second;

return sum;

}

bool CMixed::isTotaNumAyatModeSeq()

Page 46: معجزة ترتيب سور القرآن.pdf

46

{ int tmp = ayatNumTotal % seqTotal;

return ( diffTotal == abs(tmp - ayatTotal) || diffTotal == tmp );

}

// 5104 = 319 * 16

bool CMixed::is5104Relat319()

{ if ( diffTotal != 0 ) {

return (ayatNumberIn57Suras % diffTotal == 0);

}

return false;

}

void CMixed::calculateNumAyatAtMiddle()

{ ayatNumberIn57Suras = 0;

for (size_t j=0; j<vp.size()/2; ++j)

ayatNumberIn57Suras = ayatNumberIn57Suras + vp[j].second;

}

// 333667 = 3x3 + 3x3 + 3x6 + 6x6 + 6x7 = 114

bool CMixed::isEqual_114()

{ int tmp = ayatNumTotal;

bool flaq = false;

int t1=0, t2=0, t3=0, sum = 0;

while ( tmp > 10 )

{

if (flaq) {

t3 = tmp % 10;

sum = sum + t2 * t3; }

t1 = tmp % 10;

tmp = tmp / 10;

t2 = tmp % 10;

tmp = tmp /10;

sum = sum + t1 * t2;

flaq = true;

}

if ( tmp > 0 ) sum = sum + t2 * tmp;

return sum == NUM_SURAS;

}

bool CMixed::equal_AyatSeq_Difference()

{ equalDiff = false;

numSpeciSuar = specialSoar.size();

if (numSpeciSuar >= 4) {

for (int j=0; j<numSpeciSuar-1; ++j) {

for (int k=j+1; k<numSpeciSuar; ++k) {

int d1 = abs(specialSoar[j].first - specialSoar[k].first);

int d2 = abs(specialSoar[j].second - specialSoar[k].second);

if ( d1 == d2 ) equalDiff = true;

else equalDiff = false;

}

}

}

return equalDiff;

}

void CMixed::weight()

{ if (equalDiff && numSpeciSuar >= 6) degree = 2;

else if (equalDiff && numSpeciSuar >= 4) degree = 1;

else if (equalDiff && numSpeciSuar <= 3) degree = 0;

}

void CMixed::fill_setRepetition()

{ setRepetition.clear();

setRepetition.insert(diffTotal);

setRepetition.insert(seqSumSp5Suras);

int tmp = ayatNumTotal % seqTotal;

setRepetition.insert( abs(tmp - ayatTotal) );

calculateNumAyatAtMiddle();

if ( (ayatNumberIn57Suras % diffTotal) != 0)

setRepetition.insert(ayatNumberIn57Suras);

repetitionSetSize = setRepetition.size();

}

// End of File Mixed.cpp

//-----------------------------------------------------------------------------------------------

// File Ratio.h

#ifndef RATIO_CLASS_H

#define RATIO_CLASS_H

#include <iostream>

using namespace std;

class Ratio

Page 47: معجزة ترتيب سور القرآن.pdf

47

{

friend int operator==(const Ratio&, const Ratio&);

public:

Ratio() : num(0), den(1) { }

Ratio(int n, int d) { num = n; den = d; if(num > den) invert(); reduce(); }

void print() { cout << "\n" << num << '/' << den << "\n"; }

inline void set(int n, int d) { num = n; den = d; invert(); reduce(); }

private:

int num;

int den;

void reduce()

{ if (num == 0 || den == 0){ num = 0; den = 1; return; }

int g = gcd(num, den);

num /= g;

den /= g;

}

void invert() { int t = num; num = den; den = t; }

int gcd(int m, int n)

{ int t;

while (m > 0)

{ if (m < n) { t = m; m = n; n = t; }

m -= n;

}

return n;

}

};

#endif

// End of File Ratio.h

//-----------------------------------------------------------------------------------------------

// File Ratio.cpp

#include "Ratio.h"

int operator==(const Ratio& x, const Ratio& y)

{ return (x.num == y.num && x.den == y.den);

}

// End of File Ratio.cpp

//-----------------------------------------------------------------------------------------------

// File utility.h

#ifndef UTILITY_H

#define UTILITY_H

#include <iostream>

#include <fstream>

#include <iomanip>

#include <string>

#include <sstream>

#include <vector>

#include <set>

#include <algorithm>

#include <numeric>

#include <utility>

#include <cstdlib>

#include <time.h>

#include <ctime>

#include <direct.h> // for _getcwd

#include <cmath>

using namespace std;

const int NUM_SURAS = 114;

const int MAX = 1500000;

const int SIZE = 20;

typedef pair<int,int> Pair;

typedef vector< pair<int, int> > tvpii;

typedef vector< vector< pair<int, int> > > tvvpii;

void PRINT_ELEMENTS (const vector<int>& v, string str);

void COPY_ELEMENTS (const vector<int>& v, int Array[]);

void gen_primes();

bool isPrime(int prime);

void Time(void);

void instructions ();

int OneOrTwo();

int getNumber();

int digits(int number);

void initialize (tvpii &vp, tvpii &vphalf1, tvpii &vphalf2);

void read_file_data ( string fileName, tvpii &v );

void printLine (int num = 103);

string itos(int i);

unsigned int Random(int nLow, int nHigh);

Page 48: معجزة ترتيب سور القرآن.pdf

48

void shuffle_Order (tvpii &vp);

void shuffle_Order (tvpii &vp, tvpii &vphalf1, tvpii &vphalf2);

void randomize_Data (tvpii &vp);

void randomize_Data (tvpii &vp, tvpii &vphalf1, tvpii &vphalf2);

int find_max_score(int frq[], int size);

void printFreq(int option, int frq[], int size, string folder, string file, string headLine);

void printArray(int option, int a[], string folder, string file, string headLine);

void printCase(int option, const vector<int>& v, string folder, string file, string headLine);

void printData(int option, const tvpii& vii, string folder, string file, string headLine);

void printScore(int option, int score, string folder, string file, string headLine);

void horizontalFrequency(int num_looping, int AccumulatedArray[], int size, int group);

#endif

// End of File utility.h

//-----------------------------------------------------------------------------------------------

// File utility.cpp

#include "utility.h"

bool primes[MAX] = {0};

void Time(void)

{ char buffer[BUFSIZ] = { '\0' } ;

time_t now = time( &now ) ;

struct tm local_time;

localtime_s( &local_time, &now ) ;

strftime( buffer, BUFSIZ, "%d/%m/%Y", &local_time ) ;

cout<<"\n\nDate is: "<< buffer << endl ;

strftime( buffer, BUFSIZ, "%H:%M:%S", &local_time ) ;

cout<<"Time is: "<< buffer << "\n\n" ;

}

void instructions ()

{ cout << "\nWelcome to see the numerical miracles of 114 chapter lengths of Quran.\n" << endl;

cout << "This program give the user 2 options:\n";

cout << " Option 1: Uses the same length of 114 chapters but shuffled randomly.\n";

cout << " Option 2: Uses 114 numbers created randomly.\n\n";

}

int OneOrTwo()

{

int nOption;

while (1)

{

cout << "Enter your option: ";

cin >> nOption;

if (cin.fail())

{

cin.clear();

cin.ignore(1000, '\n');

continue;

}

if (nOption != 1 && nOption != 2)

continue;

break;

}

cout << "Your option: " << nOption << endl;

return nOption;

}

int getNumber()

{

int nNumber;

while (1)

{

cout << "Enter number of looping: ";

cin >> nNumber;

if (cin.fail())

{

cin.clear();

cin.ignore(1000, '\n');

continue;

}

cin.ignore(1000, '\n');

if (nNumber <=0)

continue;

break;

}

cout << "Number of looping: " << nNumber << endl;

return nNumber;

}

Page 49: معجزة ترتيب سور القرآن.pdf

49

// 114 ألـ القرآن سور آيات عدد على يحتوي ملف توفير يجب

void read_file_data ( string fileName, tvpii &v )

{ fileName = fileName + ".txt";

fstream infile;

infile.open (fileName.c_str());

if (! infile) { cerr << "\nError while openinig file " << fileName << "\n\n";

exit(0);

}

int c;

int i = 0;

while (infile >> c) {

v.push_back (make_pair(i+1, c));

i++;

}

if (infile.eof() && i == NUM_SURAS) {

infile.close();

}

else if (infile.eof() && i < NUM_SURAS) {

infile.close();

cerr << "\nNot enough data in file " << fileName << "\n\n";

exit(0);

}

else if (infile.eof() && i > NUM_SURAS) {

infile.close();

cerr << "\nExcess data in file " << fileName << "\n\n";

exit(0);

}

else { infile.close();

cerr << "\nError in data inside file " << fileName << "\n\n";

exit(0);

}

}

void initialize (tvpii &vp, tvpii &vphalf1, tvpii &vphalf2)

{ read_file_data ( "QuranAyatNumber", vp );

vphalf1.assign(vp.begin(), vp.end()-vp.size()/2);

vphalf2.assign(vp.begin() + vp.size()/2, vp.end());

}

void gen_primes()

{

primes[0] = primes[1] = false;

for (int i=2; i<MAX; ++i)

primes[i] = true;

for (int j=2; 2*j < MAX; j++)

primes[2*j] = false;

int p = 3;

while (p <= MAX/2)

{

for (int j=2; p*j < MAX; j++)

primes[p*j] = false;

do ++p;

while (!primes[p]);

}

}

bool isPrime(int prime)

{

return primes[prime];

}

string itos(int i)

{ stringstream s;

s << i;

return s.str();

}

void printLine (int num)

{ for (int i=1; i<num; ++i) { cout << "-"; }

cout << endl;

}

unsigned int Random(int nLow, int nHigh){return (rand()%(nHigh-nLow+1))+nLow;}

void shuffle_Order (tvpii &vp)

{ int i, t, index;

for ( i=vp.size()-1; i>0; --i) {

index = rand() % (i+1);

t = vp[index].second;

vp[index].second = vp[i].second;

vp[i].second = t;

Page 50: معجزة ترتيب سور القرآن.pdf

51

}

}

void shuffle_Order (tvpii &vp, tvpii &vphalf1, tvpii &vphalf2)

{ shuffle_Order(vp);

vphalf1.assign(vp.begin(), vp.end()-vp.size()/2);

vphalf2.assign(vp.begin() + vp.size()/2, vp.end());

}

// Limit the lower and upper random numbers

void randomize_Data (tvpii &vp)

{ unsigned int i, min, max;

min = Random(3, 20);

max = Random(200, 300);

for ( i=0; i<vp.size(); ++i) {

vp[i].second = Random(min, max);

}

}

void randomize_Data (tvpii &vp, tvpii &vphalf1, tvpii &vphalf2)

{ randomize_Data(vp);

vphalf1.assign(vp.begin(), vp.end()-vp.size()/2);

vphalf2.assign(vp.begin() + vp.size()/2, vp.end());

}

void PRINT_ELEMENTS (const vector<int>& v, string str)

{ cout << str;

for (vector<int>::const_iterator pos = v.begin();

pos != v.end(); ++pos) {

cout << *pos << ' ';

}

cout << endl << endl;

}

void COPY_ELEMENTS (const vector<int>& coll, int Array[])

{ for (unsigned int i=0; i<coll.size(); ++i) {

Array[i] = Array[i] + coll[i];

}

}

int find_max_score(int frq[], int size)

{ int i, max = size-1;

for (i = max; i>0; --i ) {

if( frq[i] != 0 ){ return i; }

}

return i;

}

void printFreq(int option, int frq[], int size, string folder, string file,

string headLine)

{ int width = 15;

int max = find_max_score( frq, size );

file = folder + "/Op" + itos(option) + "-" + file + ".txt";

ofstream outfile( file.c_str(), ios_base::app );

outfile << "\n\n" << headLine << " result for option " << option << " , "

<< accumulate(frq, frq+size, 0) << " cases tested. \n";

cout << "\n\n" << headLine << " result for option " << option << " , "

<< accumulate(frq, frq+size, 0) << " cases tested. \n";

string s1(58, '-');

outfile << s1 << endl;

cout << s1 << endl;

for (int i = max; i >= 0; --i) {

outfile << setw(28) << " Number of cases in store[ " << right << setw(2) << i << " ] = ";

outfile << setw(width) << frq[i] << "\n\n";

cout << setw(28) << " Number of cases in store[ " << right << setw(2) << i << " ] = ";

cout << setw(width) << frq[i] << "\n\n";

}

outfile << s1 << endl;

outfile.close();

cout << s1 << endl;

}

void printArray(int option, int a[], string folder, string file, string headLine)

{ file = folder + "/Op" + itos(option) + "-" + file + ".txt";

ofstream outfile( file.c_str(), ios_base::app );

for (int i=0; i<SIZE; ++i) {

outfile << setw(7) << a[i];

}

outfile << "\n";

outfile.close();

}

void printCase(int option, const vector<int>& v, string folder, string file, string headLine)

{ file = folder + "/Op" + itos(option) + "-" + file + ".txt";

ofstream outfile( file.c_str(), ios_base::app );

Page 51: معجزة ترتيب سور القرآن.pdf

50

outfile << headLine << ": ";

for (size_t i=0; i<v.size(); ++i) {

outfile << v[i] << " ";

}

outfile << endl;

outfile.close();

}

void printScore(int option, int score, string folder, string file, string headLine)

{ file = folder + "/Op" + itos(option) + "-" + file + ".txt";

ofstream outfile( file.c_str(), ios_base::app );

outfile << headLine << ": " << score << endl;

outfile.close();

}

void printData(int option, const tvpii& vii, string folder, string file, string headLine)

{ file = folder + "/Op" + itos(option) + "-" + file + ".txt";

ofstream outfile( file.c_str(), ios_base::app );

outfile << headLine << ": ";

for (size_t i=0; i<vii.size(); ++i) {

outfile << vii[i].second << " ";

}

string s1(78, '-');

outfile << endl << s1 << endl;

outfile.close();

}

void horizontalFrequency(int num_looping, int AccumulatedArray[], int size, int group)

{ cout << endl << "Ratios of occurence of Group " << group << " relations.\n";

for (int k=0; k<size; ++k)

cout << setw(digits(num_looping)) << k+1 << " " ;

cout << endl;

string str( size * (digits(num_looping)+1), '-');

cout << str << endl;

for (int j=0; j<size; ++j)

cout << setw(digits(num_looping)) << AccumulatedArray[j] << " ";

cout << endl;

for (int i=0; i<size; ++i)

cout << setw(digits(num_looping)) << num_looping << " " ;

cout << endl;

cout << str << endl;

}

int digits(int number)

{

int width=0;

while (number >0)

{

width++;

number = number / 10;

}

return width;

}

// End of File utility.cpp

//-----------------------------------------------------------------------------------------------

// File Loop.h

#ifndef LOOP_H

#define LOOP_H

#include "utility.h"

#include "Ayat.h"

#include "C19_76.h"

#include "SixPart.h"

#include "UsedUn.h"

#include "LongShortC1.h"

#include "LongShortC2.h"

#include "LongShortC3.h"

#include "Mixed.h"

void loop ();

#endif

// End of File Loop.h

//-----------------------------------------------------------------------------------------------

// File Loop.cpp

#include "Loop.h"

#include "utility.h"

void loop ()

{

srand((unsigned) time(0));

gen_primes();

Page 52: معجزة ترتيب سور القرآن.pdf

52

const int MAX_PATH = 200;

char CurrentPath[MAX_PATH];

_getcwd(CurrentPath, MAX_PATH);

cout << CurrentPath << endl;

string subName = "/Result-Option-";

string folder1 = CurrentPath;

string folder2 = CurrentPath;

string folder = CurrentPath;

folder = folder + subName;

folder1 = folder1 + subName + "1";

folder2 = folder2 + subName + "2";

_mkdir(folder1.c_str());

_mkdir(folder2.c_str());

vector<int> G1, G2, G3, G4;

instructions ();

int option = OneOrTwo();

int num_looping = getNumber();

tvpii vp, vphalf1, vphalf2;

initialize (vp, vphalf1, vphalf2);

folder = folder + itos(option);

for (int j=0; j<1; ++j) {

Time();

int G1CasesAccumulate[SIZE] = {0};

int G2CasesAccumulate[SIZE] = {0};

int G3CasesAccumulate[SIZE] = {0};

int G4CasesAccumulate[SIZE] = {0};

int G1Scores[SIZE] = {0};

int G2Scores[SIZE] = {0};

int G3Scores[SIZE] = {0};

int G4Scores[SIZE] = {0};

int G_123[3*SIZE] = {0};

for (int i=0; i<num_looping; ++i)

{

int c1=0, c2=0, c3=0, c4=0, c123=0;

//------------------------------------------------------------- GROUP-1 relations

Ayat a114(vp, "All 1 to 114 " );

a114.doingWork();

a114.testRelations();

G1.clear(); G2.clear(); G3.clear(); G4.clear();

G1.push_back(a114.r1); // 1 27:30:30:27 تناظر

G1.push_back(a114.r2); // 2 3105:3450 = 9:10 تناسب

G1.push_back(a114.r3); // 3 Right 6236

G1.push_back(a114.r4); // 4 Left 6555

Ayat a57f(vphalf1, " 1st half 1-57 ");

a57f.doingWork();

a57f.fillv6NumToCompare();

Ayat a57s(vphalf2, " 2nd half 58-114 ");

a57s.doingWork();

a57s.fillv6NumToCompare();

vector<int> v = twoHalf_Intersection(a57f, a57s);

G1.push_back(v.size());

G1.push_back(twoHalf_LengthCompare(a57f, a57s));

G1.push_back(twoHalf_HomogCompare (a57f, a57s));

G1.push_back(twoHalf_AyatCompare (a57f, a57s));

c1 = accumulate (G1.begin(), G1.end(), 0);

G1Scores[c1]++;

COPY_ELEMENTS (G1, G1CasesAccumulate);

//------------------------------------------------------------ GROUP-2 relations

CLeng19_76 Leng19Obj(vp);

Leng19Obj.doingWork();

G2.push_back(Leng19Obj.r1);

G2.push_back(Leng19Obj.r2);

G2.push_back(Leng19Obj.r3);

LongShortC1 longshort1(vp);

longshort1.prepareClass3();

G2.push_back(longshort1.isSymmetrical);

LongShortC3 longshort3(vp);

longshort3.prepare();

G2.push_back(longshort3.isHomogEqualNonHomog_Match

G2.push_back(longshort3.isHomogEqualNonHomog_NotMatch);

Page 53: معجزة ترتيب سور القرآن.pdf

53

SixPart SixObj(vp);

G2.push_back(SixObj.score);

CUsedUnUsed UUsObj(vp);

G2.push_back(UUsObj.isOddEvenUsedEqually);

G2.push_back(UUsObj.scoreOddEven2Half_Uses);

c2 = accumulate (G2.begin(), G2.end(), 0);

G2Scores[c2]++;

COPY_ELEMENTS (G2, G2CasesAccumulate);

//------------------------------------------------------------ GROUP-3 relations

CMixed mixObj(vp);

G3.push_back(mixObj.mid57Match1()); // Rel- 1653 = 1653

G3.push_back(mixObj.CenterPoint()); // Rel- Hadeed before & after @ 57

G3.push_back(mixObj.isEqualDiff()); // Rel- Sum 5 Souar = 319 = 6555 - 6236

G3.push_back(mixObj.isTotaNumAyatModeSeq()); // Rel- 333667 % 6555 = 5917, (6236-5917 =

G3.push_back(mixObj.is5104Relat319()); // Rel- 5104 = 319 x 16

G3.push_back(mixObj.isEqual_114()); // Rel- 333667 = 3x3 + 3x3 + 3x6 + 6x6 + 6x7 = 114

G3.push_back(mixObj.degree); // Rel- الخمسة السور آيات وعدد رقم بين الفرق تساوي

G3.push_back(isPrime( mixObj.getAyatTotal() + mixObj.getSeqTotal() ) );

G3.push_back(isPrime( mixObj.getSumAyatMultipleSeq() ));

G3.push_back(isPrime(mixObj.getAyatTotal()));

c3 = accumulate (G3.begin(), G3.end(), 0);

G3Scores[c3]++;

COPY_ELEMENTS (G3, G3CasesAccumulate);

//------------------------------------------------------------- GROUP-4 relations

G4Scores[5-mixObj.repetitionSetSize]++;

c123 = c1 + c2 + c3;

G_123[c123]++;

if (c1 >= 7 || c2 >= 11 || c3 >= 7 || c123 >= 19) {

printCase(option, G1, folder, "GG1", "G1 relations");

printCase(option, G2, folder, "GG1", "G2 relations");

printCase(option, G3, folder, "GG1", "G3 relations");

printScore(option, c123, folder, "GG1", "Case Score ");

printData(option, vp, folder, "GG1", "Data: ");

a114.showRelations ();

a57f.showRelations ();

a57s.showRelations ();

PRINT_ELEMENTS (G1, "G1 results: ");

cout << endl;

PRINT_ELEMENTS (G2, "G2 results: ");

cout << endl;

PRINT_ELEMENTS (G3, "G3 results: ");

cout << endl;

printLine();

cout << endl;

}

if (option == 1) {

shuffle_Order (vp, vphalf1, vphalf2);

}

else if (option == 2) {

randomize_Data (vp, vphalf1, vphalf2);

}

}

printFreq(option, G1Scores, SIZE, folder, "G1", "G1 relations");

horizontalFrequency(num_looping, G1CasesAccumulate, 8, 1);

printFreq(option, G2Scores, SIZE, folder, "G2", "G2 relations");

horizontalFrequency(num_looping, G2CasesAccumulate, 10, 2);

printFreq(option, G3Scores, SIZE, folder, "G3", "G3 relations");

horizontalFrequency(num_looping, G3CasesAccumulate, 10, 3);

printFreq(option, G4Scores, SIZE, folder, "G4", "G4 relations");

printFreq(option, G_123, SIZE*3, folder, "G123", "G123 relations");

printArray(option, G1CasesAccumulate, folder, "G1-Accumu", "G1 ");

printArray(option, G2CasesAccumulate, folder, "G2-Accumu", "G2 ");

printArray(option, G3CasesAccumulate, folder, "G3-Accumu", "G3 ");

Time();

}

char stop;

cin >> stop;

}

// End of File Loop.cpp

//-----------------------------------------------------------------------------------------------

// File main.cpp

#include "utility.h"

#include "Loop.h"

int main()

{

loop ();

}

// End of File main.cpp

//-----------------------------------------------------------------------------------------------