Ngẫu nhiên 0,1 C++

Đối với trình tạo số ngẫu nhiên trong C, chúng tôi sử dụng các hàm rand() và srand() có thể tạo các số ngẫu nhiên giống nhau và khác nhau khi thực thi

Phạm vi

  • Bài viết này trình bày bộ tạo số ngẫu nhiên trong lập trình C
  • Bài viết này đề cập đến các hàm rand() và srand() được sử dụng trong trình tạo số ngẫu nhiên trong C
  • Bài viết này cũng đề cập đến cách tạo số float ngẫu nhiên và các chương trình để tạo số trong một phạm vi nhất định

Trình tạo số giả ngẫu nhiên (PRNG) trong C++

Một chương trình trong đó số bắt đầu chuyển đổi được gọi là số gốc được chuyển đổi thành một số khác với số gốc được gọi là Trình tạo số giả ngẫu nhiên (PRNG)

Các hàm rand() và srand() là các hàm sẵn có trong C được sử dụng để tạo số ngẫu nhiên trong C/C++

rand()

Hàm rand() được sử dụng để tạo số ngẫu nhiên trong C trong một phạm vi nhất định có thể lấy các giá trị từ [0, Range_max]. Giá trị Range_max có thể là một số nguyên

cú pháp

Nó không nhận bất kỳ tham số nào và nó trả về các số ngẫu nhiên

srand()

Hàm srand() dùng để khởi tạo điểm bắt đầu i. e. , giá trị của hạt. Nếu srand() không được khởi tạo thì giá trị gốc trong hàm rand() được đặt là srand(1)

cú pháp

srand lấy một tham số được sử dụng để đặt giá trị bắt đầu của trình tạo số ngẫu nhiên. không có giá trị quay lại

srand được gọi là set seed cho hàm rand()

Sự khác biệt giữa rand() và srand() với ví dụ

rand()srand() Nó được sử dụng để tạo số ngẫu nhiên trong C. Nó được sử dụng để khởi tạo giá trị hạt nhân của PRNG. Nó không nhận bất kỳ tham số nào. Nó nhận giá trị khởi tạo bộ tạo số ngẫu nhiên. Nó có thể được gọi bất kỳ số lần người dùng muốn. Nó chỉ được gọi một lần để xem số ngẫu nhiên. Trả về số ngẫu nhiên bất cứ khi nào được gọiKhông có giá trị trả về trong srand()

Ví dụ về hàm rand()

Chương trình - Tạo số ngẫu nhiên bằng hàm rand() trong C

#include 
#include
int main() {
   printf("%d", rand());
   return 0;
}

đầu ra

Trong kết quả trên, cùng một số được tạo sau mỗi lần thực hiện, đó là do giá trị của srand() là cố định, là 1

Để tạo các số ngẫu nhiên khác nhau, chúng tôi sẽ sử dụng srand(time()). Chúng tôi sử dụng thư viện thời gian ở đây vì nó sẽ thay đổi giá trị của số được tạo trên mỗi lần thực hiện

Ví dụ về hàm srand()

Chương trình - Để tạo số ngẫu nhiên trên mỗi lần thực hiện bằng cách sử dụng srand() trong C

#include 
#include
#include
int main() {
   srand(time(0));
   printf("%d", rand());
   return 0;
}

đầu ra

Các số ngẫu nhiên được tạo thay đổi trên mỗi lần thực hiện vì chúng tôi đang sử dụng dấu thời gian UNIX, hàm thời gian theo thời gian. thư viện h

Phao ngẫu nhiên C++

Như chúng ta có thể thấy từ các kết quả trên, giá trị được tạo trên mỗi lần thực hiện là một giá trị số nguyên có thể rất dài

Vì vậy, chúng ta có thể sử dụng giá trị float hoặc double

Để làm điều đó chúng ta có thể sử dụng cú pháp sau

((float)rand()/(float)(RAND_MAX))

