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

losowy ciąg liczb i liter c++ jak zrobić?

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
635 wizyt
pytanie zadane 19 stycznia 2021 w C i C++ przez Flaven Początkujący (260 p.)

Witam serdecznie

do generowania losowego ciągu liter i liczb używam kodu:

#include <iostream>
#include <random>
#include <algorithm>
#include <chrono>

std::string chars {"abcdefghijklmnopqrstuvwxyz1234567890"};
std::random_device rd;
std::mt19937 generator(rd());

std::string rand_str(int length) {
  std::string output;
  output.reserve(length);

  while(length>0)
  {
      auto randNumb = generator();
      while(randNumb > 33 && length--)
      {
        output.push_back(chars[randNumb%33]);
        randNumb/=33;
      }
  }
  return output;
}

int main() {
  std::string rand_bytes;
      rand_bytes = std::move(rand_str(64));

  std::cout << "This took: " <<rand_bytes<< std::endl;
}

Tylko jest jeden zasadniczy problem.. Jak uruchomię powyższy program to uzyskam tą samą kombinację znaków..

r7ijv3tr1gxnmhjnhfaqwapbr1ggz45nh7uj4ix4i4nosxbnekigtc1uaidcveu2

Co zrobić? Może ktoś zna lepszy kod? Co zrobić aby każda funkcja zwracała inną wartość.. 

1
komentarz 19 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Ten move tam jest conajmniej dziwny i niepotrzebny. W C++ istnieją takie mechanizmy jak RVO i NRVO, które optymalizują takie przypadki.
komentarz 19 stycznia 2021 przez Marak123 Stary wyjadacz (11,110 p.)
A nie możesz po prostu zrobić tablicy z alfabetem potem losować liczby od 0 do długości tablicy z alfabetem a potem po prostu do zmiennej string dołączać po kolei wyciągnięty z tablicy z alfabetem znak alfabetu z miejsca które zostało wylosowane za pomocą funkcji rand()
komentarz 19 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Przecież on to praktycznie robi
komentarz 19 stycznia 2021 przez Flaven Początkujący (260 p.)
Jest możliwość aby losować np. 18-30 liter losowych oraz 46-32 liczb aby razem utworzyły bardzo losowy ciąg znaków oraz liczb? Ktoś by pomógł w napisaniu aby za bardzo nie obciążał (wykorzystuje to do czegoś bardziej złożonego..).

3 odpowiedzi

0 głosów
odpowiedź 19 stycznia 2021 przez tmar1212 Bywalec (2,600 p.)
–1 głos
odpowiedź 19 stycznia 2021 przez VBService Ekspert (203,950 p.)
edycja 19 stycznia 2021 przez VBService

Boost.Random c++ Libraries

This library provides several pseudo-random number generators
It has a number of quite good (and fast) RNGs.

 

libsodium ( #include <sodium.h> )

libsodium

Sodium is a new, easy-to-use software library for encryption, decryption, signatures, password hashing and more.

 

It is a portable, cross-compilable, installable, packageable fork of NaCl, with a compatible API, and an extended API to improve usability even further.

 

Its goal is to provide all of the core operations needed to build higher-level cryptographic tools.

 

Sodium supports a variety of compilers and operating systems, including Windows (with MingW or Visual Studio, x86 and x64), iOS, Android, as well as Javascript and Webassembly.

komentarz 19 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Gdzie tam widzisz rand?
komentarz 19 stycznia 2021 przez VBService Ekspert (203,950 p.)

Tu zobacz, jak odświeżysz stronę, zobaczysz kolejne. wink

Podobne pytania

0 głosów
1 odpowiedź 99 wizyt
+1 głos
2 odpowiedzi 367 wizyt
pytanie zadane 24 kwietnia 2021 w C i C++ przez Malarz Nowicjusz (180 p.)
0 głosów
1 odpowiedź 261 wizyt
pytanie zadane 18 marca 2021 w C i C++ przez NukaNuka56 Obywatel (1,080 p.)

89,744 zapytań

138,348 odpowiedzi

309,365 komentarzy

59,659 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 747p. - Argeento
  2. 696p. - Mikbac
  3. 693p. - Michal Drewniak
  4. 692p. - rucin93
  5. 688p. - Łukasz Eckert
  6. 679p. - ssynowiec
  7. 678p. - TheLukaszNs
  8. 645p. - Jarosław Roszyk
  9. 640p. - adrian17
  10. 592p. - nidomika
  11. 522p. - JMazurkiewicz
  12. 515p. - Hubert Chęciński
  13. 506p. - tokox
  14. 501p. - Rafał Budzis
  15. 498p. - overcq
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...