Bu yazımda C# dilinde rastgele sayı üretmek için kullanılan sınıf ve metotlardan bahsedeceğim. Bazı durumlarda uygulama içerisinde tamamen rastgele üretilen değerlere ihtiyaç duyarız. Bu değerler sayı veya harf olabileceği gibi bu ikisinin kombinasyonundan oluşan string türünde verilerde olabilir. Rastgele sayılar özellikle şans veya tahmine dayalı oyunlarda sıklıkla kullanılırlar. Bunun dışında bilgi yarışmalarında farklı sorular ekrana getirilirken, kullanıcılara otomatik şifre oluşturma esnasında, kura çekilişlerinde rastgele değerlere ihtiyaç duyulmaktadır.
C# ile Rastgele Sayı Üretmek
C#’ta rastgele değer üretmek için Random sınıfı ve bu sınıfın içerisindeki Next, NextBytes, NextDouble metotları kullanılır. En fazla tercih edilen metot Next () metodudur.
1 2 |
Random rastgele = new Random(); int sayi = rastgele.Next(); |
Bu örnekte üretilen değer 0 ile +2.147.483.646 arasındaki rastgele herhangi bir sayı olabilir. Bazı durumlarda ihtiyacımıza göre üretilen sayıları kısıtlamak isteyebiliriz.
1 2 |
int sayi = rastgele.Next(50); //0’dan 50’ye kadar rastgele sayı üretir. 50 dahil değildir. int sayi = rastgele.Next(50,100); //50 ile 100 arasında rastgele bir sayı üretir. 100 dahil değildir. |
Örnek: 1 ile 50 arasında 5 adet rastgele sayı oluşturalım.
1 2 3 4 5 6 |
Random rastgele = new Random(); for (int i = 0; i <5; i++) { int sayi = rastgele.Next(1,50); Console.WriteLine(sayi.ToString()); } |
Oluşturulan sayılar tamamen rastgele olduğu için birbirinden farklı ya da aynı olabilmektedir.
NextDouble() metodu ile 0.0 ile 1.0 arasında rastgele double türünde sayılar üretilir.
1 2 |
double sayi = rastgele.NextDouble(); Console.WriteLine(sayi.ToString()); |
C# ile Rastgele Harf Üretmek
C# ile rastgele harf üretmemizi sağlayan bir metot bulunmamaktadır. Ama ASCII tablodaki harf kodlarını kullanarak basit bir şekilde rastgele harf üretebiliriz. ASCII tabloda büyük harfler 65 ile 90 arasında yer almaktadır.
1 2 3 |
int ascii = rastgele.Next(65, 91); char karakter = Convert.ToChar(ascii); Console.WriteLine(karakter); |
C# ile Rastgele Şifre Oluşturmak
Yukarıda ki öğrendiğimiz yöntemi kullanarak 8 karakterden oluşan rastgele bir şifre oluşturalım. Özellikle web sitelerindeki şifremi unuttum bölümünde mail adresine gönderilecek olan şifrelerin oluşturulmasında işinize yarayacaktır.
1 2 3 4 5 6 7 8 9 10 |
Random rastgele = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i <8; i++) { int ascii = rastgele.Next(32, 127); char karakter = Convert.ToChar(ascii); sb.Append(karakter); } Console.WriteLine(sb.ToString()); |
Ascii tabloda 32 ile 127 arasında klavyeden yazabileceğiniz tüm rakam, harf ve özel karakterler yer almaktadır. StringBuilder ile oluşturulan değerler arka arkaya eklenmiş ve sonuç Console ekranında gösterilmiştir.
C# ile Random sınıfı ve metotlarını kullanarak rastgele sayı ve harf üretme işlemini anlattım. Konuyla ilgili tüm sorularınızı bana iletebilirsiniz.
Eline,klavyene,beynine sağlık.
Rastgele sayı oluşturduk fakat rast gele oluşan aynı sayıları nasıl tekrardan yazdirmayiz??
Cevappp lutfennnnn
Öncelikle merhaba. Rastgele oluşturulan sayıları bir dizi içerisine attıktan sonra, her yeni sayı oluşturulduğunda dizi içerisinde ki değerlerle karşılaştırabilirsiniz. Eğer aynı sayı oluşturulmuşsa tekrardan bir sayı oluşturarak işleme devam etmeniz yeterli olacaktır. Eğer sonuca ulaşamazsanız buradan tekrar yardımcı olmaya çalışırım. Kolay gelsin.
Öncelikle dizi olusturmalisin sayilari dizide tutmalisin dizide tuttugun sayilari urettigin sayi ile kontrol etmelisin eger varsa sayı ekrana yazamayacaksin
rasgele girilen sayıyı bidce küçükten büyüğe okutabilirmisiniz
teşekkürler!
array.sort();
ile yapabilirsin
Bunun algoritması var mı acaba?
ACİLL LÜTFENN !!
meraba bana bunu odev olarak verildi bana yardımcı olurmsunuz
Sayı_tut adında bir metot oluşturarak
metoda true değeri gonderilirse 1 ile 100 arasında rastgele tek sayi tutulmasını ,
false gonderilirse ile 100 arasında çift sayi tutulursa ve ttulan değeri geri gonderen metodu do while
(random war)
Merhaba ImageSlider için rasgele resim geçişi nasıl yapabilirim. Resimlerin randomla otomatik yürümesini istiyorum. Kolay gelsin.
makina rastgeleceği neye göre belirler?
rad1 a= true
rad2 a= false
void SayiTut(kontrol){
if(kontrol)
Random yeni = new Random();
tutulan = yeni.next(1,100);
if(tutulan %2 == 0){
yeni.next(1,100);
}
}
else{
Random yeni = new Random();
yeni.next(1,100);
if(tutulan %2 == 1){
yeni.next(1,100);
}
}
SayiTut(a)
Benimde bi soun var yardımcı olabilir mısınız
1 ve 35 arasında rastgele üretilen 2 sayıdan büyük olani bulup ekran yazdiran bi uygulama yapmam gerekiyor
Ayrıca seçilen sayılardan ilki =3
” “ikincisi =22 olacak
Daha sonra 3 saniye sonra tekrar aynı işlem gerçekleşecek
ACIL LÜTFEN YARDIMCI OLABILIR MISINIZ. Arduinoda random kullarak aşağıdaki uygulamayı yapmam gerekiyor bi çok kez denedim ama olmadı
1 ve 35 arasında rastgele üretilen 2 sayıdan büyük olani bulup ekran yazdiran bi uygulama yapmam gerekiyor
Ayrıca seçilen sayılardan ilki =3
” “ikincisi =22 olacak
Daha sonra 3 saniye sonra tekrar aynı işlem gerçekleşecek
Şimdiden teşekkür ederim