מתמטיקה - הפרש סימטרי
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 32 מתוך 59.
ההפרש הסימטרי של שתי קבוצות הוא קבוצה חדשה שמכילה איברים שנמצאים באחת מהקבוצות, אך לא בשתיהן. ב-Java, אפשר לחשב אותו כך:
- מציאת ההפרש של הקבוצה הראשונה ביחס לשנייה.
- מציאת ההפרש של הקבוצה השנייה ביחס לראשונה.
- שילוב שתי ההפרשים האלה.
תחילה, צרו שתי קבוצות HashSet:
HashSet<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
HashSet<Integer> set2 = new HashSet<>();
set2.add(2);
set2.add(3);
set2.add(4);לאחר מכן, חשבו כל הפרש חד-כיווני:
HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2); // diff1 הוא [1]
HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1); // diff2 הוא [4]לאחר מכן, שלבו את שתי ההפרשים:
diff1.addAll(diff2); // diff1 הוא [1, 4]אתגר
קלצרו מתודה בשם <strong>symmetricDifference</strong> שמקבלת כקלט שתי קבוצות HashSet של מספרים שלמים, מחשבת את ההפרש הסימטרי שלהן ומדפיסה אותו בפורמט:
Symmetric Difference: [elements]נסו בעצמכם
import java.util.HashSet;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static void symmetricDifference(HashSet<Integer> set1, HashSet<Integer> set2) {
// כתבו כאן את הקוד שלכם
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// קראו מחרוזת JSON עבור הקבוצה הראשונה (למשל, [1,2,3])
String set1String = scanner.nextLine();
// קראו מחרוזת JSON עבור הקבוצה השנייה (למשל, [2,3,4])
String set2String = scanner.nextLine();
Type setType = new TypeToken<HashSet<Integer>>(){}.getType();
HashSet<Integer> set1 = new Gson().fromJson(set1String, setType);
HashSet<Integer> set2 = new Gson().fromJson(set2String, setType);
symmetricDifference(set1, set2);
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכים5HashSet חלק 2
מתמטיקה - איחוד של HashSetsמתמטיקה - חיתוך של HashSetמתמטיקה - הפרש קבוצותמתמטיקה - הפרש סימטריתת־קבוצות וקבוצות־עלמעבר על קבוצותתרגלו בעצמכם: קומפיילר Java אונליין