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

generator liczb pseudolosowych

Object Storage Arubacloud
0 głosów
775 wizyt
pytanie zadane 21 września 2017 w C i C++ przez qlucha Obywatel (1,790 p.)

Witam ustawiony zakres losowanych liczb pseudolosowych wynosi od 1 do 100,000

Ale wylosowane liczby nie przekraczają wartości 35,000

Czy jest tak samo  jak dla zmiennych, okreslona granica maximum dla danej liczby ?

#include <iostream>
#include <time.h>
#include <cstdlib>
#include <windows.h>

int main()
{
    int ile;
    std::cout << "\n\t Ile liczb pseudolosowych wylosowac : ";
    std::cin  >> ile;


    int *Tab;
    Tab = new int [ile];
/**/
     for(;;) {
        srand(time(NULL));
        for (int i = 0; i < ile ; i++){

           Tab[i] = rand()% 100000+1;
        }
/**/
        std::cout << "\n\t ";
        for (int i = 0; i < ile ; i++){

           std::cout << Tab[i] << ", ";
        }
        Sleep(1000);
        system("cls");
     }
/**/
    delete [] Tab;


    return 0;
}

 

komentarz 21 września 2017 przez Szahid Pasjonat (20,930 p.)
Nie wiem jaka jest odpowiedż na to pytanie ponieważ nie używam funkcji rand. Do generowania liczb psełdolosowych używa się odpowiedniej biblioyeki <random> .

Polecam Ci jej użyć i na pewno nie będziesz miał problemu

2 odpowiedzi

+1 głos
odpowiedź 21 września 2017 przez Szahid Pasjonat (20,930 p.)
Znalazłem odpowiedź.

 This value is library-dependent, but is guaranteed to be at least 32767 on any standard library implementation.

Czyli ta liczba jest limetem  zakersu.

Polecam użyć biblioteki <random>
komentarz 21 września 2017 przez qlucha Obywatel (1,790 p.)
dzięki za odpowiedz , czy mógłbyś zamieścić prosty kod z użyciem funkcji z tej biblioteki

jako przykład . ??
komentarz 21 września 2017 przez Szahid Pasjonat (20,930 p.)
#include <random> // do silnika
#include<chrono> // pobranie "ziarna" czyli odpowiednik srand(time(NULL))

int main()
{

 unsigned seed = chrono::steady_clock::now().time_since_epoch().count(); // ziarno
			default_random_engine e; //tworzymy silnik 
			e.seed(seed); // inicjujemy silnik ziarnem 
			uniform_int_distribution<int> distr(1, 100);  //zakres od 1 do 100
			int elements2=distr(e); // przypisuje zmiennej elements2 wartość od 1 do 100

}

Mam nadzieję że się skompiluje. Jak coś to pisz 

komentarz 21 września 2017 przez Szahid Pasjonat (20,930 p.)
PS

Jeśli chcesz poznać szczegóły to w googlu jest masa rzeczy o tym co to jest ten silnik i do czego służy uniform_tymZmiennej_distribution + tutaj jest film

https://www.youtube.com/watch?v=K2nrsQwKmHQ&list=LLd4yWqVum924xLekYHu7J6w&index=19
komentarz 21 września 2017 przez qlucha Obywatel (1,790 p.)
sprawdzę za parę minut na razie jestem przytłoczony nowym zasobem wiedzy.

Czy ktoś ma może dobrego linka , do strony gdzie są wymienione wszystkie podstawowe biblioteki w C++ , do czego służą , jakie funkcje posiadają ,  i na przykładach i prostych ćwiczeniach omówione tak bardzo ogólnie   ?,

(Wiem , że można tworzyć własne biblioteki w C++ , i  funkcje ) ale mi chodzi o ten tak zwany globalny set  ,który każdy zna.
+1 głos
odpowiedź 21 września 2017 przez criss Mędrzec (172,590 p.)

rand() jest w stanie "wylosować" liczbe o wartości maksymalnie RAND_MAX. Sprawdź ile to jest na twoim kompilatorze. Żeby się  tak nie ograniczać możesz skorzystać z mojej wczorajszej odpowiedzi na podobne pytanie: klik

komentarz 21 września 2017 przez Patrycjerz Mędrzec (192,320 p.)

Pozostając przy poczciwej funkcji rand, można próbować sklejać wartości paru jej wywołań, jak to zaprezentowano tutaj (w tym przypadku dla zakresu losowania od 0 do 65535 przy RAND_MAX wynoszącym 32767), ale nie jestem pewien, czy nie traci na tym powtarzalność i tak już mocno szablonowych wartości tej funkcji.

Podobne pytania

0 głosów
1 odpowiedź 898 wizyt
+1 głos
2 odpowiedzi 994 wizyt
0 głosów
2 odpowiedzi 192 wizyt

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...