Wariacje + tablica
Ostatnio zmodyfikowano 2013-11-29 21:01
mgrD Temat założony przez niniejszego użytkownika |
Wariacje + tablica » 2013-11-28 17:10:56 Witam, usiłuje napisać program, który wczyta mi kombinacje z powtórzeniami z tablicy(musi być tablica) w tablicy mam "ABab12" i chciałbym, by wypisało wszystkie kombinacje 3 znakowe. Wzór do tego to podobno będzie 3^6 = 729 tylko nie mogę tego ogarnąć zbytnio, próbowałem już kilka razy i dalej stoję ;/ #include <iostream> #include <string> #include "Windows.h" #include <ctime>
std::string text[ 729 ]; char tablica[] = "ABab12"; void los();
int main() { srand( time( NULL ) ); std::cout << "No to zaczynamy!\n"; los(); return 0; }
void los() { int powtorka = 0, ilosc = 0; while( powtorka == 0 ) { ilosc = 0; while( ilosc <( sizeof( tablica ) - 1 ) ) { text[ ilosc ] = tablica[ rand() %( sizeof( tablica ) - 1 ) ]; ilosc++; for( int t = 0; t < ilosc; t++ ) { if( text[ t ] == text[ ilosc ] ) text[ ilosc ] = tablica[ rand() %( sizeof( tablica ) - 1 ) ]; } } } }
I dalej nie wiem co i jak bo już mi się zbyt dużo namieszało niestety - czy ktoś pomoże? |
|
bnk120 |
» 2013-11-29 09:17:16 Nie lepiej byłoby Ci przygotować 3 pętle for i działać tylko na indeksach tej Twojej char tablica ? W odpowiedniej pętli dodawać rozwiązania do tej tablicy text ( jeżeli koniecznie wyniki mają być w tablicy ) i tyle. |
|
Wiesiek |
» 2013-11-29 12:44:25 3^6 to wariacje z powtórzeniami. Wariacji bez powtórzeń jest 6!/3!, kombinacji bez powtórzeń 6!/(3!*3!), kombinacji z powtórzeniami 8!/3!. Do tworzenia kombinacji z powtórzeniami można skorzystać z kombinacji bez powtórzeń. Kombinacje bez powtórzeń przy szukaniu 3 elementowego podzbioru zbioru 8 elementowego o elementach indeksowanych od 0 do 7 robimy przez potrójną pętlę - w pierwszej indeks i1 od 0 do 5, w drugiej indeks i2 od i1 do 6, w trzeciej indeks i3 od i2 do 7. |
|
mgrD Temat założony przez niniejszego użytkownika |
» 2013-11-29 16:33:12 Hmmm -> kombinacji z powtórzeniami 8!/3! Czyli to nie to samo co wariacje z powtórzeniami? (wariacje z powtórzeniami != kombinacje z powtórzeniami)? |
|
ShayQ |
» 2013-11-29 21:01:31 Myślałem żeby edytować Twój kod ale jednak nie, bo męczę się z podobną rzeczą tylko ja muszę zliczać sumę permutacji i w trakcie wywołania rekurencji omija niektóre pola do zliczania ^^
Tutaj masz link gdzie (prawdopodobnie) opisane jest to czego potrzebujesz :) http://www.codeguru.com/cpp/cpp/algorithms/article.php/c5123/Permutations-in-C.htm |
|
« 1 » |