Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Zbyt mały zakres losowanych liczb


Rekomendowane odpowiedzi

Opublikowano

Witam, muszę w programie zrobić funkcję losującą 1000 liczb całkowitych dodatnich maksymalnie sześciocyfrowych . Napisałem program, tylko jest taki problem, że zakres Rand max jest zbyt mały i maksymalna wartość liczby ma 5 znaków. Da się jakoś zwiększyć ten zakres, a może jakoś inaczej losować te liczby, żeby miały po 6 cyfr. 

 

 

ofstream plik("liczby1.txt");
for(int i=0;i<1000;i++){
liczba=rand()%999999+1;
plik<<liczba<<endl;
}
 
plik.close();
Opublikowano

Wartość RAND_MAX(czyli najwyższa wartość jaką rand może zwrócić) często wynosi 65536. Istnieją lepsze funkcje od tego(nagłówek <random>) ale są one trudniejsze w użyciu. Możesz też po prostu z dwóch mniejszych liczb zrobić większą(odpowiedni przedział, jedną pomnożyć, potem dodać i gotowe).

Opublikowano

A mozesz po prostu losowac pare liczb od 0 do 50000, a nastepnie je sumowac ( nie jest to idealnie losowe ale juz od 0 do 100k )

Opublikowano
A mozesz po prostu losowac pare liczb od 0 do 50000, a nastepnie je sumowac ( nie jest to idealnie losowe ale juz od 0 do 100k )

 

to jest BARDZO słabe jeśli oczekuje się równej dystrybucji liczb, bo prowadzi do tego https://en.wikipedia.org/wiki/Gaussian_function

 

Możesz jeszcze skorzystać z boost/random.

 

po co zaciagac boosta do tego co mozna zrobic w standardowym C++

 

najlepiej skorzystac z http://en.cppreference.com/w/cpp/numeric/random

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...