![]() |
|
كيف أوظف الإحتمالات كلها؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف أوظف الإحتمالات كلها؟ (/showthread.php?tid=4485) الصفحات:
1
2
|
كيف أوظف الإحتمالات كلها؟ - belnono - 25-08-2012 السلام عليكم ورحمة الله تعالى وبركاته: كيف أوظف الإحتمالات كلها؟ مثال لو أنه أعطيت لي هذه المجموعة (2-7-8-1) وطلب مني تحديد جميع الأعداد الرباعية الممكن تكوينها من خلال المجموعة: أنا أعلم أن عدد الإحتمالات هو 24 عددا مثل: 1872-1827-1728-1782-1278-1287-2871...وهكذا لكن بالدلفي كيف يمكنني استخراجها كلها؟ وبارك الله فيكم. كيف أوظف الإحتمالات كلها؟ - S.FATEH - 25-08-2012 السلام عليكم لم تحدد الشروط اكثر لكن جرب هذا ربما ينفعك PHP كود : typeلا تنسونا من صالح دعائكم PHP كود : procedure TForm1.Button1Click(Sender: TObject);سلامي كيف أوظف الإحتمالات كلها؟ - belnono - 26-08-2012 السلام عليكم ورحمة الله تعالى وبركاته بارك الله فيك أخي s.fateh هو كود رائع، لكنه قد ذكر الإحتمالات كلها، وأعني أنه استعمل حتى تكرار الأعداد مثلا المجموعة التالية: (1-5-9) تكون كما يلي: (951-915-519-591-195-159) بعدم التكرار وليس هكذا: (111-119-191-199-115-151-155-195-159-555-.....إلخ) كيف أوظف الإحتمالات كلها؟ - Agmcz - 26-08-2012 السلام عليكم هدا أحد الحلول من دون حلقات ودوران كود : function Rev(N: string): string;
var
SL: TStringList;
begin
if Length(N) = 4 then
begin
Result := '';
SL := TStringList.Create;
try
{1}
SL.Add(N[1] + N[2] + N[3] + N[4]);
SL.Add(N[1] + N[2] + N[4] + N[3]);
SL.Add(N[1] + N[3] + N[2] + N[4]);
SL.Add(N[1] + N[3] + N[4] + N[2]);
SL.Add(N[1] + N[4] + N[3] + N[2]);
SL.Add(N[1] + N[4] + N[2] + N[3]);
{2}
SL.Add(N[2] + N[1] + N[3] + N[4]);
SL.Add(N[2] + N[1] + N[4] + N[3]);
SL.Add(N[2] + N[3] + N[4] + N[1]);
SL.Add(N[2] + N[3] + N[1] + N[4]);
SL.Add(N[2] + N[4] + N[3] + N[1]);
SL.Add(N[2] + N[4] + N[1] + N[3]);
{3}
SL.Add(N[3] + N[1] + N[4] + N[2]);
SL.Add(N[3] + N[1] + N[2] + N[4]);
SL.Add(N[3] + N[2] + N[1] + N[4]);
SL.Add(N[3] + N[2] + N[4] + N[1]);
SL.Add(N[3] + N[4] + N[2] + N[1]);
SL.Add(N[3] + N[4] + N[1] + N[2]);
{4}
SL.Add(N[4] + N[1] + N[3] + N[2]);
SL.Add(N[4] + N[1] + N[2] + N[3]);
SL.Add(N[4] + N[2] + N[1] + N[3]);
SL.Add(N[4] + N[2] + N[3] + N[1]);
SL.Add(N[4] + N[3] + N[2] + N[1]);
SL.Add(N[4] + N[3] + N[1] + N[2]);
Result := SL.Text;
finally
SL.Free;
end;
end;
end;باستعمال loop كود : function Rev(N: string): string;
var
SL: TStringList;
i, b, c, d: Integer;
begin
if Length(N) = 4 then
begin
Result := '';
b := 2; c := 3; d := 4;
SL := TStringList.Create;
try
for i := 1 to Length(N) do
begin
if i = 2 then b := 1 else if i = 3 then c := 2 else if i = 4 then d := 3;
SL.Add(N[i] + N[b] + N[c] + N[d]);
SL.Add(N[i] + N[b] + N[d] + N[c]);
SL.Add(N[i] + N[c] + N[b] + N[d]);
SL.Add(N[i] + N[c] + N[d] + N[b]);
SL.Add(N[i] + N[d] + N[c] + N[b]);
SL.Add(N[i] + N[d] + N[b] + N[c]);
end;
Result := SL.Text;
finally
SL.Free;
end;
end;
end;كيف أوظف الإحتمالات كلها؟ - S.FATEH - 26-08-2012 belnono كتب :لكنه قد ذكر الإحتمالات كلها، وأعني أنه استعمل حتى تكرار الأعداد مثلا المجموعة التالية: (1-5-9)السلام عليكم لاشك توجد طريقة لتحديد الاحتمالات بهذا الشكل لكن يمكن اضافة كود فلتر لتمرير فقط القيم التي لا تحتوي على تكرارات PHP كود : unit Unit1;بالتوفيق كيف أوظف الإحتمالات كلها؟ - belnono - 26-08-2012 السلام عليكم ورحمة الله تعالى وبركاته: أخي الكريم (ghost-dz)، أشكرك جزيل الشكر على هذا المجهود و لكن إذا كانت المجموعة تتكون من N رقم أو عدد أي أننا نريد طريقة أو كود يعمل مع كل قيم المجموعة، سواء من 4 ارقام أو 20 رقم ...وهكذا ولذلك يجب استعمال الحلقات، أما أن فقد وضعت 4 أرقام على سبيل المثال فقط. بارك الله فيك، فإن كان عندك طريقة أخي الكريم، فأنا في الإنتظار. أخي الكريم: s.fateh الكود الثاني نسخته وعند التنفيذ يتم تحديد الكلمات (occurrences) على أنه خطأ فلم أستطع إيجاد المكان التالي لأنسخ فيه الشطر الثاني من الكود: أي هنا (function TForm1.Occurrences(const Substring, Text: string): Integer ![]() فلم أجد هذا المسار، واعذرني لأنني مبتدئ فينقصني الكثير والكثير. و إن لم أتعبك أخي، لو ترفق البرنامج حتى أحمله وأطلع على كل صغيرة وكبيرة فيه. بارك الله فيك وفي دنياك. كيف أوظف الإحتمالات كلها؟ - S.FATEH - 26-08-2012 مجرد نسخ و لصق على كل حال تفضل المشروع... كيف أوظف الإحتمالات كلها؟ - belnono - 26-08-2012 s.fateh بارك الله فيك أخي الكريم هذا ما كنت أبحث عنه بالضبط جزاك الله عنا كل الخير كيف أوظف الإحتمالات كلها؟ - S.FATEH - 26-08-2012 قمة بطرح سآل و قد كانت الاجابة طريقة أخرى جيدة لبعض الحالات ... PHP كود : program Permuatations;كود : http://stackoverflow.com/questions/12132099/create-an-unknown-number-of-loopsكيف أوظف الإحتمالات كلها؟ - belnono - 27-08-2012 شكرا أخي .fateh على الكود الأخير، لكنني لم أفهم منه شيئا ولا حتى امكانية نسخه لتطبيقه، فلا أعلم مواضعها لأنني أقر مرتين على button1 ثم أنسخ الكود لكن في هذه الحالات لم أجد هذا المسار مثل: procedure EnumerateCombinations(const Stem: string; Len: Integer); المهم لقد أعجبني الكود الذي سبقه، فهو سهل وبسيط بارك الله فيك |