ďťż
Podstrony
|
telcocafeWitam.1. Czy PHP posiada jakas funkcje, ktora by wypisywala wszystkie kombinacje z podanych cyfr? np podam liczby 3, 4 i 5 i chce stworzyc wszystkie 3-cyfrowe liczby zlozone z w/w cyfr. probowalem napisac skrypt, ale cos mi nie wychodzilo :/ 2. Jak można sprawdzic, czy dana liczba nie zawiera dwóch takich samych cyfr? tutaj niezbedna jest wiedza matematyczna z zakresu kombinatoryki :) pozdro :] tu nie jest potrzebna funkcja tylko dobry algorytm jak kolega pisze kombinatoryka liczysz silnie i tyle... B) myslqłem, zeby zrobic to w ten sposób: za pomoca petli for wyswietlic wszystkie 3-cyfrowe cyfry, sprawdzic czy liczba zawiera inne niz podane cyfry, nastepnie sprawdzic czy cyfry sie powtarzaja. jezeli liczba spelni te kryteria do dopisac ja do tablicy. Dobry pomysł??? ja mam kod do generowania kombinacji ale w c++ bool __fastcall TForm1::GenerujCiagi(AnsiString s_Ciag,int i_PozycjaZnaku){ i_PozycjaZnaku++; DWORD t1,t2; if(i_PozycjaZnaku==this->i_MaxDlugosc && (s_Ciag.Trim().IsEmpty()||AnsiString(s_Ciag[1])== this->sl_Ascii->Strings[0]) && s_Ciag.Length() == this->i_MaxDlugosc-1//-1 bo ciag to haslo bez ostaniego znaku && !this->b_OszacowanoCzas ){ t1 = GetTickCount(); } for(int i = 0;i<= this->sl_Ascii->Count-1;i++){ Application->ProcessMessages(); if(this->b_Stop){ return false; } AnsiString s_Haslo = s_Ciag+sl_Ascii->Strings[i]; this->ZapiszLinie(s_Haslo); this->UstawProgres(i_PozycjaZnaku/*,i*/); if(s_Haslo.Length()<this->i_MaxDlugosc){ bool b_Stop = !GenerujCiagi(s_Haslo,i_PozycjaZnaku); if(b_Stop){ return false; } } else{//krecimy sie w petelce } } /* chodzilo mi o obieg petli dla ciagu o max dlugosci ale tylko pierwszego tak dlugiego ciagu*/ if(i_PozycjaZnaku==this->i_MaxDlugosc && (s_Ciag.Trim().IsEmpty()||AnsiString(s_Ciag[1])== this->sl_Ascii->Strings[0]) && s_Ciag.Length() == this->i_MaxDlugosc-1// -1 bo haslo ma ciag +1 znak && !this->b_OszacowanoCzas ){ t2 = GetTickCount(); /* TODO -opkwart -cpopraw : tu bedzie try catch jak sie wysypie bo wyjdzie nam za duzo to trudno bedzie pusto */ SzacujCalkowityCzas(t1,t2); this->b_OszacowanoCzas = true; } SzacujCzasDoKonca(); return true; } oczywiście trza wywalić funkcje odpowiedizalne za szacowanie czasu (taki dodatek ale pewno sie nie przyda, nawet nie bede zamieszczal tu calego kodu tych funkcji) |
|||
Sitedesign by AltusUmbrae. |