Witam!
Widziałem już kilka kodów na temat tego zadania: Wygeneruj wszystkie k-elementowe podzbiory zbioru n-elementowego.
Ale nadal nie rozumiem, jak wyprowdzić wszystkie jedynki itd., w momencie gdy wybieramy n i k. Proszę o pomoc:
#include <stdio.h>
#include <algorithm>
void wypisz(int a[], int n)
{
for(int i=0; i<n; i++)
{
if( a[i] )printf("%d", i+1);
}
printf("\n");
}
int main(void)
{
int i,n,k;
printf("Podaj n\n");
scanf("%d", &n);
printf("Podaj k\n");
scanf("%d", &k);
int tab[n];
for(i=0;i<n;i++)
{
if(i<n-k)
tab[i] = 0;
else
tab[i] = 1;
}
wypisz(tab,n);
while( std::next_permutation(tab,tab+n) )
wypisz(tab,n);
return 0;
}
Jest jeszcze druga sprawa: Wyznacz krotność powtarzania się poszczególnych elementów w ciągu {a1, a2,…an} Do tego nie wiem kompletnie jak się zabrać w programie :/
Z góry dziękuję za pomoc