Chương trình tạo số float ngẫu nhiên

#include 
#include 
#include 

int main(int argc, char *argv[]) {
  srand((unsigned int) time(NULL));
  printf("%f\n", ((float) rand() / (float)(RAND_MAX)));
}

đầu ra

Trong kết quả, chúng ta có thể thấy rằng chúng ta nhận được một số float ngẫu nhiên

Số ngẫu nhiên C++ từ 0 đến 1

Chương trình tạo các số ngẫu nhiên khác nhau giữa 0 và 1

#include 
#include 
#include 

int main(int argc, char *argv[]) {
  srand((unsigned int) time(NULL));
  for (int i = 0; i < 4; i++)
    printf("%f\n", ((float) rand() / (float)(RAND_MAX)));
  return 0;
}

đầu ra

0.331843
0.130133
0.674924
0.039533

Trong kết quả trên, chúng ta có thể thấy rằng các số ngẫu nhiên khác nhau được tạo từ 0 đến 1

Số ngẫu nhiên C++ từ 1 đến 10

Chương trình chỉ sử dụng hàm rand()

#include 
#include 

int main(void) {
  for (int i = 0; i < 10; i++)
    printf(" %d ", rand());

  return 0;
}

Chương trình trên sẽ cho cùng một kết quả trên mỗi lần thực hiện. Các số được tạo ngẫu nhiên sẽ giữ nguyên

Trình tạo số ngẫu nhiên trong C++ được sử dụng để tạo số ngẫu nhiên bằng mã. Đó là một cách tuyệt vời để thêm tính ẩn danh và bảo mật cho thế giới lập trình C++. Ý tưởng là chọn ngẫu nhiên bất kỳ số nào từ một phạm vi được chỉ định và hiển thị nó trên bảng điều khiển. Trong bài viết này, bạn sẽ khám phá mọi thứ về trình tạo số ngẫu nhiên trong C++, cùng với một vài ví dụ

Chương trình sau đại học. Phát triển web đầy đủ ngăn xếp

hợp tác với Caltech CTME Đăng ký ngay

Ngẫu nhiên 0,1 C++

Trình tạo số ngẫu nhiên được sử dụng để làm gì?

Hãy xem xét ví dụ này, bạn đang tạo một trò chơi xúc xắc. Trò chơi có thể thực hiện được không nếu cùng một số xuất hiện mỗi khi bạn tung xúc xắc? . Đó là nơi các trình tạo số ngẫu nhiên xuất hiện. Họ có thể tạo các sự kiện ngẫu nhiên và hiển thị một số ngẫu nhiên từ một phạm vi giá trị được chỉ định

Với yếu tố ngẫu nhiên, bạn có thể tạo mã trò chơi súc sắc và nhiều chương trình khác như vậy yêu cầu tạo số ngẫu nhiên. Tuy nhiên, ngôn ngữ lập trình hoặc máy tính không thể tạo ra các số ngẫu nhiên thuần túy. Do đó, C++ và các ngôn ngữ lập trình khác sử dụng bộ tạo số giả ngẫu nhiên

Trình tạo số giả ngẫu nhiên (PRNG) trong C++ là gì?

Trình tạo số giả ngẫu nhiên là trình giả lập của trình tạo số ngẫu nhiên trong C++. Điều này có nghĩa là trình tạo số giả ngẫu nhiên cho phép bạn tạo cảm giác ngẫu nhiên trong C++. Nó được gọi là PRNG vì mọi thứ trong máy tính đều là nhị phân 0 và 1. Do đó, việc tạo ra các sự kiện ngẫu nhiên trong máy tính là không thể

Khi trình tạo số giả ngẫu nhiên sử dụng các phép toán, nó đảm bảo rằng giá trị mới không giống với giá trị gốc. Với điều này, chương trình có thể tạo ra các số dường như là ngẫu nhiên. C++ đi kèm với một trình tạo số giả ngẫu nhiên được xây dựng sẵn cung cấp hai hàm. rand() và srand() để tạo số ngẫu nhiên trong C++

