>백엔드 개발 >C++ >C#에서 Fisher-Yates 알고리즘을 사용하여 덱을 몇 번이나 섞어야 합니까?

C#에서 Fisher-Yates 알고리즘을 사용하여 덱을 몇 번이나 섞어야 합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-05 01:37:39951검색

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

C#의 카드 섞기

C#에서는 Fisher-Yates 섞기를 사용하여 카드 섞기 알고리즘을 구현할 수 있습니다. 사용자 입력에 따라 데크를 섞도록 코드를 향상시킬 수 있는 방법은 다음과 같습니다.

Program.cs에서 다음 논리를 추가합니다.

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);
}

이 코드는 원하는 항목에 대한 사용자 입력을 검색합니다. 횟수를 섞은 다음 Fisher-Yates 셔플 알고리즘을 데크의 카드 배열에 여러 번 적용합니다.

FisherYates 클래스에서 다음 방법:

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;
    }
}

이 방법은 카드 덱을 나타내는 정수 배열을 사용하고 Fisher-Yates 셔플 알고리즘을 적용하여 순서를 무작위로 지정합니다.

셔플링이 완료되면 처음에 했던 것처럼 mydeck.Cards를 반복하여 섞인 카드를 나열할 수 있습니다. 이제 지정된 횟수에 따라 카드가 섞입니다.

위 내용은 C#에서 Fisher-Yates 알고리즘을 사용하여 덱을 몇 번이나 섞어야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.