Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sahte bir sayı oluşturur. Bu işlevin program aracılığıyla daha güvenli bir sürümü mevcuttur; bkz rand_s. . tarafından rand oluşturulan sayılar şifreleme açısından güvenli değildir. Daha kriptografik olarak güvenli rastgele sayı oluşturma için veya içindeki <random>C++ Standart Kitaplığı'nda bildirilen işlevleri kullanınrand_s.
Sözdizimi
int rand(void);
Dönüş değeri
rand yukarıda açıklandığı gibi sahte bir sayı döndürür. Hata döndürme yok.
Açıklamalar
İşlev, rand 0 RAND_MAX ile (32767) aralığında bir sözde tamsayı döndürür. srand işlevini kullanarak çağrısından randönce pseudorandom-number oluşturucusunun tohumunu oluşturun.
rand İşlev iyi bilinen bir dizi oluşturur ve şifreleme işlevi olarak kullanmak için uygun değildir. Daha kriptografik olarak güvenli rastgele sayı oluşturma için veya içindeki <random>C++ Standart Kitaplığı'nda bildirilen işlevleri kullanınrand_s.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
rand |
<stdlib.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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
Ayrıca bkz.
Matematik ve kayan nokta desteği
srand
rand_s
C++ <random> kitaplığı