Losowy generator ciągu C ++

Losowy generator ciągu C ++
Losowy generator ciągów może być jedyny w swoim rodzaju. Losowy generator ciągów jest również znany jako losowy generator ciągu znaków, gdy jest używany w programowaniu komputerowym. Bardzo skuteczne jest generowanie losowych ciągów, takich jak Id-ID dla aplikacji internetowej lub wstępne hasło po zarejestrowaniu się do aplikacji.

Aby wygenerować losowe znaki, powinniśmy użyć metody rand (). Generuje losowo wartości liczb całkowitych. Liczba ta jest tworzona przy użyciu algorytmu powiązanego z określonym czasem, który jest nazywany i zwraca sukcesję pozornie niezwiązanych liczb. Istnieje pewne aplikacje do generowania losowych ciągów w następujący sposób:

  • Kryptografia, która stanowi podstawę większości technik, które mają na celu zapewnienie bezpieczeństwa we współczesnej komunikacji, szeroko wykorzystuje nieoczekiwane losowe postacie (e.G., szyfrowanie, autoryzacja, biznes elektroniczny itp.).
  • Losowe znaki są również wykorzystywane w przypadkach, w których „uczciwość” można symulować poprzez randomizację, takie jak wybór jury i loterie wojskowe.

Oto artykuł, który losowo wygeneruje alfabet z różnymi scenariuszami w prosty sposób

Przykład 1: Korzystanie z funkcji rand () do generowania losowych alfabetów w c++

Poniższy program C ++ generuje losowy alfabet ciągu za pomocą funkcji rand () i srand (). Funkcja rand () generuje losowe alfabety w funkcji sznurka, a funkcja srand () jest używana do sadzenia funkcji rand ().

Początkowo mamy program, który ustawia tablicę wielkości alfabetów jako „CH_MAX”, który jest typu danych INT. Następnie skonstruowaliśmy funkcję typu danych String reprezentowaną jako „losoweString” i przeszliśmy zmienną „CH”. Wewnątrz funkcji macierz znaków jest tworzona jako „alfa”, która przekazała rozmiar tablicy znaków zainicjowany powyżej. Tablica znaków ma 26 alfabetów, które są w niższym przypadku.

Następnie stworzyliśmy zmienną jako „wynik” i obecnie utrzymywaliśmy tę zmienną „wynik”. Pętla dla For jest przeżywana przez zmienną „CH” zawierającą małe alfabety. Następnie zdefiniowaliśmy zmienną „wynik”. Wynik ma funkcję rand () dla tablic znaków alfabetów. To wygeneruje losowy ciąg alfabetyczny.

Teraz przywoływana jest główna funkcja programu, w której funkcja SRAND jest używana do ustawiania czasu nasiennego jako zerowego dla, a także zmienna Int „CH” jest inicjowana z wartością „15”. Wygenerowany losowy ciąg alfabetu będzie miał 15 losowych alfabetów z danej tablicy.

#włączać
za pomocą przestrzeni nazw Std;
const int ch_max = 26;
String RandomString (int ch)

