C# random sınıfı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# random sınıfı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

3 Nisan 2013 Çarşamba

65 - Random - Break... 5 Defada Sayı Tahmini...


Bu örnekte biraz daha farklı bir algoritma kullandık... Aşağı, yukarı diye yönlendirmeler yerine tahmin ipucular ile sayısal veriler verdik... Bunun için de girilen sayı ile aranan sayı arasındaki farkı bulup 2 ile 4 arası bir sayıya böldürdük... 2 ile 4 arasında hangi sayı olacağını ise bilgisayarın karar vermesini istedik... Yani bir tane daha rastgele sayı ürettik... 

En iyi anlama yolu elbetteki programın sağlamasını yapmaktır... Bir tane sayısal örnek ile anlatalım;

Örneğin bilgisayarın belirlediği sayı 60 olsun... Bizim de ilk olarak girdiğimiz sayı 80 olsun... Bu durumda girdiğimiz sayı, bilgisayarın belirlediği sayıdan büyük olduğu için 80-60 = 20 ile aradaki farkı bulacağız... Yani 20'yi... Bulduğumuz bu farkı da bilgisayarın atayacağı ikinci rastgele sayı ile 2-4 arası bir bölüm yapacağız... Bilgisayar rastgele olarak burada 2 atarsa 20/2 = 10 sayısını bulacağız...

Kullanıcıya, girmiş olduğun sayıya 10 veya daha üstünde aşağı git diye mesaj veriyoruz... Bu sayede 80 giren kullanıcı 70 veya 70 den daha küçük bir sayı olduğunu anlamış oluyor... 

Tabii bu rastgele oluşturulmuş olan bir algoritma... Daha farklı algoritmalarda elbette yapılabilir... O da size kalmış... 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            // Sayı tahmin oyunlarından bir tanesi daha... Sadece ipucu algoritmamız biraz farklı...
            Random uret = new Random();
            int aranan = uret.Next(1, 100);// 1-100 arası rastgele sayı atandı...

            int i = 1; // Sayaç için kullanıyoruz... 
            while (i<=5)
            {
                Console.Write(i + ". Sayı Tahminini Yapınız:");
                int girilen = int.Parse(Console.ReadLine()); // Sayıyı girdiriyoruz... 

                if (girilen == aranan) 
                {
                    // Sayıyı bulursak kaçıncı defada bulduğumuzu yazdırıyoruz... 
                    Console.Write("Sayıyı " + i + ". seferde buldunuz...");
                    break; // Sayıyı bulduktan sonra döngüyü kırıyoruz ve çıkıyoruz... 
                }
                else if (girilen > aranan) // Girilen sayı büyükse aşağıdaki algoritma ile aşagı gitmesini söylüyoruz...
                    Console.WriteLine((girilen-aranan)/uret.Next(2,4) + " sayı veya daha fazla aşağı...");
                else if (girilen < aranan) // Girilen sayı küçükse tersini yapıyoruz... 
                    Console.WriteLine((aranan - girilen) / uret.Next(2, 4) + " sayı veya daha fazla yukarı...");
                i++;
            }

            if (i > 5) // Buraya girmesinin tek yolu yukarıdaki döngünün tamamlanmasıdır... Zaten bu durumda sayı bulunamamıştır... 
                Console.Write("Sayıyı bulamadınız... Sayı= " + aranan);
            Console.ReadKey();
        }
    }
}

2 Nisan 2013 Salı

61 - Random... Rastgele Girilen 100 Sayının Toplamını Bulan Program...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Rastgele atanmış olan 100 sayıyı toplayan program...
            int T = 0; // Sayıları toplamak için kullanacağız... 
            Random x = new Random(); // Rastgele sayı ataması için Random sınıfını çağırıyoruz...
            for (int i = 1; i <= 100; i++) 
            {
                // Sayı atama işlemini bu satırda yapıyoruz... Sayı aralığı olarak 1-1000 arası belirliyoruz... 
                // Bu satırda bize 1 ile 1000 arası rastgele bir sayı üretip sayi isimli değişkenimize atayacak...
                int sayi = x.Next(1, 1000);
                T = T + sayi; // Rastgele atanan sayıları topluyoruz... 
            }
            Console.WriteLine("Ortalama =" + (T / 100).ToString()); // Sonucu gösteriyoruz... 
            Console.ReadKey();
        }
    }
}