Сформировать множество по формуле и его подмножество - C#

Узнай цену своей работы

Формулировка задачи:

Даны три множества Х1, Х2, Х3, содержащие целые числа из диапазона 1..100. Известно, что мощность каждого из этих множеств равна 10. Сформировать новое множество Y=(Х1  Х2) (Х2\ Х3), из которого выделить подмножество нечетных чисел. На экран вывести исходные и полученное множества. Значения элементов исходных множеств ввести с клавиатуры.
y=(X1объединениеX2)(X2\X3)

Решение задачи: «Сформировать множество по формуле и его подмножество»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace Ghost
{
    class Program
    {
        static bool IsPrime(uint num)
        {
            if (num == 0 || num == 1)
            {
                return false;
            }
 
            for (uint i = 2; i <= num / 2; i++)
            {
                if (num % i == 0)
                {
                    return false;
                }
            }
 
            return true;
        }
 
        static void Shuffle<T>(IList<T> collection)
        {
            Random rnd = new Random();
 
            for (int i = 0; i < collection.Count / 2; i++)
            {
                int index = rnd.Next(0, collection.Count);
 
                if (index != i)
                {
                    T buffer = collection[i];
                    collection[i] = collection[index];
                    collection[index] = buffer;
                }
            }
        }
 
        static void Main(string[] args)
        {
            List<uint> nums = Enumerable.Range(0, 100).Select(Convert.ToUInt32).ToList();
            Shuffle(nums);
            ISet<uint> x1 = new HashSet<uint>(nums.Take(10));
            Shuffle(nums);
            ISet<uint> x2 = new HashSet<uint>(nums.Take(10));
            Shuffle(nums);
            ISet<uint> x3 = new HashSet<uint>(nums.Take(10));
            HashSet<uint> result = new HashSet<uint>(x1);
            // (X1 U X2)
            result.UnionWith(x2);
            ISet<uint> temp = new HashSet<uint>(x2);
            // (X2 \ X3)
            temp.ExceptWith(x3);
            // (X1 U X2)(X2 \ X3)
            result.IntersectWith(temp);
            // Оставить только простые
            result.RemoveWhere(x => !IsPrime(x));
 
            Console.WriteLine("X1:");
            Console.WriteLine(string.Join(", ", x1));
            Console.WriteLine("X2:");
            Console.WriteLine(string.Join(", ", x2));
            Console.WriteLine("X3:");
            Console.WriteLine(string.Join(", ", x3));
            Console.WriteLine(@"(X1 U X2)(X2 \ X3):");
            Console.WriteLine(string.Join(", ", result));
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы