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

خوارزمية صعبة تحديد P عدد من بين N عدد و التي مجموعها S

مغلق
بدأه hicham716 في 27 مارس 2007 · 3 رد · 977 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

المطلوب هو تعداد كل الحالات ل P عنصر من من بين N عدد و التي مجموعها S

ملاحظة دائما لتحديد الأعداد N نأخذ من (0 إلى N ) وبالتالي نحصل على (N+1) عدد

مثلا إذا كانت N=4 فإن المجموعة N هي (0,1,2,3,4 )

مثال 1

إذا كانت S=6 N=10 P=3

إذن الأعداد الثلاثة من بين (0,1,2,3,4,5,6,7,8,9,10 ) N= والتي مجموعها 6 هي :

1+2+3

0+2+4

0+1+5

مثال 2

إذا كانت S=12 N=7 P=4

إذن الأعداد الأربعة من بين (0,1,2,3,4,5,6,7 ) N= والتي مجموعها12 هي :

1+2+4+5

1+2+3+6

0+3+4+5

0+2+4+6

0+1+5+6

0+2+3+7

0+1+4+7

اوجد خوارزمية من اجل P . N و S تاخذ أي قيمة P<=N

______________________________________________

" حَافِظُوا عَلَى الصَّلَوَاتِ وَالصَّلاةِ الْوُسْطَى وَقُومُوا لِلَّهِ قَانِتِينَ "

______________________________________________

تحرير بواسطة 'بنهاشم منصوري'

#2

انجزت هذه الفكرة من قبل

عندما يتوفر لي الوقت سوف اقوم بارسالها لك

ان شاء الله

#3

هذا هو الحل لكن يجب ان لكي تظهر لك النتيجة

ان تضع في الفورم stringgrid1 edit1 edit2

تضع في edit1 الرقم n

تضع في edit2 الرقم p

وتضع هذا الكود في button

var n,p,s,i,k,j,l:longint;
	 tab :array[1..100] of longint;
begin
//***********
for i:=1 to 10 do
for j:=1 to  1000 do
stringgrid1.Cells[i-1,j-1]:='';
//**********
n:=strtoint(edit1.text);
p:=strtoint(edit2.text);
l:=0;
for i:=1 to p do
tab:=i;
for k:=1 to p do
stringgrid1.Cells[k-1,l]:=inttostr(tab[k]);
j:=p;
repeat
if tab[j]<(n-p+j) then
begin
tab[j]:=tab[j]+1;
for k:=j to p do
tab[k]:=tab[j]+k-j;
j:=p;
//**
l:=l+1;
for k:=1 to p do
stringgrid1.Cells[k-1,l]:=inttostr(tab[k]);
//**
end
else
j:=j-1;
until tab[1]=n-p+1;
end;

تم تعديل هذه المشاركة بواسطة bachirk في 27 مارس 2007 في 21:26

#4

جانا نفس السؤال بأختبار الـ Discrete Math

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…