-
الإعلانات
-
تسجيل عضوية جديدة في المنتدى 01/31/2016
السلام عليكم ورحمة الله وبركاته عزيزي العضو الجديد : حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة ) فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK) وقم بتفعيل إشتراككم من هناك
-

khatibe_30
اعضاء-
عدد المشاركات
139 -
تاريخ الانضمام
-
تاريخ اخر زياره
السمعه بالموقع
64 جيدعن khatibe_30
-
الرتبة
عضو
- تاريخ الميلاد 08/30/1985
طرق الإتصال
-
MSN
[email protected]
fr
معلومات الملف الشخصي
- الجنس ذكر
- الدولة : الجزائر
- اهتمامات البرمجة و الشبكات
أحدث الزائرين لملفلك الشخصي
-
tantie L أعطى سمعة إيجابية لــ رد في موضوع: تعرف على الذكاء الصناعي, إجعل الحاسوب يفكر !
-
نتيجة السؤال الخامس من مسابقة الفريق العربي للبرمجة -5
khatibe_30 رد على أحمد أبو عبد البر's موضوع في المسابقات البرمجية
//solution: 5513936,5825243 //Language: C #include <stdio.h> #include <stdlib.h> double nbrs[] = {845, 7415, 415, 15, 852, 85145}; double nbrs2[] = {412, 665, 4215, 412, 62, 9514}; char ops[6] = {0}; void calc(int level, double result, int * gotit) { double res = 0; if(level == 6){ if(result == 46375267) *gotit = 1; return; } ops[level] = '+'; res = result + nbrs[level]; calc(level +1, res, gotit); if(*gotit) return; ops[level] = '-'; res = result - nbrs[level]; calc(level +1, res, gotit); if(*gotit) return; ops[level] = '*'; res = result * nbrs[level]; calc(level +1, res, gotit); if(*gotit) return; ops[level] = '/'; res = result / nbrs[level]; calc(level +1, res, gotit); if(*gotit) return; } void main() { int gotit = 0; double result = 8541; calc(0, result, &gotit); result = 8961; for(gotit = 0; gotit < 6; gotit++){ switch(ops[gotit]){ case '+':result += nbrs2[gotit];break; case '-':result -= nbrs2[gotit];break; case '*':result *= nbrs2[gotit];break; case '/':result /= nbrs2[gotit];break; } } printf("%.7f\n", result); system("pause"); } -
نتيجة السؤال الرابع من مسابقة الفريق العربي للبرمجة -4
khatibe_30 رد على أحمد أبو عبد البر's موضوع في المسابقات البرمجية
//solution: 332640 //Language: C #include <stdio.h> #include <stdlib.h> #define ull unsigned long long ull dists[8] = {300000000, 600000000, 900000000, 1200000000, 1500000000, 1800000000, 2100000000, 2400000000}; ull path[8] = {0}; ull speeds[8] = {5000000/3, 10000000/4, 15000000/6, 20000000/7, 25000000/8, 10000000/3, 35000000/11, 40000000/12}; void main() { ull i, days = 1, isAligned = 0; double pcnt; while(!isAligned || days <= 2){ days++; for(i = 0; i < 8; i++) path += speeds; isAligned = 1; pcnt = ((double)(path[0] % dists[0]) / dists[0]) * 100; for(i = 1; i < 8; i++){ if((int)pcnt != (int)(((double)(path % dists) / dists) * 100)) { isAligned = 0; break; } } } printf("%llu\n", days); system("pause"); } -
khatibe_30 أعطى سمعة إيجابية لــ إجابة على سؤال: نتيجة السؤال الثالث من مسابقة الفريق العربي للبرمجة -3
-
أحمد أبو عبد البر أعطى سمعة إيجابية لــ إجابة على سؤال: نتيجة السؤال الثالث من مسابقة الفريق العربي للبرمجة -3
-
نتيجة السؤال الثالث من مسابقة الفريق العربي للبرمجة -3
khatibe_30 رد على أحمد أبو عبد البر's موضوع في المسابقات البرمجية
#include <stdio.h> #include <stdlib.h> int gcd_sum(int numbers[400]) { int i, j, gcd, sum = 0; for(i = 0; i < 399; i += 2) { for(j = i + 2; j < 399; j += 2) { gcd = (numbers < numbers[j])? numbers : numbers[j]; while((numbers%gcd) || (numbers[j]%gcd)) gcd -= 2; sum += gcd; } } return sum; } void main() { int i, numbers[400]; for(i = 0; i<400; i++) numbers = i + 2; printf("%d\n", gcd_sum(numbers)); system("pause"); }- 6 ردود
-
1
-
khatibe_30 أعطى سمعة إيجابية لــ إجابة على سؤال: دوال التوسع في الدوت نت باختصار
-
نتيجة السؤال الثاني من مسابقة الفريق العربي للبرمجة-2
khatibe_30 رد على أحمد أبو عبد البر's موضوع في المسابقات البرمجية
جيد يا مصطفى.... للأسف أنا لم أحاول حتى أن أفكر في حل رياضي, قد يؤلمني رأسي ان فعلت :wacko: ,,, لذلك دالة تراجعية بسيطة + تخزين النتائج لتفادي التكرار و الى الأمام :D -
نتيجة السؤال الثاني من مسابقة الفريق العربي للبرمجة-2
khatibe_30 رد على أحمد أبو عبد البر's موضوع في المسابقات البرمجية
#include <stdio.h> #include <stdlib.h> #define ull unsigned long long ull loz[40][40][40] = {{{0}}}; ull calc(int length, int ones, int zeroes) { ull n = 0; if(length == 1) return 1; if(ones > 0) { if(!loz[length - 1][ones - 1][zeroes]) loz[length - 1][ones - 1][zeroes] = calc(length - 1, ones - 1, zeroes); n += loz[length - 1][ones - 1][zeroes]; } if(zeroes > 0) { if(!loz[length - 1][ones][zeroes - 1]) loz[length - 1][ones][zeroes - 1] = calc(length - 1, ones, zeroes - 1); n += loz[length - 1][ones][zeroes - 1]; } return n; } void main() { printf("%llu\n", calc(40, 20, 20)); system("pause"); } -
khatibe_30 أعطى سمعة إيجابية لــ إجابة على سؤال: [ تمت الإجابة ]طلب : بيئة برمجة لـ++C/C
-
السؤال الثاني من مسابقة الفريق العربي للبرمجة-2
khatibe_30 رد على أحمد أبو عبد البر's موضوع في المسابقات البرمجية
نعم أخي مصطفى.. لكن ليس و كأنه يوجد مجال للنقاش أو الإقتراحات -_- الفضول يقتلني حتى أرى محاولتك يا رجل,,سيكون الكود الخاص بك خارقا طبعا, كان علي أن لا اشارك :D -
khatibe_30 أعطى سمعة إيجابية لــ إجابة على سؤال: إستخدام الألوان داخل console
-
khatibe_30 أعطى سمعة إيجابية لــ إجابة على سؤال: نتيجة السؤال الأول من مسابقة الفريق العربي للبرمجة -1
-
khatibe_30 أعطى سمعة إيجابية لــ إجابة على سؤال: نتيجة السؤال الأول من مسابقة الفريق العربي للبرمجة -1
-
khatibe_30 أعطى سمعة إيجابية لــ إجابة على سؤال: نتيجة السؤال الأول من مسابقة الفريق العربي للبرمجة -1
-
السؤال الثاني من مسابقة الفريق العربي للبرمجة-2
khatibe_30 رد على أحمد أبو عبد البر's موضوع في المسابقات البرمجية
السلام عليكم اخي هل يمكنك وضع حل لمثال بسيط حتى يستطيع المشاركون التأكد من صحة حلولهم قبل ارسالها المهم, تم ارسال الحل و لكن حاليا لا أستطيع التأكد من صحته قد لا تمانع ان قلت انه حسب محاولتي: في سلسلة بطول 20 حرفا, و بتكرار الـ واحد 9 مرات و الـ صفر 11 مرة وجدت النتيجة = 167960 و في سلسلة بطول 8 أحرف, و بتكرار الـ واحد 4 مرات و الـ صفر 4 مرات وجدت النتيجة = 70 صحيح أم خطأ؟؟ تحياتي -
khatibe_30 أعطى سمعة إيجابية لــ إجابة على سؤال: السؤال الثاني من مسابقة الفريق العربي للبرمجة-2
-
كيف تقيّم مستواك كمبرمج في مجال الرياضيات والخوارزميات ؟
khatibe_30 رد على مصطفى 36a2's موضوع في الرياضيات والخوارزميات
و عليكم السلام و رحمة الله و بركاته هذا شيء مهم جدا لكل مبرمج يريد ان يطور نفسه لكن انا راحت علي يا حبيبي.....انشغلت بالمشاغل و ابتعدت عن هالامور الى ان صرت حاسس ان دماغي صار ثقيل و يجيني صداع لما احاول احل اي مشكلة :wacko: -
#include <stdlib.h>#include <GL/glut.h>float time;int Xrotate=0,Yrotate=0,Zmove=0,Xmove=0,Ymove=0,Xprec=0,Yprec=0;static GLfloat sun_col[4]={1,.5,.2,1};static GLfloat moon_col[4]={1,1,1,1};static GLfloat p_col[4]={.2,.2,1,1};void init(void){ glEnable(GL_DEPTH_TEST); static GLfloat lightpos0[4]={0.0,3.0,3.0,0.0}; static GLfloat lightpos1[4]={0.0,-3.0,3.0,0.0}; static GLfloat lightamb1[4]={0.2,0.2,0.2,0.0}; static GLfloat lightdif1[4]={1.0,1.0,1.0,1.0}; static GLfloat lightape1[4]={1.0,1.0,1.0,1.0}; glLightfv(GL_LIGHT0,GL_POSITION,lightpos0); glLightfv(GL_LIGHT1,GL_POSITION,lightpos1); glLightfv(GL_LIGHT1,GL_AMBIENT,lightamb1); glLightfv(GL_LIGHT1,GL_DIFFUSE,lightdif1); glLightfv(GL_LIGHT1,GL_SPECULAR,lightape1); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);}GLdouble get_secs(){ return glutGet(GLUT_ELAPSED_TIME)/500.0;}void display(void){time=(GLfloat) get_secs();glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glLoadIdentity(); /*camera position and rotating*/glTranslatef(Xmove,Ymove-1.0,Zmove-12.0);glRotatef(Yrotate+10,1,0,0);glRotatef(Xrotate+60,0,1,0); /* draw sun */glTranslatef (10.0, 0.0, 0.0);glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,sun_col);glutSolidSphere(1.2, 50, 50); GLfloat lightpos1[4]={10.0,0.0,0.0,0.0};glLightfv(GL_LIGHT1,GL_POSITION,lightpos1);glEnable(GL_LIGHT1); /* draw the planets and their moons */glPushMatrix();/* planet */glRotatef (time*9+100, 0.0, 1.0, 0.0); glTranslatef (5.0, 0.0, 0.0);glRotatef (time*500, 0.0, 1.0, 0.0);glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,p_col);glutSolidSphere(0.35, 50, 50);glRotatef (time*250, 0.0, 1.0, 0.0);/*moon*/glTranslatef (0.45, 0.0, 0.0);glRotatef (time*200, 1.0, 1.0, 0.0);glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,moon_col);glutSolidSphere(0.05,50, 50); glPopMatrix();glutSwapBuffers();}void keyboard (unsigned char key, int x, int y){switch (key) { case 27:exit(1);break;}}void reshape (int w, int h){glViewport (0, 0, (GLsizei) w, (GLsizei) h);glMatrixMode (GL_PROJECTION);glLoadIdentity();gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 100.0);gluLookAt(0,0,4,0,0,0,0,1,0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();}void motion(int x,int y){ Xrotate-=(x-Xprec)/2;Yrotate-=(y-Yprec)/2; Xprec=x;Yprec=y;}int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);glutInitWindowSize (500, 500);glutInitWindowPosition (100, 50);glutCreateWindow (argv[0]);init ();glutDisplayFunc(display);glutIdleFunc(display);glutReshapeFunc(reshape);glutMotionFunc(motion);glutKeyboardFunc(keyboard);//glutFullScreen();glutMainLoop();return 0;}
-
[ تمت الإجابة ]كود لرسم دوران الارض حول الشمس OpenGL
khatibe_30 رد على The.Eagle's موضوع في الأسئلة المجابة
السلام عليكم جرب هذا الكود: #include <stdlib.h>#include <GL/glut.h>float time;int Xrotate=0,Yrotate=0,Zmove=0,Xmove=0,Ymove=0,Xprec=0,Yprec=0;static GLfloat sun_col[4]={1,.5,.2,1};static GLfloat moon_col[4]={1,1,1,1};static GLfloat p_col[4]={.2,.2,1,1};void init(void){ glEnable(GL_DEPTH_TEST); static GLfloat lightpos0[4]={0.0,3.0,3.0,0.0}; static GLfloat lightpos1[4]={0.0,-3.0,3.0,0.0}; static GLfloat lightamb1[4]={0.2,0.2,0.2,0.0}; static GLfloat lightdif1[4]={1.0,1.0,1.0,1.0}; static GLfloat lightape1[4]={1.0,1.0,1.0,1.0}; glLightfv(GL_LIGHT0,GL_POSITION,lightpos0); glLightfv(GL_LIGHT1,GL_POSITION,lightpos1); glLightfv(GL_LIGHT1,GL_AMBIENT,lightamb1); glLightfv(GL_LIGHT1,GL_DIFFUSE,lightdif1); glLightfv(GL_LIGHT1,GL_SPECULAR,lightape1); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);}GLdouble get_secs(){ return glutGet(GLUT_ELAPSED_TIME)/500.0;}void display(void){time=(GLfloat) get_secs();glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glLoadIdentity(); /*camera position and rotating*/glTranslatef(Xmove,Ymove-1.0,Zmove-12.0);glRotatef(Yrotate+10,1,0,0);glRotatef(Xrotate+60,0,1,0); /* draw sun */glTranslatef (10.0, 0.0, 0.0);glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,sun_col);glutSolidSphere(1.2, 50, 50); GLfloat lightpos1[4]={10.0,0.0,0.0,0.0};glLightfv(GL_LIGHT1,GL_POSITION,lightpos1);glEnable(GL_LIGHT1); /* draw the planets and their moons */glPushMatrix();/* planet */glRotatef (time*9+100, 0.0, 1.0, 0.0); glTranslatef (5.0, 0.0, 0.0);glRotatef (time*500, 0.0, 1.0, 0.0);glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,p_col);glutSolidSphere(0.35, 50, 50);glRotatef (time*250, 0.0, 1.0, 0.0);/*moon*/glTranslatef (0.45, 0.0, 0.0);glRotatef (time*200, 1.0, 1.0, 0.0);glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,moon_col);glutSolidSphere(0.05,50, 50); glPopMatrix();glutSwapBuffers();}void keyboard (unsigned char key, int x, int y){switch (key) { case 27:exit(1);break;}}void reshape (int w, int h){glViewport (0, 0, (GLsizei) w, (GLsizei) h);glMatrixMode (GL_PROJECTION);glLoadIdentity();gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 100.0);gluLookAt(0,0,4,0,0,0,0,1,0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();}void motion(int x,int y){ Xrotate-=(x-Xprec)/2;Yrotate-=(y-Yprec)/2; Xprec=x;Yprec=y;}int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);glutInitWindowSize (500, 500);glutInitWindowPosition (100, 50);glutCreateWindow (argv[0]);init ();glutDisplayFunc(display);glutIdleFunc(display);glutReshapeFunc(reshape);glutMotionFunc(motion);glutKeyboardFunc(keyboard);glutFullScreen();glutMainLoop();return 0;} -
لغز برمجي, التحدي مفتوح بأي لغة برمجة
khatibe_30 رد على khatibe_30's موضوع في الرياضيات والخوارزميات
linuxman الكود الذي كتبته أنت ينقصه شيء واحد حتى يتم تنفيذه في وقت معقول, و هو تخزين النتائج تلاحظ أنه يوجد الكثير الكثير من الحسابات التي تتكرر مثلا إذا وصلت ألى الأنبوب رقم 2, و كانت الطريقة الحالية لملء الأنبوب هي رقم r من الطرق 3329, طبعا ستحسب الطرق التي توافقها في الأنبوب 3 و الطرق التي توافق الطرق التي توافقها في الانبوب 4...الخ الى ان تصل الى الانبوب 10 لذلك, يجب أن تقوم بتخزين هذه النتائج في مصفوفة مثلا m(2, r) = result; و عندما تعود إلى الحلقة الأولى و تبدأ عملية التحقق من الأنبوب الثاني, فإنك قبل أن تدخل في حلقة أخرى, ستتحقق هل تم حساب هذه النتيجة التي ستقوم بحسابها مسبقا او لا اذا سبق و حسبتها, استعمل النتيجة المخزنة و اخرج من الحلقة و انتقل الى الحالة الموالية و هكذا -
لغز برمجي, التحدي مفتوح بأي لغة برمجة
khatibe_30 رد على khatibe_30's موضوع في الرياضيات والخوارزميات
أظن أن الأخ مصطفى غائب, هذا حل مصطفى: #include<cstdio> int num(int a) { if(a==1) return 0; else if(a==2) return 1; else if(a==3) return 1; else return num(a-2)+num(a-3); } int number=0; class tree { private: int value; int ID; tree*prev; tree*next1; tree*next2; public: tree(int); tree(int,tree*); int treesize(int); int getleaf(int,int); }; tree **b; tree:: tree(int a) { value=a; next1=new tree(value-2,this); next2=new tree(value-3,this); } tree:: tree(int a,tree*b) { value=a;prev=b; if(a==1) value=0; else if(a!=2&&a!=3) { next1=new tree(value-2,this); next2=new tree(value-3,this); } else if(a==2||a==3) { ID=number++; ::b[ID]=this; } } int tree::treesize(int end) { tree *buffer=this; int i; for(i=0;buffer->value!=end;i++) buffer=buffer->prev; return i; } int tree::getleaf(int end,int j) { tree *buffer=this; int i; for(i=0;buffer->value!=end;i++) { if(i==j)return buffer->value; buffer=buffer->prev; } return 0; } typedef char Byte; bool linearsearch(int *a,int size,int target) { for(int i=0;i<size;i++) if(a[i]==target)return 1; return 0; } int **series; int *counterSeries; void initseries(int L) { series=new int*[num(L)]; counterSeries=new int[num(L)]; } void wich_next(int**c,int L) { initseries(L); int Size=num(L); int counter=Size,counter2=Size; int i,j,k; int indeX=0; for(i=0;i<num(L);i++) { series[i]=new int[Size]; counter=Size,counter2=Size; for(j=0;j<Size;j++)series[i][j]=j; for(j=0;j<b[i]->treesize(L);j++) { for(k=0;k<counter2;k++) { if( linearsearch (c[series[i][k]], b[series[i][k]]->treesize(L), c[i][j])) {series[i][k]=-1;counter--;} } int *buffer=new int[counter]; int index=0; for(k=0;k<counter2;k++) if(series[i][k]!=-1) buffer[index++]=series[i][k]; series[i]=buffer; counter2=counter; }counterSeries[indeX++]=counter; } } main() { unsigned int L; unsigned int N; printf("Enter L :");scanf("%u",&L); printf("Enter N :");scanf("%u",&N); b=new tree*[num(L)]; tree a(L); int i,j,k; int**c=new int*[num(L)]; for(i=0;i<num(L);i++) { int X=b[i]->treesize(L); c[i]=new int[X]; for(int j=0;j<X;j++) c[i][j]=b[i]->getleaf(L,j); } wich_next(c,L); long long **array; array=new long long*[N]; array[0]=new long long[num(L)]; for(j=0;j<num(L);j++)array[0][j]=1; for(i=1;i<N;i++) { array[i]=new long long[num(L)]; for(k=0;k<num(L);k++)array[i][k]=0; for(j=0;j<num(L);j++) { for(k=0;k<counterSeries[j];k++) array[i][series[j][k]]+=array[i-1][j]; } } long long int SUPERSUM=0; SUPERSUM=0; for(i=0;i<num(L);i++)SUPERSUM+=array[N-1][i]; printf("%llu\n",SUPERSUM); return 0; } -
لغز برمجي, التحدي مفتوح بأي لغة برمجة
khatibe_30 رد على khatibe_30's موضوع في الرياضيات والخوارزميات
أجل, تهانينا, الحل صحيح :happy: :happy: أعتقد أن حلك = حل linuxman + إضافة مميزة (و هي مفتاح اللغز) -
لغز برمجي, التحدي مفتوح بأي لغة برمجة
khatibe_30 رد على khatibe_30's موضوع في الرياضيات والخوارزميات
هذا الكود, نظريا صحيح و سيعطي نتيجة, و لكن عمليا, لا يمكن أن يعطيك نتيجة إذا كانت نتيجة أنبوبين و هي -حسب طريقتك- عبارة عن 33292عملية تحقق من توافق الأنابيب تأخذ معك 1 ثانية فقط و ليس 20 فإن التحقق من 10 أنابيب و الذي سيكون -حسب طريقتك- عبارة عن 332910عملية تحقق أي سيكون 33292 * 33298 عملية تحقق من توافق الانابيب و سيأخذ من الوقت 1*33298 ثانية و هذا أكثر من 478303715279 مليار سنة حسب حساباتي حتى باستعمال سوبر سوبر سوبر كومبيوتر فسيأخذ هذا الكود حتى يجد حلا عشرات أو مئات ملايين السنين و ربما أكثر بكثير -
لغز برمجي, التحدي مفتوح بأي لغة برمجة
khatibe_30 رد على khatibe_30's موضوع في الرياضيات والخوارزميات
مادامت البداية صحيحة فالباقي سيكون صحيح, و لكن وقت التنفيذ عامل مهم جدا, أكواد bruite force يمكن أن تأخذ عشرات السنين حتى تصل الى نتيجة في الحالات الكبيرة لذلك, اذا كانت طريقتك بعد تعميمها على 10 أنابيب على الأقل تجد النتيجة في أقل من ثانية فهي طريقة مقبولة.