מעבר לתוכן

איטיות של פתרון בתרגיל במבוא למדמח


הודעות מומלצות

אוקי אז כתבתי קוד שעונה על שאלה של תרגיל בית במבוא למדמח,

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

 

בתרגיל אין שום דרישה של סיבוכיות או משהו בסגנון.

 

באתר הטסטים זה אומר לי שהטסט נתקע, אבל אני יודע שהוא לא נתקע אלא כנראה הוא עבר סף זמן כלשהו של הבודק שלהם.

 

רעיונות למישהו?

 

אני אצרף את הקוד אם למישהו יש כח, זה קוד שבנוי מ4 פונקציות שבודקות תכונות מסוימות של מספר ת"ז.

 

ועוד שאלה, באחת מפונקציות העזר שלי קיבלתי את שגיאת הקומפיילר (מאתר הטסטים לא מקוד בלוקס ולא מויזואל בייסיק):

 

hw3q1.c: In function 'handleID':
hw3q1.c:132: warning: control reaches end of non-void function
 
חיפשתי ומצאתי שאחד הפתרונות הפשוטים זה פשוט להוסיף return כלשהו בסוף הפונקציה כfailsafe אבל אני חושד שזה אולי מה שמאט לי את התוכנה...
 
 
בקיצור כל עזרה תוערך מאוד, תודה מראש.

 

 

hw3q1.txt

קישור לתוכן
שיתוף באתרים אחרים

לא צריך להיות מצב שלוקח לך יותר ממילישניה להריץ תרגיל במבוא, משהו לא בסדר בקוד.

1. תעשה טובה, תשנה את החלק שמוציא ספרה ספרה מהמספר, כל המודולוס, מכפלות וחלוקות האלה הם נוראיים.

2. בחישוב ראשוניות - תסדר את ה-true ו-false שלך שיהיו הגיוניים, is_prime=0 משמעו שאתה ראשוני? ושים לב ש-0,1 הם לא ראשוניים אצלך.

3. מה זה?!  for (i=0; idfix==0; ++i) {} ‎

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

4. גם הלולאה שאחריו היא ווי זמיר, אתה מתחיל אותה מהצבה של i=i+1?

בקיצור לשכתב את alterID לגמרי, השאר יעבוד אולי איכשהו אבל לא יזיק לסדר קצת.

קישור לתוכן
שיתוף באתרים אחרים

תודה על ההשקעה, כן אני מודע לכך שהקוד שלי מסורבל אבל לא חשבתי שזה עד כדי כך.

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

אני אנסה לחשוב על דרך יותר יעילה, תודה

 

לגבי הראשוניים, ככה נכתב בהוראות..

קישור לתוכן
שיתוף באתרים אחרים

אם המספר כולו אפסים, לפי האלגוריתם זה מס' תקין ולכן התוכנית תסתיים.

את התנאי שi קטן משמונה הוספתי והורדתי אחת מהלולאות הריקות, עדיין לא עזר יותר מדי..

קישור לתוכן
שיתוף באתרים אחרים

אז האיטיות כנראה באה מזה שאתה מחשב ראשוניות של מספר גדול (9 ספרות), ולא בדרך יעילה במיוחד. זה מה שביקשו מכם?

 

חבל לדכא, אולי ככה חשבו על RSA :mrgreen:

קישור לתוכן
שיתוף באתרים אחרים

הצטרפות לשיח

באפשרותך לשלוח הודעה כעת ולהירשם מאוחר יותר. אם ברשותך חשבון, ניתן להתחבר עכשיו לשליחת הודעה דרך חשבונך.
הערה: הודעתך דרושה לאישור הנהלה לפני הצגתה.

אורח
הוספת תגובה

×   הדבקה כטקסט עשיר.   הדבקה כטקסט רגיל במקום

  מאושרים אך ורק 75 סמייקונים.

×   הקישור שלך מוצמד אוטומטית.   הצגה כקישור במקום

×   תוכן הקודם שלכם שוחזר.   ניקוי עורך

×   You cannot paste images directly. Upload or insert images from URL.

טוען...
×
×
  • יצירת חדש...