C# – Random Sınıfı İle Rastgele Sayı Üretmek

C# Random Sınıfı, rastgele sayılar üretmemizi sağlayan metotlara sahip bir sınıftır. Random Sınıfı ile Next(), NextDouble() ve NextBytes() metotlarını kullanabiliriz.

Uygulamalarımızda bazı durumlarda rastgele üretilen sayılara ihtiyacımız olabiliyor. Bu gibi durumlarda kullanabileceğimiz sınıflar ve metotları mevcuttur. C# ile rastgele bir şeyler üretmek için “Random” sınıfını ve metotlarını kullanabiliriz.

C# ile Rastgele Sayı Üretmek

C# ile rastgele sayı üretmek için Random sınıfının Next(), NextDouble(), NextBytes() metotlarını kullanabiliriz.

Rastgele bir sayı üretmek için öncelikle Random sınıfından bir nesne üretiriz.

Random rastgele = new Random();

Daha sonra rastgele sayı üretmek için Next() metotunu kullabiliriz.
Random sınıfının Next() metotu 3 farklı şekilde kullanılabilir.
Next() -> Boş bırakıldığında rastgele bir tam sayı oluşturur
Next(maksDeger) -> Sadece bir parametre verildiğinde 0 ile verilen değer arasında bir tam sayı oluşturur.
Next(minDeger, maksDeger) -> İki parametre verdiğimizde ise birince ve ikinci değer arasında rastgele bir sayı oluşturur.

rastgele.Next();   // Rastgele bir tam sayı döndürür.
rastgele.Next(10);   // 0 ile 10 arasında rastgele bir tam sayı döndürür.
rastgele.Next(10,50);  // 10 ile 50 arasında rastgele bir tam sayı döndürür.

Örneğin kullanıcının girdiği iki sayı arasında rasstgele bir sayı oluşturalım.

        {
            Console.Write("Başlangıç Değeri : ");
            int minimum = int.Parse(Console.ReadLine());

            Console.Write("Bitiş Değeri : ");
            int maksimum = int.Parse(Console.ReadLine());

            Random rastgele = new Random();
            int rastgeleSayi = rastgele.Next(minimum, maksimum);

            Console.WriteLine($"{minimum} ile {maksimum} arasında rastgele bir sayi oluşturuldu : {rastgeleSayi}");

            Console.ReadLine();
        }

Örneğimizde kullanıcıdan maksimum ve minimum değerleri istiyoruz. Next metotuna 2 parametre verdiğimizde bu iki sayı aralığında bir tam sayı oluşturduğunu öğrenmiştik. Metotumuza minimum ve maksimum değerleri vererek bu aralıkta rastgele bir sayı oluşturuyor ve kullanıcıya gösteriyoruz.

NextDouble() ile Ondalıklı Sayı Oluşturmak

Random sınıfının NextDouble() metotu ile ondalıklı sayı oluşturabiliriz. Random.NextDouble() metotu bize 0.0 ile 1.0 değer aralığında bir sayı döndürür. Örnek olarak rastgele bir double sayı oluşturalım.

        {
            Random rastgele = new Random();
            double rastgeleSayi = rastgele.NextDouble();

            Console.WriteLine($"Rastgele ondalıklı bir sayi oluşturuldu : {rastgeleSayi}");

            Console.ReadLine();
        }

NextBytes() ile Bir Dizi Sayı Oluşturma

Random sınıfının NextBytes() metotu ile bir dizi byte türünde rastgele sayı üretebiliriz. Random.NextBytes() metotu parametre olarak byte dizisi almakta ve diziyi uzunluğu kadar byte oyutunda rastgele sayı ile doldurmaktadır.

    {
        Random rastgele = new Random();

        Byte[] b = new Byte[10];

        rastgele.NextBytes(b);

        for (int i = 0; i < 10; i++)
            Console.WriteLine($"{i+1} -> {b[i]}", i, b[i]);

        Console.ReadLine();
    }

C# ile Rastgele Harf Üretmek

C# içerisinde Random sınıfının rastgele harf üretebileceğimiz bir metotu yok. Ancak c# içerisinde karakterlerin sayısal karşılıkları vardır. Rastgele bir sayı üretip bunun ASCII tablosundaki sayısal karşılığındaki harfi alabiliriz.

ASCII Tablosu

65 ile 91 aralığında rastgele bir sayı oluşturursak ASCII karşılıkları büyük harflere veya 97 ile 123 aralığında rastgele bir sayı oluşturursak küçük harflere denk gelecektir.

         {
            Random rastgele = new Random();

            int ASCII = rastgele.Next(65, 91);

            char rastgeleKucukHarf = Convert.ToChar(ASCII);

            Console.WriteLine(rastgeleKucukHarf);

            Console.ReadLine();
        }

Ne Düşünüyorsun?

Yazar: İsmail Z.

Bilim, Teknoloji ve Yazılım Sevdalısı, Lol Oyuncusu, .Net Geliştirici

2 Yorum

Yorum Yapın

Bir cevap yazın

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

Akıncı belgeseli yayınlandı

Netflix, Dark'ın Final Sezonu Fragmanını Yayınladı