Bagikan melalui


rand

Menghasilkan angka pseudorandom. Versi fungsi ini yang lebih aman secara terprogram tersedia; lihat rand_s. Angka yang dihasilkan oleh rand tidak aman secara kriptografis. Untuk pembuatan angka acak yang lebih aman secara kriptografis, gunakan rand_s atau fungsi yang dideklarasikan dalam Pustaka Standar C++ di <random>.

Sintaks

int rand(void);

Nilai hasil

rand mengembalikan angka pseudorandom, seperti yang dijelaskan di atas. Tidak ada pengembalian kesalahan.

Keterangan

Fungsi mengembalikan rand bilangan bulat pseudorandom dalam rentang 0 hingga RAND_MAX (32767). srand Gunakan fungsi untuk menyemai generator nomor pseudorandom sebelum memanggil rand.

Fungsi ini rand menghasilkan urutan terkenal dan tidak sesuai untuk digunakan sebagai fungsi kriptografi. Untuk pembuatan angka acak yang lebih aman secara kriptografis, gunakan rand_s atau fungsi yang dideklarasikan dalam Pustaka Standar C++ di <random>.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Rutin Header yang diperlukan
rand <stdlib.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_rand.c
// This program seeds the random-number generator
// with a fixed seed, then exercises the rand function
// to demonstrate generating random numbers, and
// random numbers in a specified range.

#include <stdlib.h> // rand(), srand()
#include <stdio.h> // printf()

void SimpleRandDemo(int n)
{
    // Print n random numbers.
    for (int i = 0; i < n; i++)
    {
        printf("  %6d\n", rand());
    }
}

void RangedRandDemo(int range_min, int range_max, int n)
{
    // Generate random numbers in the interval [range_min, range_max], inclusive.

    for (int i = 0; i < n; i++)
    {
        // Note: This method of generating random numbers in a range isn't suitable for
        // applications that require high quality random numbers.
        // rand() has a small output range [0,32767], making it unsuitable for
        // generating random numbers across a large range using the method below.
        // The approach below also may result in a non-uniform distribution.
        // More robust random number functionality is available in the C++ <random> header.
        // See https://learn.microsoft.com/cpp/standard-library/random
        int r = ((double)rand() / RAND_MAX) * (range_max - range_min) + range_min;
        printf("  %6d\n", r);
    }
}

int main(void)
{
    // Seed the random-number generator with a fixed seed so that
    // the numbers will be the same every time we run.
    srand(1792);

    printf("Simple random number demo ====\n\n");
    SimpleRandDemo(10);
    printf("\nRandom number in a range demo ====\n\n");
    RangedRandDemo(-100, 100, 100000);
}```

```Output
Simple random number demo ====

    5890
    1279
   19497
    1207
   11420
    3377
   15317
   29489
    9716
   23323

Random number in a range demo ====

     -82
     -46
      50
      77
     -47
      32
      76
     -13
     -58
      90

Baca juga

Dukungan matematika dan titik mengambang
srand
rand_s
Pustaka C++ <random>