Heim >Backend-Entwicklung >C++ >Wie oft sollte ich mein Deck mit dem Fisher-Yates-Algorithmus in C# mischen?

Wie oft sollte ich mein Deck mit dem Fisher-Yates-Algorithmus in C# mischen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-05 01:37:39898Durchsuche

How Many Times Should I Shuffle My Deck Using the Fisher-Yates Algorithm in C#?

Kartenmischen in C#

In C# können Sie einen Kartenmischalgorithmus mithilfe von Fisher-Yates-Shuffle implementieren. So können Sie Ihren Code erweitern, um den Stapel basierend auf Benutzereingaben zu mischen:

Fügen Sie in Ihrer Program.cs die folgende Logik hinzu:

int timesToShuffle;
Console.WriteLine("How many times do you want to shuffle?");
timesToShuffle = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < timesToShuffle; i++)
{
    FisherYates.Shuffle(mydeck.Cards);
}

Dieser Code ruft Benutzereingaben für das gewünschte ab Anzahl der Mischvorgänge und wendet dann den Fisher-Yates-Mischalgorithmus mehrmals auf das Karten-Array des Decks an.

Implementieren Sie in der FisherYates-Klasse Folgendes Methode:

public static void Shuffle(int[] deck)
{
    for (int n = deck.Length - 1; n > 0; --n)
    {
        int k = r.Next(n + 1);
        int temp = deck[n];
        deck[n] = deck[k];
        deck[k] = temp;
    }
}

Diese Methode verwendet ein Array von ganzen Zahlen, die das Kartendeck darstellen, und wendet den Fisher-Yates-Mischalgorithmus an, um seine Reihenfolge zufällig zu bestimmen.

Sobald das Mischen abgeschlossen ist, können Sie es tun Listen Sie die gemischten Karten auf, indem Sie mydeck.Cards durchlaufen, wie Sie es ursprünglich getan haben. Die Karten werden nun entsprechend der angegebenen Häufigkeit gemischt.

Das obige ist der detaillierte Inhalt vonWie oft sollte ich mein Deck mit dem Fisher-Yates-Algorithmus in C# mischen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn