בדיקת מטריצה היחידה ב java

bili oc

New member
בדיקת מטריצה היחידה ב java

היי,
איך אני יכולה לבדוק האם המטריצה שהמשתמש הכניס לי היא מטריצה היחידה?
התחלתי את התכנית ככה:
בדקתי דבר ראשון שזה מטריצה ריבעוית (כי אם לא היא לא היחידה)
התנאי השני שלי היה לבדוק האם האלכסון כולו שווה ל 1. (אותו דבר, כי אם לא אז זה לא היחידה)
ועכשיו אני לא יודעת איך להמשיך.. איך אני בודקת שמה שיש מעל האלכסון ומתחת לאלסכון הראשי הם אפסים?
צירפתי את הקובץ שבו התחלתי את השאלה..
 

BravoMan

Active member
בלי להסתכל על הקוד שכתבת ,

כי מסמכי docx הם צרה צרורה ורצוי תמיד לצרף קובץ txt פשוט, כדי להגיע לפתרון צריך לחשוב על ההיגיון של הבדיקה:

ביקשו ממך לבדוק ש:
א) כל האלכסון הראשי שווה ל-1
ב) כל שאר התאים שווים 0.

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

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

אז, עכשיו את יודעת שכשמספר השורה והעמודה של תא מסוים זהים, יש לבדוק שערכו 1, ואם לא זהים יש לבדוק שערכו 0.

מכאן זה רק עניין של כתיבת לולאות ותנאים מתאימים ב-Java.
בהצלחה!
 

nocgod

New member
אני חושב שזה די ברור...

עוברים על המטריצה עם 2 אינדקסים מ0 עד n: כאשר i שונה מ j (לא אלכסון ראשי) את בודקת אם יש 0 בתא. אם i = j את בודקת אם יש לך 1 בתא....
 
למעלה