C#

C# Fisher-Yates Shuffle Algoritması

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda Fisher-Yates Shuffle Algoritması’nı anlatacağım. Hadi başlayalım !

Fisher-Yates algoritması, belirli bir diziyi rastgele sıraya koymak için kullanılan bir algoritmadır. Bu algoritma, özellikle kart destesi gibi öğelerin karıştırılması gibi durumlarda kullanışlıdır.

Bu makalede, C# programlama diliyle Fisher-Yates algoritması ile nasıl bir dizi karıştırabileceğinizi öğreneceksiniz. Ayrıca, Fisher-Yates algoritması hakkında temel bilgiler de sunacağız.

Fisher-Yates Algoritması Nedir?

Fisher-Yates algoritması, belirli bir dizinin öğelerini rastgele sıraya koymak için kullanılan bir algoritmadır. Bu algoritma, her öğe için rastgele bir konum belirler ve bu konumlar, öğelerin yeni bir sıraya yerleştirilmesi için kullanılır. Algoritma, her öğeyi yalnızca bir kez kullanarak öğelerin tamamen rastgele bir sıraya yerleştirilmesini sağlar.

Fisher-Yates algoritması, 1938 yılında Ronald Fisher ve Frank Yates tarafından geliştirilmiştir. Bu algoritma, özellikle kart destesi gibi öğelerin karıştırılması gibi durumlarda kullanışlıdır. Ayrıca, Fisher-Yates algoritması, rastgele öğelerin sıraya dizilmesi gibi birçok farklı kullanım alanı için kullanılabilir.

Fisher-Yates Algoritması Nasıl Çalışır?

Fisher-Yates algoritması, bir dizi üzerinde çalışır. Bu algoritma, öğelerin rastgele bir sıraya yerleştirilmesi için aşağıdaki adımları izler:

  • Dizinin son elemanından başlayarak, dizinin her öğesi için bir rastgele sayı belirleyin.
  • Belirlenen rastgele sayılar, dizinin öğeleriyle eşleştirilir. Örneğin, 3. elemanın rastgele sayısı 2 ise, 3. eleman 2. elemanla değiştirilir.
  • İşlem, ilk öğeye kadar devam eder. Bu, dizinin tüm elemanlarının tamamen rastgele bir sıraya yerleştirilmesini sağlar.

C# Kodu

Aşağıdaki örnekte, C# programlama dili kullanılarak bir dizi Fisher-Yates algoritması kullanılarak karıştırılır:

static void Main()
{
    int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

    Console.WriteLine("Original Array: ");
    PrintArray(numbers);
    Shuffle(numbers);
    Console.WriteLine("\nShuffled Array: ");
    PrintArray(numbers);
    Console.ReadKey();
}

static void Shuffle(int[] array)
{
    Random rand = new Random();
    for (int i = array4; i > 0; i--)
    {
        int j = rand.Next(0, i + 1);
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
}
static void PrintArray(int[] array)
{
    foreach (int i in array)
    {
        Console.Write(i + " ");
    }
}

Yukarıdaki kod örneği, C# programlama dili kullanılarak bir dizi Fisher-Yates algoritması kullanılarak karıştırılmıştır. Kod, bir dizi oluşturur ve önce bu diziyi ekrana yazdırır. Daha sonra, Shuffle() metodunu kullanarak diziyi karıştırır ve karıştırılmış diziyi tekrar ekrana yazdırır.

Shuffle() metodunda, Random sınıfı kullanarak rastgele sayılar oluşturulur ve bu sayılar kullanılarak dizinin öğeleri yer değiştirilir. PrintArray() metodunda, bir dizi yazdırılır.

Sonuç

Sonuç olarak, yukarıdaki örnekte Fisher-Yates algoritması kullanarak bir dizi karıştırmayı öğrendiniz. Bu algoritma, özellikle kart destesi gibi öğelerin karıştırılması gibi durumlarda kullanışlıdır. Ayrıca, C# programlama dili ile Fisher-Yates algoritması kullanarak bir dizi karıştırmak oldukça kolaydır.

Evet C# ile Fisher-Yates Shuffle Algoritması bu şekilde yapılmakta. Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Göz Atın
Kapalı
Başa dön tuşu