char alpha [ch_max] = 'a', 'b', 'c', 'd', 'e', ​​'f', 'g',
„H”, „i”, „j”, „k”, „l”, „m”, „n”,
„o”, „p”, „q”, „r”, „s”, „t”, „u”,
„V”, „w”, „x”, „y”, „z”;
String Result = "";
dla (int i = 0; iwynik = wynik + alfa [rand () % ch_max];
wynik zwrotu;

int main ()

SRAND (czas (null));
int ch = 15;
Cout<powrót 0;

Poniższa powłoka wyświetla losowe wyjście ciągów alfabetów w następujący sposób:

Przykład 2: Generowanie łańcucha alfabetów i przechowywanie ich w szeregu znaków w C++

W tym kodzie najpierw generujemy dwie tablice znaków, jeden do przechowywania wszystkich alfabetów, a drugi do drukowania losowych znaków. Wybraliśmy minimalną długość, aby uprościć sytuację.

Aby rozpocząć od głównej funkcji, zadeklarowaliśmy szereg alfabetów o rozmiarze 26 jako „alfabety”. Ponieważ ogólnie jest 26 alfabetów, reprezentacja tych alfabetów jest małymi literami. Następnie zdefiniowaliśmy kolejną tablicę postaci jako „Randstring”, która ma rozmiar „10”. Ustawiane jest również ziarno funkcji RAND, pomijając czas do zerowych wartości w funkcji Srand.

Mamy pętlę, dla której zmienna „k” jest tworzona i inicjowana z wartością zero. While pętla przebiega przez rozmiar „RandString”, który jest losowym ciągiem i przechowani losowo utworzonymi alfabetami sznurka na chwilę. Zmienna „Temp” jest tutaj tworzona, która wykorzystuje funkcję RAND do generowania losowego ciągu w zakresie 26. Liczba jest następnie przekazywana do tablicy alfabetu, generując losowy ciąg.

Następnie mamy pętlę do drukowania sznurka alfabetu.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

Char Alphabets [26] = „A”, „B”, „C”, „D”, „E”, „F”, „G”, „H”,
„I”, „J”, „K”, „L”, „M”, „N”, „O”, „P”, „Q”,
„r”, „s”, „t”, „u”, „v”, „w”, „x”, „y”, „z”;
Char Randstring [10];
SRAND (czas (null));
int k = 0;
While (k<10)
int temp = rand () % 26;
RandString [k] = alfabety [temp];
K ++;

dla (k = 0; k<10; k++)
Cout<Cout<<"\n";
powrót 0;

String ma losowy znak alfabetyczny o długości rozmiar 10, pokazany w następującej powładzie.

Przykład 3: Generowanie losowych słów ciąg w C++

Powyższy program wygenerował ciąg alfabetów i przechowuje je w tablicy. Generujemy ciąg losowych słów w następującym programie C ++.

Początkowy etap programu ma utworzoną funkcję pustki o nazwie „Randomword”, która przekazała zmienną charakteru wskaźnika „Strword”. W ramach funkcji określiliśmy zmienną jako „len”. Ta zmienna wykorzystuje funkcję RAND do tworzenia innej wartości dla znaków wewnątrz zakresu rozmiaru tablicy.

Następnie zdefiniowaliśmy tablicę „Strword”, która ma rozmiar „Len”. While pętla będzie iterowana przez „strword” i wygeneruje losowe słowo w zakresie 26 znaków. Następnie główna funkcja wydrukuje losowe słowo przez iterację w czasie pętli.

#włączać
#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
void Randomword (char *strord)

int len ​​= rand () % 4 + 1;
Strword [len] = 0;
while (len) strord [--len] = „a” + rand () % 26;

int main ()

Char Strword [5];
Char Strword2 [5];
int i = 0;
SRAND (czas (0));
podczas gdy ja<4)

Randomword (strord);
Randomword (Strword2);
Cout << "=>" << StrWord << " << "=>" << StrWord2 << endl;
i ++;

Wynik generatora losowych słów jest wyświetlany na końcowej powładzie.

Przykład 4: Generowanie łańcucha alfa-numerycznego w C++

Teraz przyjrzymy się stworzeniu losowego łańcucha alfanumerycznego w C++. Mamy małe litery, wielkie litery i cyfry od 0 do 9. Ten program wybiera znaki losowo, a następnie generuje losowy ciąg.

Początkowo zadeklarowaliśmy tablicę jako „alfanumeryczny”, który zawiera zarówno alfabety małej i wielkimi, jak i wartość liczbową od 0 do 9. Następnie identyfikator rozmiaru tablicy jest inicjowany przy użyciu funkcji rozmiaru i przechowywanego w nowo utworzonej zmiennej „Mylen”.

Następnie tworzona jest funkcja „losowy” do generowania losowych ciągów alfanumerycznych w zakresie wielkości tablicy. Mamy czas na zero w funkcji głównej, a zmienna jest zdefiniowana jako „L”. Użytkownik wprowadzi długość ciągów, a następnie wydrukuje na powładzie.

#włączać
#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
Static const char alphanumeric [] = "0123456789"
"ABCDEFGHIJKLMNOPQRSTU VWXYZ"
"ABCDEFGHIJKLMNOPQRSTU VWXYZ";
int mylen = sizeof (alfanumeryczny) - 1;
Char Randomstr ()
Return Alphanumeric [rand () % Mylen];

int main ()
SRAND (czas (0));
int l;
Cout << "Enter string length: ";
cin >> l;
dla (int m = 0; m < l; m++)
Cout<
Cout<< "\n";
powrót 0;

Zatem po każdej kompilacji kodu mamy inny losowy ciąg alfanumeryczny na powładzie.

Wniosek

Losowe jest jednym z najtrudniejszych pojęć w C ++ do wyjaśnienia. Nawet doświadczeni programiści mogą być zaskoczeni wieloma funkcjami o tej samej nazwie. Jednak odpowiednio ich używanie może być przyjemne. W powyższym przykładzie widzieliśmy, w jaki sposób losowe alfabety, słowa, a nawet struny alfanumeryczne zostały wygenerowane w programie C++. Zapewniliśmy Ci najprostsze przykłady, które można łatwo rozwiązać w przypadku losowych generatorów strun w C++.
[/cc]