Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

رياضيات - الفرق المتناظر

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 32 من 59.

إن الفرق المتماثل لمجموعتين هو مجموعة جديدة تحتوي على العناصر الموجودة في أي من المجموعتين ولكن ليس في كلتيهما. في لغة جافا، يمكنك حسابه من خلال:

  1. إيجاد الفرق للمجموعة الأولى بالنسبة للمجموعة الثانية.
  1. إيجاد الفرق للمجموعة الثانية بالنسبة للمجموعة الأولى.
  1. الجمع بين هذين الاختلافين.

أولاً، قم بإنشاء اثنين من 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]
challenge icon

التحدي

سهل

أنشئ دالة باسم <strong>symmetricDifference</strong> تأخذ اثنين من HashSets من الأعداد الصحيحة كمدخلات، وتحسب الفرق التناظري بينهما، وتطبعه بالتنسيق التالي:

Symmetric Difference: [elements]

ورقة مرجعية

يحتوي الفرق المتماثل (symmetric difference) لمجموعتين على العناصر الموجودة في أي من المجموعتين ولكن ليس في كلتيهما.

لحساب الفرق المتماثل في Java:

  1. أوجد فرق المجموعة الأولى بالنسبة للمجموعة الثانية
  2. أوجد فرق المجموعة الثانية بالنسبة للمجموعة الأولى
  3. اجمع هذين الفرقين معاً
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);

// Remove common elements from each set
HashSet<Integer> diff1 = new HashSet<>(set1);
diff1.removeAll(set2);  // diff1 is [1]

HashSet<Integer> diff2 = new HashSet<>(set2);
diff2.removeAll(set1);  // diff2 is [4]

// Combine the differences
diff1.addAll(diff2);  // diff1 is [1, 4]

جرّب بنفسك

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);
        // ([1,2,3] اقرأ سلسلة نصية بتنسيق JSON للمجموعة الأولى (مثلاً
        String set1String = scanner.nextLine();
        // ([2,3,4] اقرأ سلسلة نصية بتنسيق JSON للمجموعة الثانية (مثلاً
        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);
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow