פורסם 2009 בפברואר 2216 שנים #include <stdlib.h>#include <stdio.h>#include <time.h>int main(void){int start = 1, end = 10srand((unsigned) time(NULL));printf("%d\n", rand() % (end - start) + start );return 0;}זה יתן לך מספר רנדומלי מstart לend-1זה עובד ככה..אתה משתמש בזמן כפרמטר לרנדומליות, זמן זה נקרא timestamp והוא אם אני לא טועה מספר השניות שעברו מהראשון לינואר 1978, אתה משתמש בפעולה שארית כדי לקבל מספר שהוא בין 0 למספר שאתה מחלק בו במקרה שלנו end-start כלומר 9 אז תקבל מספר בין 0 ל 8, אתה מוסיף לו את start שהוא 1 ולכן תקבל מספר מ1 עד 9או ברמה יותר כללית, אתה עושה שארית בשביל לקבל מספר בין 0 ל - end - start , לאחר ההוספה של start אתה מקבל מספר שהוא בין start ל end
פורסם 2009 בפברואר 2216 שנים חחחחחחחחחחח מה העמסת על הבנאדםבעקרון,מה שהבחור שמעלי רשם זה פוקנציה רנדומלית אמיתית(לא הכי הכי אבל בהחלט)הופנקציות המובנות של השפות על הפניםםנותנו בדיוק את אותם המספרים כל הזמןמה שמעלי הביא מעולה, תנסה להבין את זה
פורסם 2009 בפברואר 2316 שנים מחבר כלומר יש פונקציות רנדומליות יותר טובות?איפה אפשר למצוא אותן?אני מתקדם לאט לאט בקריאת החומר של השפה (למרות שלפני הרבה שנים למדתי את זה בעיקרון) ולכן יכול להיות שבקרוב אני כבר אוכל להתעניין בפונקציות שמעבר לשפה הסטנדרטית..
פורסם 2009 בפברואר 2316 שנים כלומר יש פונקציות רנדומליות יותר טובות?איפה אפשר למצוא אותן?אני מתקדם לאט לאט בקריאת החומר של השפה (למרות שלפני הרבה שנים למדתי את זה בעיקרון) ולכן יכול להיות שבקרוב אני כבר אוכל להתעניין בפונקציות שמעבר לשפה הסטנדרטית..תתבונן במה שרשמתי.
פורסם 2009 בפברואר 2316 שנים אם אתה משתמש בפונקציות הרנדום של השפה בצורה נכונה, אז זה רנדום יחסית טוב. כמובן, יש שימושים שעבורם זה לא רנדום מספיק טוב (כי זה הרי לא באמת רנדום, אלא פסאודו-רנדום).matteo, מאיפה החלטת שהפונקציות המובנות נותנות תמיד את אותם המספרים? כל עוד דואגים לקרוא ל-srand בדיוק פעם אחת בתחילת התכנית, לא אמורה להיות בעיה.
פורסם 2009 בפברואר 2316 שנים אם אתה ממש רוצה לראות כל מני שיטות ליצירת מספרים רנדומלים, תסתכל במחלקות שיש בנושא ב TR1:http://www.google.com/search?q=random+tr1+c%2B%2Bhttp://www.johndcook.com/cpp_TR1_random.html
פורסם 2009 בפברואר 2316 שנים אם אתה משתמש בפונקציות הרנדום של השפה בצורה נכונה, אז זה רנדום יחסית טוב. כמובן, יש שימושים שעבורם זה לא רנדום מספיק טוב (כי זה הרי לא באמת רנדום, אלא פסאודו-רנדום).matteo, מאיפה החלטת שהפונקציות המובנות נותנות תמיד את אותם המספרים? כל עוד דואגים לקרוא ל-srand בדיוק פעם אחת בתחילת התכנית, לא אמורה להיות בעיה.ניסוי וטעיהמרבית הפעמים שהשתמשתי בפוקנציית ראנד ככה בלי עריכה מסויימת, ניתנו לי אותם המספריםבכל אופן יש לזה אלפי פתרונות
פורסם 2009 בפברואר 2316 שנים RAND פשוט עושה פונקציה מתמטית פשוטה על הערך הקודם שה RAND הקודם החזיר וחלילה וחס (סידרה של מספרים), ככה שעם לא נתת SRAND (שזה המספר הראשוני של הסדרה), או נתת SRAND עם ערך זהה לריצה קודמת, אזי תקבל את אותה סידרה של מספרים. לכן חשוב לתת SEED שמשתנה (בד"כ נותנים את השעון של המחשב שלא אמור להיות זהה אף פעם).
פורסם 2009 בפברואר 2316 שנים RAND פשוט עושה פונקציה מתמטית פשוטה על הערך הקודם שה RAND הקודם החזיר וחלילה וחס (סידרה של מספרים), ככה שעם לא נתת SRAND (שזה המספר הראשוני של הסדרה), או נתת SRAND עם ערך זהה לריצה קודמת, אזי תקבל את אותה סידרה של מספרים. לכן חשוב לתת SEED שמשתנה (בד"כ נותנים את השעון של המחשב שלא אמור להיות זהה אף פעם).בדיוק מה שאמרתיושוב הפונקציות שניתנו לעיל מעולות לפתור תבעיה זה הכל.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.