Hàm Rand và Srand trong C++

Rand và srand là hai hàm được xác định trước để trợ giúp với trình tạo số ngẫu nhiên trong C++. Dưới đây là nguyên mẫu, tham số, giá trị trả về, mô tả và ví dụ về cả hai hàm

Rand()

  • Nguyên mẫu. int rand();
  • Thông số. Không có bất kỳ tham số nào
  • Giá trị trả về. Trả về một giá trị số nguyên từ 0 đến RAND_MAX
  • Description: This function generates and returns the next random number between 0 and RAND_MAX, a constant value described in the header file and set to 32767
  • Ví dụ. Chúng ta sẽ sử dụng hàm rand() trong C++ để tạo một số ngẫu nhiên trong ví dụ này

#include

#include

sử dụng không gian tên std;

int main() {

int RandomNumber = rand();

cout << Số ngẫu nhiên << endl;

}

đầu ra

Ngẫu nhiên 0,1 C++

đầu ra

Ngẫu nhiên 0,1 C++

Như bạn có thể thấy, kết quả đầu ra giống nhau cho cả hai lần thực hiện. Bạn sẽ hiểu lý do đằng sau nó sau trong bài viết này

Khóa học mới. Phát triển Full Stack cho người mới bắt đầu

Tìm hiểu Git Command, Angular, NodeJS, Maven và hơn thế nữa Đăng ký ngay

Ngẫu nhiên 0,1 C++

Srand()

  • Nguyên mẫu. void srand (hạt int không dấu);
  • Thông số. Một giá trị số nguyên xác định hạt giống (giá trị ban đầu) được sử dụng bởi trình tạo số giả ngẫu nhiên trong C++
  • Giá trị trả về. Không có
  • Sự miêu tả. Hàm srand() khởi tạo phạm vi hoặc chuỗi số giả ngẫu nhiên bằng cách chuyển giá trị hạt giống. Khi bạn cung cấp giá trị hạt giống bằng hàm srand(), nó sẽ bắt đầu trình tạo số ngẫu nhiên trong C++ từ thời điểm đó. Giá trị hạt giống này làm cho đầu ra trông ngẫu nhiên. Không có giá trị, đầu ra của hàm rand() sẽ luôn giống nhau bất cứ khi nào chúng ta chạy chương trình
  • Ví dụ. Đối với ví dụ này, bạn sẽ sử dụng hàm srand() và chuyển thời gian hệ thống làm giá trị gốc để tạo đầu ra khác nhau trên mỗi lần thực thi

#include

#include

sử dụng không gian tên std;

int main(){

// Sử dụng thời gian hệ thống làm giá trị gốc

srand((unsigned) time(NULL));

int my_rand = rand();

// In đầu ra

cout<

trả về 0;

}

đầu ra

Ngẫu nhiên 0,1 C++

đầu ra

Ngẫu nhiên 0,1 C++

Như bạn có thể thấy trong kết quả đầu ra, kết quả cả hai lần đều khác nhau

Tầm quan trọng của Giá trị hạt giống trong Trình tạo số ngẫu nhiên trong C++

Giá trị hạt giống là chìa khóa để nhận được một đầu ra khác nhau mỗi khi bạn chạy trình tạo số ngẫu nhiên trong C++. Vì trình tạo số giả ngẫu nhiên thực hiện các phép toán nên đầu ra sẽ giống nhau nếu giá trị gốc không đổi. Do đó, đầu ra cho cả hai lần thực thi đều giống nhau khi bạn chỉ sử dụng hàm rand() mà không cung cấp giá trị gốc

Giải pháp để có được sản lượng mới là sử dụng hạt giống tươi mỗi lần. Giải pháp tốt nhất cho vấn đề này là sử dụng thời gian hệ thống làm giá trị gốc. Đó là bởi vì thời gian thay đổi từng giây. Do đó, bạn đã sử dụng thời gian làm giá trị gốc trong ví dụ trước để nhận được một đầu ra khác nhau mỗi lần

Tạo Trình tạo số ngẫu nhiên hoàn hảo trong C++

Bây giờ, bạn sẽ tạo một trình tạo số ngẫu nhiên hoàn hảo trong C++ bằng cách sử dụng thời gian hệ thống làm giá trị gốc giống như bạn đã làm với hàm srand(). Nhưng lần này, bạn sẽ sử dụng cả hai hàm srand và rand để tạo một tập hợp các giá trị khác nhau mỗi khi bạn chạy chương trình

#include

#include

#include

int main(void){

// Sử dụng thời gian hệ thống hiện tại làm giá trị gốc

srand(thời gian(0));

for(int x = 0; x<3; x++)

printf(" %d ", rand());

trả về 0;

}

đầu ra

Ngẫu nhiên 0,1 C++

Khóa học Full Stack Web Developer

Để trở thành chuyên gia về MEAN Stack Xem khóa học

Ngẫu nhiên 0,1 C++

đầu ra

Ngẫu nhiên 0,1 C++

Sử dụng Trình tạo số ngẫu nhiên trong C++ để tạo số float ngẫu nhiên

Hàm rand() trả về một chuỗi các giá trị. Bạn có thể sử dụng kiểu truyền chuỗi để tạo số float hoặc double ngẫu nhiên. Ví dụ sau minh họa điều tương tự bằng cách tạo một số float ngẫu nhiên giữa 2. 2 và 4. 4

#include

#include

#include

sử dụng không gian tên std;

int main(){

srand(thời gian(0)); .     

cout<<"Số float ngẫu nhiên được tạo giữa 2. 2 và 4. 4. “<

        cout<<2.2 + static_cast (rand()) / ( static_cast (RAND_MAX/(4.4-2.2))); 

trả về 0;

}

đầu ra

Ngẫu nhiên 0,1 C++

Cách tạo số ngẫu nhiên từ 0 đến 1 bằng trình tạo số ngẫu nhiên trong C++?

Bạn có thể sử dụng hàm rand() và srand để tạo các số từ 0 đến 1. Vì các số từ 0 đến 1 sẽ ở dạng thập phân, nên bạn phải chuyển kết quả thành số float hoặc double, giống như bạn đã làm trong ví dụ trước. Nếu bạn không đánh máy kết quả, nó sẽ được chuyển đổi thành một số nguyên; . Đoạn mã sau tạo một bộ ba số ngẫu nhiên trong khoảng từ 0 đến 1

#include

#include

sử dụng không gian tên std;

int main(){

cout<<"Số ngẫu nhiên giữa 0 và 1. “<

srand( (không dấu)thời gian( NULL ) );

cho (int x = 0; x < 3; x++)

{

// Gõ ép kết quả thành float

cout << (float) rand()/RAND_MAX << endl;

}

trả về 0;

}

đầu ra

Ngẫu nhiên 0,1 C++

Đào tạo chứng chỉ Java MIỄN PHÍ

Tìm hiểu từ A-Z về Java hơn bao giờ hết Đăng ký ngay

Ngẫu nhiên 0,1 C++

Cách tạo số ngẫu nhiên từ 1 đến 10?

Bạn cũng có thể sử dụng trình tạo số ngẫu nhiên trong C++ để tạo các số từ 1 đến 10. Bạn có thể làm điều này bằng cách sử dụng toán tử mô đun. Chương trình sau đây cho thấy việc sử dụng toán tử mô đun để tạo các số ngẫu nhiên trong khoảng từ 1 đến 10

#include

#include

#include

sử dụng không gian tên std;

int main(){

// Khởi tạo bộ tạo số ngẫu nhiên trong C++

srand(thời gian(0));

cout<<"Số ngẫu nhiên từ 1 đến 10. “<

for(int x=0;x<5;x++)

cout << 1+ (rand() % 10) <<"\n";

trả về 0;

}

