בעיה בשפת c#

יטרנר

New member
בעיה בשפת c#

התבקשתי לאתחל מערך בגודל size בערכים אקראיים שבין 0 ל-9 ולמצוא את הספרה השכיחה ביותר ואת הספרה הנדירה ביותר. די הסתבכתי...... התחלתי את הפיתרון כך:
int[] arr = new int[size]; //נראה לי מיותר int[] count = new int[10]; initarray(arr); countarray(count); } static void initarray(int[] arr) { Random rnd=new Random (); for (int i=0;i<arr.Length;i++) { arr =rnd.Next (0,10); } } static void countarray (int [] count) { for (i=0;i<arr.Length;i++) { count [arr ]++; }

אני יודעת שיש פה המון טעויות..ניסיתי למצוא כיוון
 

asaftzur

New member
הנה:

לא הצלחתי ליישר לשמאל, אז תעתיק לקובץ טקסט חיצוני: static void Main(string[] args) { int size = 20, most=0; string mosts = ""; int[] array1 = new int[size]; int[] count = new int[10] { 0,0,0,0,0,0,0,0,0,0 }; Random rnd = new Random(); Console.WriteLine("The Random Array:"); for (int i = 0; i < size; i++) { array1 = rnd.Next(0, 10); count[array1]++; Console.Write("{0,2}", array1); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The Count Array:"); for (int i = 0; i < 10; i++) { Console.Write("{0,2}", count.ToString()); if (count[most] < count) { most = i; mosts = ""; } if (count[most] == count) { mosts = mosts + " " + i.ToString(); } } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The Most Common Numbers:"); Console.WriteLine("{0,2}", mosts); Console.ReadLine(); }
 

יטרנר

New member
קודם כל, תודה רבה

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

asaftzur

New member
אני ביום איחור, אבל הנה:

קודם כל, כתבתי את כל הפעולות סתם ככה בתוך הVOID MAIN אבל אולי היה יכול להיות יותר טוב לחלק את זה לאיזה שתי פונקציות קטנות. אבל אני לא חושב שאם זו כל המשימה אז צריך. יש לי שני מערכים, אחד בו אני אשים את המספרים הרנדומליים (ARRAY1) והשני הוא מערך מונה. ללואת "פור" מכניסה ערכים לתוך המערך הרנדומלי ובו בזמן גם מעדכנת את המונה. הרי ברגע שנכנס מספר רנדומלי למערך ניתן להקפיץ את ערך המונה של אותו מספר במערך המונים. הערך שבכל תא במערך המונה הוא מספר הפעמים שהמספר הופיע, והאינדקס הוא המספר הרנדומלי. אז אם המספר הרנדומלי הראשון שנכנס למערך הרנדום הוא 1. אז התא השני במערך המונים יגדל. התא השני מפני שהאינדקס שלו הוא - 1. אחר כך יש עוד ללואת "פור", היא בודקת במערך המונים מי המונה הכי גדול ומדפיסה אותו. אם יש שני מספרים שהופיעו באותה כמות אז יודפסו שני המספרים. זאת מפני שהשתמשתי במחרוזת שאוספת את כל המונים הגבוהים ולא מתעלמת משוויון. נראה לי זהו. בבקשה אסף
 

גיאב9

New member
סליחה על קשיי ההבנה שלי...

אבל איפה משתלב כאן Bucket-Sort? במטלה לא ברור לי איפה הוא נדרש ובקוד לא ברור לי איך/איפה הוא ממומש.
 

ליאור ב

New member
If you have

an array containing random numbers, and you are asked to find the most common and the most rare you can use a bucket sort and see what is the largest index on the bucket array. ליאור.
 
למעלה