Допълнение на крайно множество

Определение за допълнение на множество: нека имаме крайно множество А явяващо се определено подмножество на крайно множество М. Допълнението на множество А е също крайно множество и включва всички елементи на множество М, които не са елементи на множество А. От гледната точка на статистиката допълнение на множество е противоположното събитие. Ако разглеждаме допълнение на крайното множество A към безкрайно (универсалното) множество резултатът е също безкрайно множество Две крайни множества са равномощни, ако имат еднакъв брой елементи. Под мощност на едно крайно множество се разбира също броят на неговите елементи. Ако разглеждаме множеството M съдържащо стойности на една булева променлива {0,1}, то подмножеството А, съдържащо едната стойност ще бъде равномощно на допълнението до множеството M. Ако разглеждаме множеството M съдържащо всички едноцифрени естествени числа {1,2,3,4,5,6,7,8,9} и негово подмножество A, съдържащо само четните едноцифрени числа {2,4,6,8}, то подмножеството допълнение на A ще има по-голям брой елементи {1,3,5,7,9}, т.е. ще бъде с по-голяма мощност. Операцията допълнение на множества не е комутативна.

Операцията допълнение на множество може да бъде илюстрирано с логическа функция отрицание - NOT.

Начало на страницата

Следващата примерна програма дава решена задача за допълнение на дадено множество:
#include <iostream> 
#include <stdlib.h> 
using namespace std;

 int const Max=25;//maksimalen diapazon na generiranite chisla i tehniq broj

 void inici(int mas0[], int mas1[], int mas2[])
 { int i;
   for (i=0;i<Max;i++)
    {mas0[i]=1;//mnovestwoto M sydyrva wsichki chisla [1..Max]
     mas1[i]=mas2[i]=0;}
    //wseki element w masiwa / mnovestwoto 1,2 ima stojnost 0 
 }// iztriwa elementi w mnovestwo 

 void gener(int mas3[], int br)
 { int i=0,c;
    do {
     c=1+rand()%Max;//generira sluchajno chislo ot interwala [1..Max] element w mnovestwo 
     //ako ne e bila wywevdana do momenta takawa stojnost
     if (!mas3[c]) {mas3[c]++;i++;cout<<c<<"; ";}; 
     //realno w masiwa se zapiswa 1 w kletka s indeks generiranoto chislo
    } while(i<br);
    cout<<endl;
 }// generira elementi w mnovestwo 

 int mnoves(int mas0[], int mas1[], int mas2[])
 {int i, kolko=0;
   for (i=0;i<Max;i++)
    { if (mas0[i] > mas1[i]) {kolko++;cout<<i+1<<"; ";mas2[i]++;}; 
     //dopylnenie koi elementi lipswat w mnovestwo 1
    } //for
    return kolko;//broj elementi w dopylnenie na mnovestwo 
 }//  broj elementi  mnovestwo 
void obrabotka(int mas0[], int mas1[], int mas2[], int br)
{ int koe,kolko;
  inici(mas0, mas1, mas2);
  cout<<"Generiram "<<br<<" broq razlichni sluchajni chisla za mnovestwo A:\n";
  gener(mas1, br);
  cout<<"Pri operaciq dopylnenie elementite sa:\n";
  kolko=mnoves(mas0, mas1, mas2); cout<<"   Obsho:"<<kolko<<" elementa\n";
}// dopylnenie na mnovestwo 

int main()
{int mas0[Max],mas1[Max],mas2[Max],br;
  char ose;
  cout<<"Imame mnovestwo M sydyrvasho wsichki estestweni chisla ot interwala [1..25]\n";
  cout<<"Da se systawi programa, chrez koqto se wywevdat razlichni \n";
  cout<<"estestweni chisla ot interwala [1..25] w drugo mnovestwo A.\n";
  cout<<"Chislata w mnovestwoto A se generirat kato sluchajni.\n";
  cout<<"Programata da izwede generiranite chisla w mnovestwoto A,\n";
  cout<<"kakto i movestewoto, predstwlqwasho dopylnenie na A do mnovestwoto M.\n";
  do {
  cout<<"Wywedete broi elementi w mnovestwo A [10..15]: ";cin >> br;
  //ne e slovena zashita po whod
  obrabotka(mas0, mas1, mas2, br);
  cout<<"She wywevdate li drugi danni <y/n>: ";cin>>ose;
  } while (ose=='y');
  system("pause");
  return 0;
}//kraj na programa dopylnenie na mnovestwo 

Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.

Начало на страницата

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: