"Enter"a basıp içeriğe geçin

C Dilinde Rand() işlevi – Linux İpucu

C dilinde, rand () iş için kullanıldı Fantom Sayı Üreteci (PRNG). Rand() işlevi tarafından üretilen rasgele sayılar gerçekten rasgele değildir. Döngüsel olarak tekrar eden bir dizidir, ancak periyot o kadar büyüktür ki onu görmezden gelebiliriz. NS rand () İşlev, bir sonraki rasgele sayıyı ve bir sonraki yeni çekirdeği hesaplamak için kullanılan ilk değeri hatırlayarak çalışır. Bu yazıda, rastgele sayıların nasıl üretilebileceğini ayrıntılı olarak tartışacağız. rand () İşlev. Öyleyse başlayalım!

Ana dosya:

stdlib.h

sözdizimi:

int satır (boş)

dönüş değerleri:

Bu işlev, dizideki bir sonraki sözde rasgele sayıyı döndürür. Sayı dizisinin aralık değeri 0 ile RAND_MAX arasındadır. RAND_MAX, içinde tanımlanan bir makrodur. stdlib.h Değeri maksimum değer olan bir başlık dosyası, Rand() işlevi kullanılarak döndürülebilir. RAND_MAX’ın değeri, C kitaplıklarına bağlı olarak 32767’den büyük ama küçük değil.

//Örnek1.c

#birleştirmek için
#birleştirmek için

int o()
{

int Kahve;

Baskı(10 rastgele sayı =>\n);

için(Kahve=0;Kahve<10;Kahve++)
{
Baskı(“%NS”VeKoştu());
}

Baskı(\n);
dönüş0;
}


Örnek 1.c’de, for döngüsünün her yinelemesinde Rand()’ı çağırır ve işlevin dönüş değerini yazdırırız. Rand() işlevinin değer dizisi, programı her çalıştırdığımızda aynıdır. Varsayılan olarak, rand işlev çekirdeği 1’e ayarlanır.

Rand işlevi için çekirdeği şu şekilde ayarlayabiliriz: srand() İşlev. Tohum yalnızca bir kez ve ilk seferden önce ayarlanabilir. rand () fonksiyon çağrısı

srand() işlevi:

Ana dosya:

stdlib.h

sözdizimi:

int srand (işaretsiz int tohum)

Argümanlar:

Bu işlev bir bağımsız değişken alır

tohum: Yeni bir sözde rasgele sayılar dizisinin başlangıcı olarak kullanılan bir tamsayı değeri.

dönüş değerleri:

hiç kimse

//Örnek2.c

#birleştirmek için
#birleştirmek için
#birleştirmek için

int o()
{

int Kahve;

Sarand(zaman(0));

Baskı(10 rastgele sayı =>\n);

için(Kahve=0;Kahve<10;Kahve++)
{
Baskı(“%NS”VeKoştu());
}

Baskı(\n);
dönüş0;
}


Örnek 2.c’de, rand() işlevi tarafından oluşturulan rasgele sayı dizisinin ilk çekirdeğini ayarlamak için srand() işlevini kullandık. Program her başlatıldığında farklı bir kuyruk oluşturulur. srand() içinde, time(0) fonksiyonu (bildirilen zaman başlık.) temel dosya olarak. Bu (0) işlevi, çağdan (00:00:00, 1 Ocak 1970) bu yana geçen saniye sayısını döndürür. Programı aynı saniyede çalıştırırsanız, bu yine de aynı dizileri üretebilir.

// Örnek 3.c

#birleştirmek için
#birleştirmek için
#birleştirmek için

int o()
{

int Kahve;

Sarand(zaman(0));

Baskı(1’den 10’a kadar 10 rastgele sayı =>\n);

için(Kahve=0;Kahve<10;Kahve++)
{
Baskı(“%NS”Ve(Koştu()%10)+1);
}

Baskı(\n);
dönüş0;
}


Örnek 3.c’de 1 ile 10 arasındaki rasgele sayıların nasıl üretilebileceğini gördük.

// Örnek 4.c

#birleştirmek için
#birleştirmek için
#birleştirmek için

int o()
{

int KahveVeMaksimumVedk;

Baskı(“Minimum değeri girin =>”);
tarama yapıldı(“%NS”Ve &dk);
Baskı(“Maksimum değeri girin =>”);
tarama yapıldı(“%NS”Ve &Maksimum);

eğer(dk>Maksimum)
{
Baskı(Minimum değer maksimum değerden büyük\n);
dönüş0;
}

Sarand(zaman(0));

Baskı(%d ile %d arasında 10 rasgele sayı =>\nVedkVeMaksimum);

için(Kahve=0;Kahve<10;Kahve++)
{
Baskı(“%NS”Ve(Koştu()%(Maksimum dk +1))+ dk);
}

Baskı(\n);
dönüş0;
}


Example4.c’de kullanıcıdan aralığı alıyoruz ve bu aralık içinde rastgele bir sayı üretiyoruz. formül – formül: Rand()% (maks – min +1)) + min

// Örnek 5.c

#birleştirmek için
#birleştirmek için
#birleştirmek için

int o()
{

int Kahve;

Sarand(zaman(0));

Baskı(0.0’dan 1.0’a kadar 10 rasgele sayı =>\n);

için(Kahve=0;Kahve<10;Kahve++)
{
Baskı(“%F”Ve((Batmadan yüzün)Koştu()/RAND_MAX));
}

Baskı(\n);
dönüş0;
}


Örnek 5.c’de, 0.0’dan 1.0’a kadar rasgele sayıları nasıl üretebileceğimizi gördük. formül – formül: (varlık)rand()/RAND_MAX)

// Örnek 6.c

#birleştirmek için
#birleştirmek için
#birleştirmek için

int o()
{

int Kahve;
Batmadan yüzün MaksimumVedk;

Baskı(“Minimum değeri girin =>”);
tarama yapıldı(“%F”Ve &dk);
Baskı(“Maksimum değeri girin =>”);
tarama yapıldı(“%F”Ve &Maksimum);

eğer(dk>Maksimum)
{
Baskı(Minimum değer maksimum değerden büyük\n);
dönüş0;
}

Sarand(zaman(0));

Baskı(%f ile %f arasında 10 rasgele sayı =>\nVedkVeMaksimum);

için(Kahve=0;Kahve<10;Kahve++)
{
Baskı(“%F”Vedk +((Batmadan yüzün)Koştu()/(RAND_MAX/(Maksimum dk))));
}

Baskı(\n);
dönüş0;
}


Example6.c’de, kullanıcıdan aralığı alırız ve bu aralık içinde (her ikisi de dahil) rastgele bir sayı üretiriz. formül – formül: min + ((kayan) rand() / (RAND_MAX / (maks – min)))

Çözüm:

Bu yazımızda rastgele sayıların nasıl üretilebileceğini öğrendik. rand () E srand() İşlev. Rand işlevi tarafından üretilen rasgele sayıların kalitesi hakkında hiçbir garanti yoktur, ancak normal kullanım için yeterince iyidir.

Diğer gönderilerimize göz at

[wpcin-random-posts]

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir