Rumah > pembangunan bahagian belakang > C++ > Berapa Kali Harus Saya Kocok Dek Saya Menggunakan Algoritma Fisher-Yates dalam C#?

Berapa Kali Harus Saya Kocok Dek Saya Menggunakan Algoritma Fisher-Yates dalam C#?

Patricia Arquette
Lepaskan: 2025-01-05 01:37:39
asal
901 orang telah melayarinya

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

Pengocokan Kad dalam C#

Dalam C#, anda boleh melaksanakan algoritma mengocok kad menggunakan Fisher-Yates shuffle. Begini cara anda boleh meningkatkan kod anda untuk mengocok dek berdasarkan input pengguna:

Dalam Program.cs anda, tambah logik berikut:

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);
}
Salin selepas log masuk

Kod ini mendapatkan semula input pengguna untuk yang dikehendaki bilangan shuffle dan kemudian menggunakan algoritma shuffle Fisher-Yates pada berbilang susunan Kad dek kali.

Dalam kelas FisherYates, laksanakan kaedah berikut:

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;
    }
}
Salin selepas log masuk

Kaedah ini mengambil tatasusunan integer yang mewakili dek kad dan menggunakan algoritma shuffle Fisher-Yates untuk merawaknya pesanan.

Setelah kocok selesai, anda boleh menyenaraikan kad yang dikocok dengan mengulangi mydeck.Kad seperti yang anda lakukan pada mulanya. Kad kini akan dikocok berdasarkan bilangan kali yang ditentukan.

Atas ialah kandungan terperinci Berapa Kali Harus Saya Kocok Dek Saya Menggunakan Algoritma Fisher-Yates dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan