إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

كود ايجاد احتمالات

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • كود ايجاد احتمالات

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

    عندنا مصفوفة ارقام من 1 الى 5
    {1;2;3;4;5}

    ماهو الكود الذي يعطينا احتمالات ترتيب الاعداد بحيث لا يكون الرقم في مرتبته
    اقصد مثلا هذا الحل
    { 2;5;4;1;3}


    ------------ قد ننقل الطلب الى موضوع استراحة اوتوبلاي ------
    بالتوفيق

  • #2
    أقل ما يقال أنه :
    ســــــــؤال جميل جدا ورائع

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

    تعليق


    • #3
      عدد الاحتمالاات = 120

      عدد الاحتمالات المربوطة بالشرط = 44

      ملاحظة : اذ أردت قراءة الحل بعد كتابته بثواني انقله للاستراحة

      تعليق


      • #4
        المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
        عدد الاحتمالاات = 120

        عدد الاحتمالات المربوطة بالشرط = 44

        ملاحظة : اذ أردت قراءة الحل بعد كتابته بثواني انقله للاستراحة
        حاضر استاذ .......سانتقل مباشرة

        تعليق


        • #5
          هذه خربشة قبل الاطلاع على الحل .......عدد الاحتمالات لا تتجاوز 21 !!!!!!!!!!!!!!!

          كود PHP:
          abc4web "" es1;
          repeat
          ----------
          abc ="";
          num = {1,2,3,4,5};
          for 
          i=1,do
          p=Math.Random(1,#num);
          if num[p] ~= i then
          abc 
          abc..","..num[p]; 
          Table.Remove(num,p);
          end
          end

          if String.Length(abc) >= 10 then
          abc4web 
          abc4web.."\r\n"..abc;
          end
          es 
          es 1;
          until es == 50

          Dialog
          .Message(""abc4web); 

          تعليق


          • #6
            أخي لقد وضعت أنت هذا المثال :
            { 2;5;4;1;3} هل بوجد ضمن الكود المكتوب أعلاه ؟؟ لا
            قم يزيارة الاستراحة لتجده قابعا في الرتبة 18 من الاحتمالات موفق :abc_086:

            تعليق


            • #7
              المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
              أخي لقد وضعت أنت هذا المثال :
              { 2;5;4;1;3} هل بوجد ضمن الكود المكتوب أعلاه ؟؟ لا
              قم يزيارة الاستراحة لتجده قابعا في الرتبة 18 من الاحتمالات موفق :abc_086:
              اعتمدت الدالة العشوائية ثم اشترطت فيما ينتج عنها ....و منت اعتقد انها ستسستمر لكنها توقفت لسب برمجي معين

              تعليق


              • #8
                لاتبنى الحلول الرياضية على العشوائية
                و الا لن تمثل حلول بل جزء من الحلول و الحلول المكررة الدالة العشوائية وسيلة لاستغلال النتائج و ليس لفرض أو ضبط
                نتائج رياضية لم أصادف حلا رياضيا بحتا يعتمد على العشوائية
                المنطق يرفضها لبناء خوارزمية عمل ذات نتائج محددة

                تعليق


                • #9
                  جيد حتى ننوع في الحلول سأكتب كما قلت خربشة
                  في انتظار تعديل و تهذيب لها

                  تعليق


                  • #10
                    السلام عليكم ورحمة الله وبركاته
                    لنفكـــر بطريقة مختلفـــة .. ونتخيل المصفوفة المطروحة {1,2,3,4,5}
                    عددا وواضح أنه سيكون 12345 اذن هذا هو البداية النهاية أو أكبر عدد مكون
                    من نفس الارقام هو 54321 بمعنى أن المجموعات تكون محصورة أو موجودة ضمن
                    هذا النطاق العددي من 12345 إلى 54321
                    وعند بناء دالة تكرارية سيكون هناك تزايد يفرض تواجد أعداد ضمن هذا النطاق العددي أرقامها
                    غير مقصودة مثلا عندما نبدأ من 12345 سيكون بعدها 12346 ثم 12347 هاهو رقم 6 ظهر
                    ناهيك عن تكرار لنفس الأرقام
                    ---------------------
                    اذن هناك الكثير من الاستثناءات التي ستطرح على الاعداد من 12345 إلى 54321
                    وهي :
                    01 - منع تكرار رقم معين في عدد ما
                    02 - استبعاد الاعداد التي تشمل 0 أو 6 أو 7 أو 8 أو 9
                    03 - تخفيف مجال الحصر و خصوصا أن الاقام المكونة من الارقام 1 - 2 - 3 - 4 - 5 ستشكل في كل
                    الحالات عددا له قابلية القسمة على 3
                    ------------------------------------------------------------------------------------------------------
                    اذ استطعنا تحقيق هذه المراحل سنتحصل على المصفوفات على شكل أعداد
                    نقوم بتحويله على شكل مصفوفات و بالتالي قد نحقق الطلب

                    لنحاول

                    تعليق


                    • #11
                      سنعلن عن حاوية سيتجمع فيها الحل النهائي ويعلن عنها عادة قبل
                      أي كود و لتكن :
                      01 -
                      كود PHP:
                      g="" 
                      نعم في المكان المعلن عنه ستتجمع الحلول

                      02 - الدالة التكرارية التي اتفقنا عنها بأن تكون منطلق فكرة التطبيق
                      من السهل الاعلان عنها كالتالي :
                      كود PHP:
                      for 12345,54321 do 
                      خلاص الان بدأ الحساب من .. إلى و ما أكثر الاستثناءات
                      ---------------------------------------------------------------------
                      ما هي الاعداد التي نريد التقاطها عند بدء العد ؟؟
                      - الاعداد التي أرقام مراتبها الخمسة يجب أن تكون ياإما 1 أو 2 أو 3 أو 4 أو 5
                      غير ذلك مرفوض
                      اذن التعبير j هو عدد مكون من 5 مراتب هذه المراتب أعدادها لن يقبل منها الا ما ينتمي الى السلسلة من 1 الى 5
                      اذن دعنا نعلن عن هذه الجزئية
                      سنكتب 5 اعلانات لأن المراتب 5 لكل عدد كل اعلان يعنى بمرتبة معينة يفترض
                      الرقم 1 تعبير صحيحا اذ كان الرقم مقبول لاحظ :
                      كود PHP:
                      c1string.find(""..String.Mid(j,11), "[1-5]"1);
                      c2string.find(""..String.Mid(j,21), "[1-5]"1);
                      c3string.find(""..String.Mid(j,31), "[1-5]"1);
                      c4string.find(""..String.Mid(j,41), "[1-5]"1);
                      c5string.find(""..String.Mid(j,51), "[1-5]"1); 
                      أضن عند تأمل الأسطر الصورة ستكون واضحة
                      كل سطر يخص مرتبة معينة و كأننا مثلا في السطر الاول نقول
                      اذا كانت الرتبة الاولى للعدد j محصورة من 1 الى 5 فإن رقم 1 معبر عن صحة ذلك

                      نواصل

                      تعليق


                      • #12
                        اذن نبدأ في بناء شرط الذي على ضوئه
                        يتم الموافقة على العدد j حتى يكون مقبولا
                        ستكون بداية الشرط هكذا :
                        كود PHP:
                        if c1 == and c2 == and c3 == and c4 == and c5 == 
                        لكن هذا لا يكفي لانه سيكون هناك أعداد أخرى غير مقبولة نخفف منها
                        ونضيف شرط قابلية القسمة على 3

                        نضيف :
                        كود PHP:
                         and  Math.Mod(j3)==
                        بدأ الان تناقص نوعا ما للعناصر الدخيلة و بدأت الصورة تتضح قليلا

                        نواصل

                        تعليق


                        • #13
                          لكن لو أعلنا على العدد j الناتج
                          سيكون هناك أرقاما مكررة و تحقق ماسيق من شروط
                          اذن علينا أن نمنع ذلك و نخير البرنامج
                          أن المرتية الاولى لن تساوي الثانية و لا الثالثة و لا الرابعة و لا الخامسة أليس كذلك
                          اذن نضيف :
                          كود PHP:
                           and String.Mid(j,1,1)~=String.Mid(j,21)and String.Mid(j,11)~=String.Mid(j,31) and String.Mid(j,11)~=String.Mid(j,41
                          and 
                          String.Mid(j,11)~=String.Mid(j,51
                          و نخبره كذلك بأننا نشترط كذلك المرتبة الثانية لن تساوي لا الثالثة و لا الرابعة و لا الخامسة

                          لنخبره :
                          كود PHP:
                          and String.Mid(j,2,1)~=String.Mid(j,31)and String.Mid(j,21)~=String.Mid(j,41) and String.Mid(j,21)~=String.Mid(j,51
                          و حتى لا تغضب المرتبة الثالثة فهي بدورها لن تساوي لا الرابعة و لا الخامسة
                          جيد نضيف :
                          كود PHP:
                          and String.Mid(j,3,1)~=String.Mid(j,41)and String.Mid(j,31)~=String.Mid(j,51
                          و المرتبة الرابعة لن تساوي الخامسة
                          كود PHP:
                          and String.Mid(j,4,1)~=String.Mid(j,51
                          هل هذه الشروط كافية لحصر الاحتمالات ؟؟
                          نواصل

                          تعليق


                          • #14
                            طبعا غير كافية لأن التمرين
                            يشترط بأن لا تقبل أي عدد حافظ أحد أرقامه على رتبته الاصلية
                            فلا الواحد مقبول في الرتية الاولى و لا الاثنين مقبولة في الرتبة الثانية و لا الثلاثة في الرتبة الثالثة
                            و لا الأربعة في الرتبة الرابعة و لا الخمسة في الرتبة الخامسة
                            إليك بشرط يعبر عن ذلك
                            كود PHP:
                            and String.Mid(j,11)~=""..1
                            and String.Mid(j,21)~=""..2
                            and String.Mid(j,31)~=""..3
                            and String.Mid(j,41)~=""..4
                            and String.Mid(j,51)~=""..5 
                            هنا الشروط انتهت و لم يبق لنا شرطا لذلك وجب تحديد ماذا يحدث بعد تحقق دالة الشرط التي تعمل
                            ضمن دالة الــ for
                            ونكتب :
                            كود PHP:
                            then 
                            ماذا يحدث ؟؟؟؟

                            تعليق


                            • #15
                              تقول لي عند تحقق كل ذلك
                              سيقبل العدد j الذي مر من خلال الدالة التكرارية for و الموجود من 12345 إلى غاية 54321
                              أقول لك نعم لكن سنحصل علية عددا و نحن نريده على شكل مصفوفـــــــة
                              مثلا العدد الاول سيكون
                              21453
                              كيف تحوله على شكل مجموعة
                              نستعمل String.Mid متفقين
                              اذن التعبير :
                              كود PHP:
                              tamer "{"..String.Mid(j,11)..","..String.Mid(j,21)..","..String.Mid(j,31)..","..String.Mid(j,41)..","..String.Mid(j,51).."}" 
                              هو العدد j المقبول وفق الشروط و مجزأ على شكل مجموعة
                              ولاحظ أن هذا التعبير سيعبر عن عدد واحد في دورة الدالة for نريد الاحتفاظ به
                              ماذا نعمل نرميه في الحاوية المعلن عليها في البداية
                              أي
                              كود PHP:
                              g=g..tamer.. "   " 
                              بمعنى أنه سيتم الاحتفاظ بكل عدد مقبول بعد تحويله على شكل مجموعة في الحاوية g
                              ووضعنا فراغا حتى لا تتداخل الأعداد و يصبح كرنفال أرقام
                              ----------------------------------------------------------------------------
                              نغلق الكود نحسب لدينا if وحدة و for وحدة اذن نحتاج
                              لاثنين end وحدة لهذه و وحدة لهذه
                              كود PHP:
                              end
                              end 
                              ------------------
                              انتهى بعد ما تجمع كل هذه الأكواد
                              في زر و تضغط لن يظهر شيء

                              تعليق

                              مواضيع تهمك

                              تقليص

                              المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
                              المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
                              المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
                              المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
                              المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
                              يعمل...
                              X