פורסם 2008 במרץ 1317 שנים יש לי בעיה קטנה עם ה- Random ב- C#.בגלל שה- Random מבוסס על הזמן, אם אני עושה מספר גדול רנדומים רצופים זה מביא לי את אותו המספר.לדוגמה, אם אני עושה 100 לוחות בינגו עם 25 מספרים כל אחד זה נותן 100 לוחות בינגו אותו הדבר.מה אני עושה כדי להתגבר על הבעיה הזאת?
פורסם 2008 במרץ 1317 שנים צור רק אובייקט אחד מטיפוס Random, ואל תאתחל אותו בכל פעם מחדש. לדוגמה, במקום זה:for (int i = 0 ; i < 100 ; ++i){ Random rnd = new Random(); int x = rnd.Next(); // do something with x}תעשה ככה:Random rnd = new Random();for (int i = 0 ; i < 100 ; ++i){ int x = rnd.Next(); // do something with x}
פורסם 2008 במרץ 1317 שנים כותב קוד שעובד נכון. תאתחל אובייקט אחד של Random בתוכנית ותשתמש בפונקציה Next בשביל להמציא מספרים חדשים. (הקדימו אותי).
פורסם 2008 במרץ 1317 שנים אם הקוד עדיין נותן לך את אותם מספרים פשוט תוסיף sleep של מילי-שניה אחת לקוד אחרי כל מספר רנדומלי
פורסם 2008 במרץ 1317 שנים אם הקוד עדיין נותן לך את אותם מספרים פשוט תוסיף sleep של מילי-שניה אחת לקוד אחרי כל מספר רנדומלימה הקשר ? לעקוף טעות בתיכנות ע"י תלאי זה לא חכם.
פורסם 2008 במרץ 1417 שנים exercise, רשמתי לו אם הקוד עדיין לא עובד, משמע אחרי שהוא עושה את מה שהצעתם לו...
פורסם 2008 במרץ 1417 שנים איזה סיבה יש ל Random לא לעשות את מה שהוא צריך ? ברגע שה seed נקבע באתחול האובייקט לא רק ש sleep לא ישנה כי הוא כבר קבוע, הפונקציה Next תדאג לא להחזיר מספרים דומים בהסתברות גבוהה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.