25/01/2007 14:04:47
Compact
למישהו יש רעיון לתוכנה שקולטת שישה מספרים העלי שש ספרות,שומרת אותם לקובץ,ואם רוצים אז היא יוצרת עוד שישה מספרים אקראיים ששונים מהמספרים הקיימים בקובץ? הקטע של קליטת מספר לקובץ לא בעייה,אבל Randomize יוצרת מחרוזת אקראית,לא?וגם איך לבצע את הבדיקה שזה לא שווה לאף מס’ בקובץ? למישהו יש רעיון?
26/01/2007 11:16:42
Ratinho
radomize/rand (borland/vc++) יוצרות מספר אקראי, אתה יכול בקלות לבחור שהוא יהיה שש ספרות... ואת הבדיקה תאלץ לעשות בדרך ערבית שסורקת את כל הקובץ ומשווה למחרוזת הנתונה...
26/01/2007 17:16:19
HLL
לא יותר מידי מסובך בדומה למה שהוא אמר ^ אבל שים את המספרים שהוקלדו בתוך אחד מהקונטיינרים של STL[ההודעה נערכה על-ידי HLL ב-26/01/2007 17:17:37]
26/01/2007 23:13:25
Hypathia
בגדול, אפשר לממש את התוכנית הזו בצורה די פשוטה. הבעיה שמדובר פה ב899,999 אפשרויות. וככל שמתרבים המספרים בקובץ, כך גדלה חוסר היעילות של התוכנית, שכמו הטרמינטור תעבור מספר-מספר ותשווה.
המפ. חשבתי על ליצור מפלצת בדמות מערך רב-מימדי. שש רמות למערך, שש- כמות הספרות במספר שלך. תתחיל מבידוד ספרת המאה-אלף, ומטה לספרת האחדות.
a[1] a[2] a[3].... a[9] etc כל אינדקס מהרמה הראשנה מצביע למערך בעל עשרה אינדקסים, וכן הלאה עוד ארבע פעמים נוספות. כל מספר שמוגרל מסמן את התא ברמה הכי נמוכה שהוא יכול, במידה וקבוצה מסויימת מלאה, היא מסמנת את האינדקס שמעליה בענף, עד שמגיעים לרמה הכי גבוהה.
המפלצת רבת המימדים הזו טובה לשם השוואה. היא בסך הכל מכילה מידע לגבי המספרים שכבר הוגרלו, ולא את המספרים עצמם. גם אין צורך לקרא מהקובץ בכל פעם. בנוסף לכך, היחס למספרים הוא לא אישי, אלא אל קבוצות ותת-קבוצות.[ההודעה נערכה על-ידי Hypathia ב-27/01/2007 13:30:20]
עמודים:
1