ABA


"תוצאות אתגר 2..."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #12675 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 12675
Non Stop

   22:52   04.11.05   
אל הפורום  
  תוצאות אתגר 2...  
 
   עבר עריכה לאחרונה בתאריך 08.11.05 בשעה 11:22 על-ידי nick (סגן מנהל)
 

ערכתי לאחרונה בתאריך 04.11.05 בשעה 22:54 בברכה, Non Stop
כמה דברים לפני שאני רושם את הזוכה ואת הפתרון...

חבל שכמות המשתתפים היתה מזערית...חבל שהרבה לא מנסים...אולי האתגר הבא יהיה משהו יותר פשוט (אבל ככה יהיו גם הרבה תשובות נכונות ואיפה האתגר?)
בכל זאת ...הגישו 3 פתרונות בסה"כ...מתוכם היו 2 נכונים (66 אחוז זה מכובד)...חח..בכל זאת...

על השאלה...כדי לפתור את השאלה הזאת היה צריך להבין מה היא בעצם פרמוטציה...או כמו שאומרים לחקור עד השורש..רק שכאן זה יותר פשוט ופה בעצם היה כל האתגר למרות שאם מתיישבים כמה דקות וחושבים עולים על זה ישר ויש כאלו שיגידו גם שאין על מה לעלות וזה ברור מאליו..

מתוך ה3 פתרונות 2 היו נכונות..עכשיו אני יסביר מה הוביל אותי לפתרון המנצח או בעצם מה שבר את התיקו בין שתי הפתרונות...(הרי יש רק מנצח אחד)

אז ככה..ואם כבר מסבירים מהי תוכנית טובה (או תוכניתן) שיהיה מפורט ומן היסוד..

הדבר הראשון שנמדד בתוכנית אם היא מבצעת את הנדרש...פה שתי התוכניות הנכונות עשו את הנדרש ולכן שתיהם קודם כל תוכניות שעובדות כראוי וזה כבר משהו ואפילו משהו גדול..
אחר כך תוכנית נמדדת ביעילותה מבחינת סדר זמן (או במונחים רשמיים - זמן ריצה) את זמן הריצה מודדים ביחסיות לקלט..בשתי התוכניות זמן הריצה היה
O(n^2)..
מיכיוון שגם עד לכאן שתי התוכניות הם שוות...עוברים לקריטריון הבא שהוא יחידות זיכרון (נכון שקיום אין בעיה של מקום אבל זה עדיין קרטריון חשוב ויעיל וגם משפיע בסופו של דבר על זמן הריצה)..
בקרטריון הזה היתה תוכנית שהתעלת על התוכנית השניה (למשל מחיקת זיכרון למשל העברה בREFERENCE ולא BY VALUE וכדומה)..
פרט לכך התוכנית היעילה מבחינת הזיכרון היתה יותר מאורגנת וקצרה וזה יתרון מבחינת קריאת הקוד (אבל אני חייב לציין ששתי התוכניות היו מתועדות בצורה טובה)...ולכן החלטתי להעניק את הנצחון לתוכנית זאתי..


אז אחרי כל הדיבורים...

המנצח הוא: the_jackass אני מניח שהמנהלים יתגמלו אותך באיזה פרס

והנה התוכנית שלו:


funcs.cpp
--------------
#include "Funcs.h"

Funcs::Funcs()
{
int n;
cin>>n;
m_iN=n;
m_piArr=new int;
}

Funcs::~Funcs()
{
delete m_piArr;
}

bool Funcs::good_per(int *arr,int m)
{
int max,min,i;
max=arr;
min=arr;
for (i=1;i<m;i++)
{
if (arr>max)
max=arr;
else
if (arr<min)
min=arr;
else
return false;
}
return true;
}

void Funcs::print(int place)
{
int i;
if (place==m_iN)
{
for (i=0;i<m_iN;i++)
cout<<m_piArr<<' ';
cout<<endl;
}
else
{
bool ok;
for (i=1;i<=m_iN;i++)
{
m_piArr=i;
ok=good_per(m_piArr,place+1);
if (ok==true)
print(place+1);
}

}

}

funcs.h
-------------
#ifndef _FUNCS_H_
#define _FUNCS_H_

#include <iostream.h>

class Funcs
{
private:
int m_iN; //the number
int *m_piArr; //thr array in wich the permutation is build

public:
Funcs();//c-tor - gets the number from the user and builds the array
~Funcs();//d-tor - deletes the array
bool good_per(int *arr,int m);// checks if a permutation is by the rules
void print(int place);// prints all the permutations
};


#endif

main.cpp
----------
#include <iostream.h>
#include "Funcs.h"

void main()
{
Funcs a;
a.print(0);
cin.get();
cin.get();
}


במקום השני: Gold Dragon
עם תוכנית מעולה..ואם היה אפשר שתי זוכים גם אתה היית זוכה...


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מזל טוב לזוכה, אכן ננסה לארגן משהו כמו פעם קודמת, תודה רבה על האתגר nesher  04.11.05 22:58 1
     בכיף :) Non Stop 04.11.05 23:06 2
  יפה מאד מזל טוב לזוכים Black Death 05.11.05 00:48 3
  מזל טוב!! :) -ReDevil- 05.11.05 14:54 4
  מזל''ט :) Gold Dragon 05.11.05 16:16 5
  תודה :) the_jackass 05.11.05 19:34 6
  מזל טוב :] nick 06.11.05 17:25 7

       
nesher 

   22:58   04.11.05   
אל הפורום  
  1. מזל טוב לזוכה, אכן ננסה לארגן משהו כמו פעם קודמת, תודה רבה על האתגר  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Non Stop

   23:06   04.11.05   
אל הפורום  
  2. בכיף :)  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Black Death

   00:48   05.11.05   
אל הפורום  
  3. יפה מאד מזל טוב לזוכים  
בתגובה להודעה מספר 0
 
   רציתי גם להשתתף אבל נזכרתי מאוחר מידי
באתגר הבא אני אשתתף


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
-ReDevil-

   14:54   05.11.05   
אל הפורום  
  4. מזל טוב!! :)  
בתגובה להודעה מספר 0
 
   לא הייתי יכול להשתתף כי לא למדתי קלט ב Java =\


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Gold Dragon

   16:16   05.11.05   
אל הפורום  
  5. מזל''ט :)  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
the_jackass

   19:34   05.11.05   
אל הפורום  
  6. תודה :)  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
nick
חבר מתאריך 13.4.03
7994 הודעות
   17:25   06.11.05   
אל הפורום  
  7. מזל טוב :]  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net