• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie na wypisywanie wszystkich podzbiorów wg algorytmu

42 Warsaw Coding Academy
0 głosów
1,109 wizyt
pytanie zadane 8 czerwca 2020 w C i C++ przez Berry123 Nowicjusz (120 p.)

Mam problem z napisaniem programu na wypisywanie wszystkich podzbiorów danego zbioru

algorytm to Algorytm wypisujący ¸ wszystkie podzbiory zbioru {1, . . . , n}: • Pierwszy podzbiór: ∅. • by uzyska´c następny po A podzbiór: Wskazujemy na najwięszy element nie należący ¸ do A, czyli a = max{i ∈/ A} Jeżeli ˙ takiego a nie ma, to koniec algorytmu, zbiór A jest ostatnim podzbiorem. W przeciwnym przypadku dodajemy a do A i usuwamy z A wszystkie elementy większe od a

Mam tylko tyle
 

int nalezy(int tab[], int size, int elem)
{
    int i = 0;
    int x = 0;

    for(i; i < size; i++)
    {
        if(elem == tab[i])
        {
            x++;
            break; }}

 return x;
}



i w mainie ma być pętla

if(należy) dodaj element; usuń element; wypisz podzbór;

komentarz 8 czerwca 2020 przez tkz Nałogowiec (42,020 p.)
Podaj przykładowe wejście i wyście, oraz polecenie możesz poprawić by było jakoś sformatowane, bo osobiście go nie rozumiem.

1 odpowiedź

0 głosów
odpowiedź 9 czerwca 2020 przez TOM_CPP Pasjonat (22,640 p.)

W celu wyświetlenia wszystkich podzbiorów danego zbioru, możesz zastosować algorytm licznika bitowego.

#include <iostream>
#include <cmath>
#include <vector>

using namespace std;

void listAllSubsets( const vector<int>& set )
{
    cout << "subset 1 " << " = { }" << endl;
	for( int i {1} ; i < pow(2,set.size()) ; ++i )
	{
	    cout << "subset "<< i+1 << " = { ";
		for( int j {0} ; j<set.size() ; ++j )
		{
			if( i&(1<<j) )
			{
			    cout << set[j];
			    if( i>>(j+1) ) cout << " , ";
			}
		}
		cout << " }" << endl;
	}
}

int main()
{
    listAllSubsets( {1,2,3,4} );
    return 0;
}

 

komentarz 9 czerwca 2020 przez tkz Nałogowiec (42,020 p.)

Podobne pytania

0 głosów
1 odpowiedź 243 wizyt
pytanie zadane 5 czerwca 2020 w Algorytmy przez poldeeek Mądrala (5,980 p.)
0 głosów
3 odpowiedzi 1,216 wizyt
pytanie zadane 3 stycznia 2017 w C i C++ przez Akdx Początkujący (310 p.)
0 głosów
2 odpowiedzi 671 wizyt

93,382 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,740 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...