ابراهيم مرسى قام بنشر يوليو 4, 2017 قام بنشر يوليو 4, 2017 الإخوة الكرام السلام عليكم ورجمة الله وبركاته هل توجد معادلة لتقسيم رقم على مجموعة أرقام غير متساوية فى المرفق هل يمكن تقسيم الرقم فى الخلية c1 على أرقام المدى من b1:b6 وجزاكم الله خيرا تقسيم.rar
ياسر خليل أبو البراء قام بنشر يوليو 4, 2017 قام بنشر يوليو 4, 2017 وعليكم السلام أخي الكريم ابراهيم ما هو منطق التقسيم .. ؟ وعلى أي أساس تتم عملية التقسيم ؟ وهل تضاف الأرقام التي يتم تقسيمها على القيمة الحالية الموجودة في النطاق B1:B6؟ هلا أرفقت لنا بعض النتائج المتوقعة ..؟
ابراهيم مرسى قام بنشر يوليو 4, 2017 الكاتب قام بنشر يوليو 4, 2017 الان, ياسر خليل أبو البراء said: وعليكم السلام أخي الكريم ابراهيم ما هو منطق التقسيم .. ؟ وعلى أي أساس تتم عملية التقسيم ؟ وهل تضاف الأرقام التي يتم تقسيمها على القيمة الحالية الموجودة في النطاق B1:B6؟ هلا أرفقت لنا بعض النتائج المتوقعة ..؟ الأخ العزيز ياسر جزاك الله خيرا على سرعة الرد المرفق هو لمحل بيع مواد تموينية فى مصر القيم فى العمود b هى قيمة الدعم المخصص للمواطنين حسب عدد أفرادهم الخلية c1 هى اجمالى ماتم توزيعه من الدعم بنهاية اليوم المطلوب معرفة عدد البطاقات التى صرفت دعمها وبها فرد واحد ( b1 ) ومبلغها 49 جنيه وعدد البطاقات التى صرفت دعمها وبها فردين ( b2 ) ومبلغها 99 جنيه وهكذا أرجو أن أكون قد وضحت سؤالى ومرفق ملف أكثر وضوجا تقسيم2.rar
ياسر خليل أبو البراء قام بنشر يوليو 4, 2017 قام بنشر يوليو 4, 2017 الموضوع معقد جداً لأن عدد الاحتمالات كبيرة جداً جداً .. وقد لا توجد نتيجة في النهاية .. هلا أرفقت النتائج المتوقعة ..... حيث جربت احتمالات كثيرة بشكل يدوي ولم أجد النتيجة المرجوة
ابراهيم مرسى قام بنشر يوليو 4, 2017 الكاتب قام بنشر يوليو 4, 2017 1 ساعه مضت, ياسر خليل أبو البراء said: الموضوع معقد جداً لأن عدد الاحتمالات كبيرة جداً جداً .. وقد لا توجد نتيجة في النهاية .. هلا أرفقت النتائج المتوقعة ..... حيث جربت احتمالات كثيرة بشكل يدوي ولم أجد النتيجة المرجوة الأخ العزيز ياسر لك منى جزيل الشكر على مجهودك معى جعله الله فى ميزان حسناتك سأعطى مثالا آخر لعله يكون أبسط لنفرض أنك معلم فى فصل دراسى قررت أن توزع مبلغ 100 جنيه على طلاب الفصل البالغ عددهم 11 طالب قسمنهم الى ثلاث مجموعات مثلا بحيث يأخذ كل طالب فى المجموعة الأولى 5 جنيهات وكل طالب فى المجموعة الثانية 10جنيه وكل طالب فى المجموعة الثالثة 15 جنيه وتم توزيع المبلغ على الطلاب جميعهم هل يمكننا عن طريق معادلة او كود أن نحسب عدد طلاب كل مجموعه وبخصوص طلبك ليس لدى نتائج متوقعه مرفق ملف يوضح المثال قمت فيه بتحديد عدد طلاب المجموعات يدويا فهل توجد معادلة لاستخراج عدد طلاب كل مجموعة فى حالة عدم معرفتنا بها بدلالة باقى المعلومات المتوفرة 10.rar
بن علية حاجي قام بنشر يوليو 4, 2017 قام بنشر يوليو 4, 2017 السلام عليكم هذا حل من الحلول (عدد الطلاب 11 لا يعطي حلا فتم تغييره بالعدد 12 أو 13)... إن شاء الله أحاول أن أقدم لك حلا آخر باستعمال Solver بن علية حاجي 10.rar 1
ابراهيم مرسى قام بنشر يوليو 4, 2017 الكاتب قام بنشر يوليو 4, 2017 2 ساعات مضت, بن علية حاجي said: السلام عليكم هذا حل من الحلول (عدد الطلاب 11 لا يعطي حلا فتم تغييره بالعدد 12 أو 13)... إن شاء الله أحاول أن أقدم لك حلا آخر باستعمال Solver بن علية حاجي 10.rar الأخ العزيز / بن عليه العدد 11 أعطانى حلا موضح فى المرفق فلو فرضنا أن عدد طلاب المجموعة الأولى 5 والثانية 3 والثالثة 3 يكون مجموعهم 11 ولو أخذ كل طالب فى المجموعة الأولى 5 جنيهات وفى الثانية 10 وفى الثالثة 15 يكون المجموع 100 جنيه وهو المبلغ الذى تم توزيعه وفى مثال سيادتكم مجموع المبلغ وصل الى 120 جنيه وهو غير مطابق للمبلغ الذى تم توزيعه 100 جنيه فى انتظار رأى حضرتك جزاك الله خيرا 11.rar
ياسر خليل أبو البراء قام بنشر يوليو 4, 2017 قام بنشر يوليو 4, 2017 الأخ الكريم إبراهيم يوجد احتمالات كثيرة للمطلوب .. المثال بسيط ولذا يمكن تنفيذه ولكن سيكون معقد لو زادات البيانات .... جرب الكود في ورقة العمل المسماة ورقة 2 .. انقر على زر الأمر وسينتج لك في أول ثلاثة أعمدة الأعداد المتوقعة .. والثلاثة الأعمدة الأخرى حاصل ضرب الأرقام في 5 و 10 و 15 ، والعمود الأخير للمجموع قمت بعمل تنسيق شرطي لعمود المجموع إذا كانت القيمة مساوية لـ 100 .. قم بتنفيذ الكود ثم قف في أول صف ثم فلتر العمود G على شرط الرقم 100 لتظهر لك الاحتمالات الممكنة تقبل تحياتي Possible Combinations.rar
بن علية حاجي قام بنشر يوليو 4, 2017 قام بنشر يوليو 4, 2017 السلام عليكم ورحمة الله معذرة على الخطأ في الملف المرفق في ردي السابق، قمت بتصحيح معادلة المجموعة الثالثة في الجدول، وبالتالي العدد 11 أعطى 4 حلول منها الحل الذي أدرجتَه في توضيحك... والعدد 12 أعطى خمسة حلول... فمعذرة مرة أخرى... بالنسبة للحل الذي يُستعمل فيه Solver فهو غير ممكن إذ يجب أن يكون عدد المعادلات مساويا عدد المجاهيل (القيم المطلوب تعيينها) بن علية حاجي 10.rar
ابراهيم مرسى قام بنشر يوليو 5, 2017 الكاتب قام بنشر يوليو 5, 2017 9 ساعات مضت, ياسر خليل أبو البراء said: الأخ الكريم إبراهيم يوجد احتمالات كثيرة للمطلوب .. المثال بسيط ولذا يمكن تنفيذه ولكن سيكون معقد لو زادات البيانات .... جرب الكود في ورقة العمل المسماة ورقة 2 .. انقر على زر الأمر وسينتج لك في أول ثلاثة أعمدة الأعداد المتوقعة .. والثلاثة الأعمدة الأخرى حاصل ضرب الأرقام في 5 و 10 و 15 ، والعمود الأخير للمجموع قمت بعمل تنسيق شرطي لعمود المجموع إذا كانت القيمة مساوية لـ 100 .. قم بتنفيذ الكود ثم قف في أول صف ثم فلتر العمود G على شرط الرقم 100 لتظهر لك الاحتمالات الممكنة تقبل تحياتي Possible Combinations.rar الأخ العزيز / ياسر جزاك الله خيرا على مجهودك معى قمت ببعض التعديلات فى الكود ليتناسب مع ملفى الأصلى فى المشاركة رقم 2 وعمل الكود جيدا الا أنه يعطينى أعلى ميلغ للتقسيم يقل عن المبلغ الأصلى الموجود فى ورقة واحد فهل لدىكم حل وهل يمكن اضافة ما تمنع النتائج أقل من المبلغ الذى سيتم توزيع لنقلل النتائج انظر المرفق ( الرجاء الضغط على الكود لمشاهدة النتائج لأنى قمت بحذفها لتقليل حجم الملف حتى يمكن رفعه حيث يصل حجمه بعد تفعيل الكود الى 35 ميجا ) Possible Combinations2.rar 8 ساعات مضت, بن علية حاجي said: السلام عليكم ورحمة الله معذرة على الخطأ في الملف المرفق في ردي السابق، قمت بتصحيح معادلة المجموعة الثالثة في الجدول، وبالتالي العدد 11 أعطى 4 حلول منها الحل الذي أدرجتَه في توضيحك... والعدد 12 أعطى خمسة حلول... فمعذرة مرة أخرى... بالنسبة للحل الذي يُستعمل فيه Solver فهو غير ممكن إذ يجب أن يكون عدد المعادلات مساويا عدد المجاهيل (القيم المطلوب تعيينها) بن علية حاجي 10.rar الأخ العزيز بن عليه لك منى كل الشكر والتقدير على مجهودك المثمر قمت ببعض النعديلات فى الملف والمعادلات ليتناسب مع احتيجاتى العملية حيث أن موضوع الطلبة والثلاث مجموعات كان مجرد مثال ولكنى لم أحصل على نتائج فهل تتكرم بالنظر فى معادلات الملف المرفق لتصويب الأخطاء 11.rar
ياسر خليل أبو البراء قام بنشر يوليو 5, 2017 قام بنشر يوليو 5, 2017 سأحاول الإطلاع على المرفق قريباً حيث أنني غير متاح حالياً ..
ياسر خليل أبو البراء قام بنشر يوليو 6, 2017 قام بنشر يوليو 6, 2017 أخي الكريم إبراهيم جرب الكود التالي عله يفي بالغرض Option Explicit Sub PossibleCombinations() Dim r As Variant Dim v As Double Dim i As Long Dim a As Long Dim b As Long Dim c As Long Dim d As Long Dim e As Long Dim f As Long Const x As Long = 20 ReDim r(1 To 1048576, 1 To 13) Application.ScreenUpdating = False For a = 1 To x For b = 1 To x For c = 1 To x For d = 1 To x For e = 1 To x For f = 1 To x v = Application.WorksheetFunction.Sum(a * 49, b * 99, c * 149, d * 199, e * 224, f * 249) If v = 14221 Then i = i + 1 r(i, 1) = a r(i, 2) = b r(i, 3) = c r(i, 4) = d r(i, 5) = e r(i, 6) = f r(i, 7) = a * 49 r(i, 8) = b * 99 r(i, 9) = c * 149 r(i, 10) = d * 199 r(i, 11) = e * 224 r(i, 12) = f * 249 r(i, 13) = Application.WorksheetFunction.Sum(r(i, 7), r(i, 8), r(i, 9), r(i, 10), r(i, 11), r(i, 12)) If i >= Rows.Count Then GoTo Skipper End If Next f Next e Next d Next c Next b Next a Skipper: Range("A1").Resize(i, UBound(r, 2)).Value = r Application.ScreenUpdating = True MsgBox "Done...", 64 End Sub الكود سيستغرق وقت طويل بعض الشيء لربما يصل لأكثر من 5 دقائق لذا لا تقلق .. عدد النتائج كبير جداً .. لأن الاحتمالات كثيرة جداً جداً 1
بن علية حاجي قام بنشر يوليو 6, 2017 قام بنشر يوليو 6, 2017 السلام عليكم ورحمة الله في 05/07/2017 at 08:07, ابراهيم مرسى said: الأخ العزيز بن عليه لك منى كل الشكر والتقدير على مجهودك المثمر قمت ببعض النعديلات فى الملف والمعادلات ليتناسب مع احتيجاتى العملية حيث أن موضوع الطلبة والثلاث مجموعات كان مجرد مثال ولكنى لم أحصل على نتائج فهل تتكرم بالنظر فى معادلات الملف المرفق لتصويب الأخطاء 11.rar أخي الكريم ابراهيم مرسي، الطريقة التي وضعتها في الملف 10.rar صالحة فقط لثلاث مجموعات (ثلاثة مجاهيل) وأنت تريد تطبيقها على 5 مجموعات لأنه وكما ذكرت سابقا إنه يجب أن يكون عدد المجاهيل مساويا على الأقل عدد المعادلات، وفي المسألة لديك فقط معادلتين (المبلغ الموزع وعدد الطلبة) والطريقة المعتمدة في الملف 10.rar باعتبار أن عدد المعادلات هو 2 وعدد المجاهيل هو 3 هي أن نثبت قيم أحد المجاهيل (من 0 أو من 1 إلى عدد الطلبة) ونعين المجهولين الآخرين باستعمال المعادلتين... أما إذا زاد عدد المجاهيل إلى أكثر من ثلاثة فيجب ترك اثنين منها (يتم تعينهما بالمعادلتين) وتثبيت كل الباقي... مثلا إذا كان عدد المجاهيل 4 فنقوم بتثبيت اثنين منها (وعدد الاحتمالات في هذه الحالة يساوي "مربع عدد الطلبة"، عموما يكون عدد الاحتمالات مساويا "عدد الطلبة أس عدد المجاهيل ناقص 2" إذا فرضنا أن عدد الطلبة هو n وعدد المجاهيل هو k فإن عدد الاحتمالات هو nk-2) ونعين المجهولين الآخرين باستعمال المعادلتين... وهكذا وأقترح أن يكون الحل باستعمال الأكواد غير أني أعتقد أن الأكواد يكون عملها بطيئا أكثر فأكثر كلما زاد عدد المجاهيل... والله أعلم ليس لي طريقة أخرى للحل... بن علية حاجي 1
ابراهيم مرسى قام بنشر يوليو 7, 2017 الكاتب قام بنشر يوليو 7, 2017 18 ساعات مضت, ياسر خليل أبو البراء said: أخي الكريم إبراهيم جرب الكود التالي عله يفي بالغرض Option Explicit Sub PossibleCombinations() Dim r As Variant Dim v As Double Dim i As Long Dim a As Long Dim b As Long Dim c As Long Dim d As Long Dim e As Long Dim f As Long Const x As Long = 20 ReDim r(1 To 1048576, 1 To 13) Application.ScreenUpdating = False For a = 1 To x For b = 1 To x For c = 1 To x For d = 1 To x For e = 1 To x For f = 1 To x v = Application.WorksheetFunction.Sum(a * 49, b * 99, c * 149, d * 199, e * 224, f * 249) If v = 14221 Then i = i + 1 r(i, 1) = a r(i, 2) = b r(i, 3) = c r(i, 4) = d r(i, 5) = e r(i, 6) = f r(i, 7) = a * 49 r(i, 8) = b * 99 r(i, 9) = c * 149 r(i, 10) = d * 199 r(i, 11) = e * 224 r(i, 12) = f * 249 r(i, 13) = Application.WorksheetFunction.Sum(r(i, 7), r(i, 8), r(i, 9), r(i, 10), r(i, 11), r(i, 12)) If i >= Rows.Count Then GoTo Skipper End If Next f Next e Next d Next c Next b Next a Skipper: Range("A1").Resize(i, UBound(r, 2)).Value = r Application.ScreenUpdating = True MsgBox "Done...", 64 End Sub الكود سيستغرق وقت طويل بعض الشيء لربما يصل لأكثر من 5 دقائق لذا لا تقلق .. عدد النتائج كبير جداً .. لأن الاحتمالات كثيرة جداً جداً جزاك الله خيرا 18 ساعات مضت, بن علية حاجي said: السلام عليكم ورحمة الله أخي الكريم ابراهيم مرسي، الطريقة التي وضعتها في الملف 10.rar صالحة فقط لثلاث مجموعات (ثلاثة مجاهيل) وأنت تريد تطبيقها على 5 مجموعات لأنه وكما ذكرت سابقا إنه يجب أن يكون عدد المجاهيل مساويا على الأقل عدد المعادلات، وفي المسألة لديك فقط معادلتين (المبلغ الموزع وعدد الطلبة) والطريقة المعتمدة في الملف 10.rar باعتبار أن عدد المعادلات هو 2 وعدد المجاهيل هو 3 هي أن نثبت قيم أحد المجاهيل (من 0 أو من 1 إلى عدد الطلبة) ونعين المجهولين الآخرين باستعمال المعادلتين... أما إذا زاد عدد المجاهيل إلى أكثر من ثلاثة فيجب ترك اثنين منها (يتم تعينهما بالمعادلتين) وتثبيت كل الباقي... مثلا إذا كان عدد المجاهيل 4 فنقوم بتثبيت اثنين منها (وعدد الاحتمالات في هذه الحالة يساوي "مربع عدد الطلبة"، عموما يكون عدد الاحتمالات مساويا "عدد الطلبة أس عدد المجاهيل ناقص 2" إذا فرضنا أن عدد الطلبة هو n وعدد المجاهيل هو k فإن عدد الاحتمالات هو nk-2) ونعين المجهولين الآخرين باستعمال المعادلتين... وهكذا وأقترح أن يكون الحل باستعمال الأكواد غير أني أعتقد أن الأكواد يكون عملها بطيئا أكثر فأكثر كلما زاد عدد المجاهيل... والله أعلم ليس لي طريقة أخرى للحل... بن علية حاجي مشكور أخى الكريم على التوضيح
ياسر خليل أبو البراء قام بنشر يوليو 7, 2017 قام بنشر يوليو 7, 2017 وجزيت خيراً بمثل ما دعوت لي أخي الكريم إليك كود آخر أسرع في التنفيذ .. Sub PossibleCombinations() Dim a, p As Long, u As Long, arr As Variant Dim i1 As Long, i2 As Long, i3 As Long, i4 As Long, i5 As Long, i6 As Long Dim tot1 As Long, tot2 As Long, tot3 As Long, tot4 As Long, tot5 As Long, tot6 As Long Debug.Print "Start At : " & Format$(Now, "HH:MM:SS") Const Target As Long = 14221 Const x As Long = 20 u = Rows.Count ReDim a(1 To 1048576, 1 To 13) arr = Array(49, 99, 149, 199, 224, 249) Application.ScreenUpdating = False For i1 = 1 To x tot1 = i1 * arr(0) If tot1 >= Target Then GoTo L1 For i2 = 1 To x tot2 = tot1 + i2 * arr(1) If tot2 >= Target Then GoTo L2 For i3 = 1 To x tot3 = tot2 + i3 * arr(2) If tot3 >= Target Then GoTo L3 For i4 = 1 To x tot4 = tot3 + i4 * arr(3) If tot4 >= Target Then GoTo L4 For i5 = 1 To x tot5 = tot4 + i5 * arr(4) If tot5 >= Target Then GoTo L5 For i6 = 1 To x tot6 = tot5 + i6 * arr(5) If tot6 = Target Then p = p + 1 If p > u Then GoTo Skipper a(p, 1) = i1 a(p, 2) = i2 a(p, 3) = i3 a(p, 4) = i4 a(p, 5) = i5 a(p, 6) = i6 a(p, 7) = i1 * 49 a(p, 8) = i2 * 99 a(p, 9) = i3 * 149 a(p, 10) = i4 * 199 a(p, 11) = i5 * 224 a(p, 12) = i6 * 249 a(p, 13) = tot6 End If L6: Next i6 L5: Next i5 L4: Next i4 L3: Next i3 L2: Next i2 L1: Next i1 Skipper: Range("A1").Resize(p, UBound(a, 2)).Value = a Application.ScreenUpdating = True Debug.Print "Stop At : " & Format$(Now, "HH:MM:SS") MsgBox "Done...", 64 End Sub
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.