C de Rasgele Sayı Üretmek

11
May

Merhaba.

Bugun c ve Sistem programcıları derneğinde Necati ergin tarafından aldığımız derste ise c de rasgele sayı üretmeyi işledik. kodu aşağıda veriyorum.

kodda önişlemci komutu olarak <time.h> i ve <stlib.h> ı extradan ekliyoruz. tabili printf kullandığımızdan <stdio.h> başlık dosyasınıda ekliyoruz.

alttaki size 100 ile kaç farklı rastgele sayı üreteceğinizi seçiyorsunuz. ilgiç yan ise az öncede bahsettiğim <time.h> başlık dosyası. Bu dosya programı her açtığınızda rastgele sayı üretilmesini sağlıyor.

Şöyle yani; Mesela normalde rastgele sayı üretmek isteseniz, örnek veriyorum 465466545 sayısının karekökünü alıp ortadan 4 rakamı çekerdiniz. ancak bu alogritimada (kitap yanımda değil tam hatırlamıyorum rakam veremeyeceğim ama) belli bir rakamdan başlıyor. ancak <time.h> başlık dosyasını ekleyip random kısaltması olan rand komutusu srand olarak kullanıpta kodu aşağıdaki gibi derlediğimizde

srand((unsigned)time(0));

rasgele sayı üretiliyor. Peki time zamanla ne alakası var? Hemen söyliyeyim. Zaman bilgisayarın standart saati olan 1-1-1970 yani C nin oluşum tarihini işaret ediyor. burdaki saniye o günden bu güne kadar olan saniyeyi varsayıyor. Eğer program saniyede 2 kez çalıştırılmaz ise, program her açıldığından rastgele sayı üretimi geçekleşiyor.

Fazla uzatmıyor kodu veriyorum;

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SIZE	100

int main()
{
int a[SIZE];
int k;
int sum = 0;

srand((unsigned)time(0));

for (k = 0; k < SIZE; ++k)
a[k] = rand() % 1000;
//////////////////////////////////////
for (k = 0; k < SIZE; ++k)
printf("%3d ", a[k]);
printf("n*******************************************************************************n");

for (k = 0; k < SIZE; ++k)
sum += a[k];
printf("toplam = %dn", sum);

return 0;
}
  1. mustafa 19 Ağustos 2012

    arkadaşlar bana tanımladığım sitrink faonksyonunun içinde raskele seçmesi gereki onu nasıl yapcaz

  2. Caner 16 Ekim 2011

    teşekkür ederim Alican

    Allah sana işlerini kolaylıkla yapabileceğin hayırlı bir ömür versin.

  3. ali 18 Nisan 2010

    Bu yöntem ile uniform dağılım elde edilebiliyor sanıyorum. Gauss dağılımlı rastgele sayı üretmenin bir yolu var mı C'de?

  4. bilge 01 Aralık 2009

    teşekkür ederim ödevimde çok işime yarıycak bu random number generating codes i 😀