đầu ra

Ngẫu nhiên 0,1 C++

Cách tạo số ngẫu nhiên trong C++ trong phạm vi

Tương tự như 1 và 10, bạn có thể tạo các số ngẫu nhiên trong bất kỳ phạm vi nào bằng toán tử mô đun. Chẳng hạn, để tạo các số từ 1 đến 100, bạn có thể viết int random = 1+ (rand() % 100). Bạn có thể biểu diễn cú pháp chung của phương trình như

int ngẫu nhiên = offset + (rand() % phạm vi);

Trong cú pháp trên

  • bù lại. Xác định điểm bắt đầu của phạm vi
  • phạm vi. Số giá trị có thể có giữa đầu và cuối của phạm vi bao gồm cả hai số. Chẳng hạn, đối với phạm vi từ 100 đến 300, phần bù sẽ là 100 và phạm vi sẽ là 201

Bây giờ, hãy xem một ví dụ để tạo các số ngẫu nhiên trong khoảng từ 100 đến 300, như đã đề cập ở trên. Bạn sẽ sử dụng vòng lặp for trong C++ để tạo ra 10 số ngẫu nhiên trong phạm vi đã cho

#include

#include

sử dụng không gian tên std;

int main(){

srand((unsigned) time(NULL));

// Sử dụng vòng lặp for

for(int x=0; x<10; x++){

// Offset 100 và phạm vi 201 để tạo các số ngẫu nhiên trong khoảng từ 100 đến 300

int ngẫu nhiên = 100 + (rand()% 201);

cout<

}

trả lại 1;

}

đầu ra

Ngẫu nhiên 0,1 C++

Đây là cách để có được công việc nhà phát triển phần mềm hàng đầu

Phát triển ngăn xếp đầy đủ-MEAN Chương trình khám phá

Ngẫu nhiên 0,1 C++

Các ứng dụng của bộ tạo số ngẫu nhiên trong C++

Bạn có thể thắc mắc tại sao bạn cần tạo số ngẫu nhiên, ngoại trừ một lúc tạo trò chơi xúc xắc? . Một số ứng dụng chính là

Trò chơi

Như bạn đã thấy ở đầu bài viết, bộ tạo số ngẫu nhiên rất quan trọng trong một số trò chơi, chẳng hạn như trò chơi súc sắc. Bên cạnh trò chơi xúc xắc, bạn cũng có thể sử dụng nó trong các trò chơi khác yêu cầu tính ngẫu nhiên. Chẳng hạn, bạn có thể sử dụng nó để tạo các trò chơi bài để phân phối các thẻ ngẫu nhiên hoặc trò chơi đố vui để đặt các câu hỏi độc đáo mỗi lần

mật mã

Bên cạnh các trò chơi, bạn cũng có thể sử dụng trình tạo số ngẫu nhiên C++ cho mục đích bảo mật. Tính ngẫu nhiên và ẩn danh được coi là rất quan trọng trong mật mã và các hình thức bảo mật khác. Bạn có thể sử dụng trình tạo số ngẫu nhiên để tạo khóa và nonce

thuật toán ngẫu nhiên

Các thuật toán ngẫu nhiên hóa đang thêm yếu tố ngẫu nhiên vào các thuật toán đã được xác định. Điều này được thực hiện để tăng hiệu suất và nhận được kết quả tốt hơn bằng cách đánh đổi xác suất thành công

Sự khác biệt giữa Rand() và Srand() là gì?

Có nhiều sự khác biệt giữa hàm rand() và srand(). Bảng minh họa dưới đây xác định một số khác biệt đáng kể giữa hai

rand()

srand()

Hàm tạo số ngẫu nhiên

Seeds trình tạo số ngẫu nhiên trong C++

Được gọi bao nhiêu lần tùy thích để tạo số ngẫu nhiên

Chỉ được gọi một lần để khởi tạo trình tạo số ngẫu nhiên

Không chấp nhận một cuộc tranh luận

Chấp nhận một giá trị số nguyên được sử dụng làm hạt giống

Trả về dãy số ngẫu nhiên

Không trả lại gì

Tiếp cận hơn 150 giờ đào tạo do người hướng dẫn, hơn 20 công cụ và kỹ năng theo yêu cầu, 10 dự án kết thúc bài học và 4 dự án kết thúc giai đoạn, v.v. Tìm hiểu cách xây dựng một ứng dụng end-to-end với các tính năng thú vị trong Full Stack Web Developer - Chương trình MEAN Stack của chúng tôi. Giữ chỗ của bạn NGAY HÔM NAY

kết thúc

Trong bài viết này, bạn đã tìm hiểu về bộ tạo số ngẫu nhiên trong C++. Giờ đây, bạn có thể sử dụng các hàm rand() và srand() để tạo các giá trị ngẫu nhiên và đưa chúng vào sử dụng trong nhiều ứng dụng như trò chơi, mật mã và thuật toán ngẫu nhiên. Bây giờ bạn đã biết mọi thứ về trình tạo số ngẫu nhiên trong C++, đã đến lúc tìm hiểu về các nguyên tắc cơ bản khác của lập trình C++

Bạn có thể tham khảo Hướng dẫn C++ cho người mới bắt đầu của Simplilearn. Hướng dẫn bao gồm các khái niệm cơ bản như vòng lặp for và mảng để nắm bắt tốt các nguyên tắc cơ bản. Nếu bạn muốn trau dồi kỹ năng lập trình của mình, bạn có thể truy cập nền tảng SkillUp của chúng tôi. Nền tảng này cung cấp một số khóa học miễn phí để giúp bạn học hỏi, phát triển và làm quen với nhiều ngôn ngữ phát triển, bao gồm cả C++

Bạn cũng có thể chọn tham gia Khóa học Phát triển Web Full-Stack nếu bạn đang muốn theo đuổi sự nghiệp trong lĩnh vực phát triển. Khóa học cung cấp vài giờ tài liệu học tập tự học và học tập ứng dụng. Bạn cũng sẽ nhận được chứng chỉ sau khi hoàn thành khóa học để cải thiện cơ hội nhận được một đề xuất công việc béo bở. Nói một cách đơn giản, khóa học rất phù hợp trong việc giúp bạn vượt trội trong lĩnh vực phát triển web

Có bất kỳ câu hỏi cho chúng tôi?

Giới thiệu về tác giả

Ngẫu nhiên 0,1 C++
Ravikiran AS

Ravikiran A S làm việc với Simplilearn với tư cách là Nhà phân tích nghiên cứu. Anh ấy là một người đam mê nhiệt tình, luôn săn lùng những công nghệ mới nhất. Anh ấy thành thạo Ngôn ngữ lập trình Java, Dữ liệu lớn và các Khung dữ liệu lớn mạnh mẽ như Apache Hadoop và Apache Spark

Làm cách nào để tạo số ngẫu nhiên 0 hoặc 1 trong C?

int n = rand() % 1 + 0; sẽ luôn tạo ra 0 vì rand() % 1 cho 0 ( rand()%a tạo ra số từ 0 đến a- .

Làm cách nào để tạo số ngẫu nhiên 1 hoặc 2 trong C?

Hàm rand() và srand() được sử dụng để tạo số ngẫu nhiên trong ngôn ngữ lập trình C/C++. Hàm rand() cho kết quả như nhau trong mỗi lần thực hiện vì giá trị srand() được cố định là 1. Nếu chúng ta sử dụng chức năng thời gian từ thời gian.

Số ngẫu nhiên trong C là gì?

Chức năng thư viện C - rand() . RAND_MAX là một hằng số có giá trị mặc định có thể khác nhau giữa các lần triển khai nhưng nó được cấp ít nhất là 32767