Visual C# – Rasgele Sayı Üretme

Visual C# ile Rasgele Sayı Üretme

Rasgele numaralar; bir oyun geliştimende, bir dizi içerikten şanslı olanı seçmende, ASP.NET sitende rasgele resimler göstermende ve bunun gibi birçok şekilde örnekleyebileceğimiz onlarca yerde işimize yarayacak temel fonksiyonlardan biridir. Güncel modern programlama dillerinde kolayca rasgele sayılar üretebiliriz. Nacak şöyle de bir karanlık bir gerçek varki: bilgisayarların ürettiği rasgele sayılar aslında gerçekten rasgele değildir. Onlar yalancı-sözde rasgele sayılardır. bu sayılar karmaşık bir algoritma sonucu üretilir. Ne yazikki uzun yıllardır bilim rasgele sayı üretmenin yolunu bulamadı. Halen rasgele sayılar şüpheli. Bazı bilgisayar uzmanları günümüz popüler programlama dilleriyle oluşturulmuş rasgele numaraları tahmin edebilir programlar geliştirebiliyorlar. O kompleks algoritmalar çözülebiliyor.

Lafı fazla uzatmandan tartışmalardan uzak C# ile nasıl rasgele sayılar üretebileceğimizi yazalım :

Random randNum = new Random();
randNum.Next();

Hepsi bu. Bir Random nesnesi üretmek (System.Random sınıfında) ve Next() methodunu çağırmak, bu bize negatif olmayan (pozitif) bir integer türünde eğer döndürecektir.

Rasgele bir sayı ürettiğinizde elde ettiğiniz sayı çok büyük değerde olacaktır. >Bunu belli bir aralık içersine sığdırabilirsiniz. Örneğin 108 insan arasında rasgele birini seçme işlemi için aşağıdaki kodu üretmeniz lazım. Bu kad sayesinde 108 sayısından büyük bir sayı üretilmeyecektir.

Random randNum = new Random();
randNum.Next(108); //  En büyük 108

Daha önce de söylediğimiz gibi pozitif olma koşulu sayesinde en küçük “0” en büyük “108” değeri döner. Ancak “0” rakamını istemiyorsak yazacağımız kod aşağıdaki gibidir. aşğaıdaki kod ile “1” ile “108” arasında bir sayı üretilecektir.

Random randNum = new Random();
randNum.Next(1, 108); // En büyük 108 en küçük 1

Bazı özel durumlar:

Random randNum = new Random(1986);
randNum.Next(); // Bu her zaman 564610494 sayısını döndürür.

Yine aynı şekilde :

Random randNum = new Random(1986);
randNum.Next(); // Bu her zaman 564610494 sayısını döndürür.
randNum.Next(); // Bu her zaman 1174029081 sayısını döndürür.
randNum.Next(); // Bu her zaman 2057658224 sayısını döndürür.

 

Eğer double tipinde bir sayı üretmek istiyorsak NextDouble() methodu kullanılır. Bu kod bize 0 ile 1 arasında bir sayı döndürür:

Random randNum = new Random();
randNum.NextDouble();
randNum.NextDouble();
randNum.NextDouble();

Örnek olarak dönecek rakamlar 0.12820489450164194, 0.81203657295197121 ve 0.0582018419231087554.

Bir arraya atarak kulanımı ile ilgili olarak ta aşağıdaki örneği verebiliriz.

byte[] randBytes = new byte[108];
Random randNum = new Random();
randNum.NextBytes(randBytes);

Bu kodun sonucu buna benzer olacaktır: 196 231 77 225 52 144 146 72 3 90 18 233 161 205 147 196 35 152 30 220 41 114 156 25 184 185 30 64 140 138 215 62 178 90 158 94 0 47 101 234 151 44 71 189 146 113 111 90 3 93 59 104 91 143 81 82 75 51 40 123 113 81 188 121 130 212 55 71 47 52 195 243 50 52 68 252 42 222 135 70 74 196 61 46 79 111 227 34 8 75 19 205 6 234 120 70 112 206 58 190 58 39 42 206 153 71 53 38. Tabi ki sizin rakamlar farklı olmalıdır.

 

Bir önceki yazımız olan Kısayol Oluşturma- Ekran Görüntüsü Yakalama başlıklı makalemizi de okumanızı öneririz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir