פורסם 2004 בדצמבר 1420 שנים אני יוצר מערך של INTEGER ולכל תא במערך אני עושה RANDOM הבעיה שאני לא רוצה שיהיה אותו מספר פעמיים במערך איך אני אומר לרנדום לא ליצור אותו מספר פעמיים?
פורסם 2004 בדצמבר 1420 שנים אתה לא יכול להגיד לו לא ליצור אותו מספר פעמייםמה שאתה יכול לעשות זה עבור כל מספר שהוא יוצר לבדוק אם הוא נמצא כבר במערך, אם לא תוסיף אותו ואם כן תיצור מספר חדש ותבדוק שוב.
פורסם 2004 בדצמבר 1420 שנים הינה קטע תוכנית שיפתור לך את הבעיה...תבדוק כי אני רשמתי את זה.i:=1;while i<=n dobegin x:=a; for j:= (i+1) to n do begin y:=a[J]; while x=y then y:=random(maxint); a[j]:=y; end; i:=i+1;end; n=מספר עיברים במערך a= שם מערך
פורסם 2004 בדצמבר 1520 שנים אם אני בודק את התא השני ומוצא שהערך של התא הראשון שווה לו, המחשב מגריל לי מספר אקראי. אבל אם הערך האקראי שיתקבל עכשיו שווה לערך הקודם, התוכנית לא תגלה זאת, כי היא לא בודקת את הערך הזה שוב..אני חושב שתיקון כזה אמור לפתור את הבעהי...while (x=y) And (a[j]<>y) do Begin y:=random(maxint); End;וד"א במקוםfor j:= (i+1) to n doצריך לרשוםfor j:= (i+1) to n-1 do(או שאפשר לעשות את השינוי בWhile), כדי למנוע מצב שבו ייבדק a[j] שנמצא מחוץ לגבול של המערך.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.