01/10/2018, 11:59
Code hiện mảng 100 số ngẫu nhiên chỉ ra 100 số giống nhau
code của em như này nhuwnh run nó chạy ra 100 số giống nhau là sao ạ. helpppp
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(int a[])
{
int i;
for(i=1;i<=100;i++)
{
int a[100];
srand(time(NULL));
printf(" %d", rand()%10000);}}
Bài liên quan
Bạn thử làm thế này
Nói là random nhưng nó không random đâu.
Đọc để hiểu về random trong C++, hiểu vì sao phải khởi tạo srand(seed):
Learn C++ – 7 Dec 08
5.9 — Random number generation
The ability to generate random numbers can be useful in certain kinds of programs, particularly in games, statistics modeling programs, and scientific simulations that need to model random events. …
Trong modern C++ có hỗ trợ std::mt19937 sinh số ngẫu nhiên tốt hơn.
rand()
thực chất không phải là random, chỉ là một quy tắc biến đối từ seed thành kết quảseed thì lại là kết quả của
srand()
. Hầu như ngôn ngữ nào cũng có một hàm random kiểu như vậy.srand(time(NULL))
thì cung cấp seed dựa trên thời gian hiện thời. Mà chương trình thế này thì chạy nhanh quá, 100 vòng lặp không tốn đến 1ms nênsrand(time(NULL))
100 lần giống hệt nhau. Seed giống nhau thìrand()
cũng giống nhau luôn.Các xử lý là đưa seed ra khỏi vòng lặp, tức là đưa lệnh
srand(time(NULL));
lên trước vòng for.hay quá bác ơi =)))))