1, 16 사이의 난수 생성

알라

안녕하세요 여러분 저는 2 차원 배열 4 * 4를 가지고 있습니다. 1부터 16까지의 숫자를 무작위로 채워야합니다. 각 숫자는 한 번만 사용해야하며 1-16 사이의 모든 숫자를 사용해야합니다. 다음 코드를 작성했지만 어떤 이유로 배열의 일부 항목이 채워지지 않았는지 모르겠습니다 !! 누구든지 내가 뭘 잘못하고 있는지 말해 줄 수 있니?

    public void generateRandState()
    {
        bool flag = false;
        Random rnd = new Random();
        int temp ;
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                temp = rnd.Next(1, 17);
                Console.WriteLine(temp);
                if (taken[temp] == false)
                {
                    state[i, j] = temp;
                    taken[temp] = true;
                }
                else // for repeated rands
                {
                    temp = rnd.Next(1, 17);
                    Console.WriteLine(temp);
                    while (!flag)
                    {
                        if (taken[temp] == false)
                        {
                            flag = true;
                            break;
                        }
                        else
                            temp = rnd.Next(1, 17);
                        Console.WriteLine(temp);
                    }
                    if (taken[temp] == false)
                    {
                        state[i, j] = temp;
                        taken[temp] = true;

                    }

                }

            }
        }
    }
KevinS

교체 while (!flag)와 함께 while (true). break이미 당신을 얻을 것이다 while문. flag변수가 완전히 불필요하다.

귀하의 알고리즘은 매우 비효율적입니다. dasblinkenlight가 지적했듯이, 당신이하고있는 일을 성취하는 더 좋은 방법이 있습니다.

또한 두 번 이상 taken전화를 걸면 지워야 한다는 것을 알아야합니다 generateRandState.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

0과 1 사이의 난수 생성

분류에서Dev

rand (5)에 의해 1-7 사이의 난수 생성

분류에서Dev

0과 1 사이의 난수 생성 [C ++]

분류에서Dev

플러스 / 마이너스 1 정수의 의사 난수 시퀀스 생성

분류에서Dev

PHP를 사용하여 1에서 10 사이의 30 개의 난수 생성

분류에서Dev

의사 난수 생성기

분류에서Dev

의사 난수 생성

분류에서Dev

사용 가능한 이진 난수 (0 또는 1 반환) 함수를 사용하여 정수 난수 생성

분류에서Dev

rand_r을 사용하여 -1과 1 사이의 난수를 어떻게 생성 할 수 있습니까?

분류에서Dev

POSIX에서 스레드를 사용하여 [0,1] 사이의 난수를 생성하는 방법

분류에서Dev

POSIX에서 스레드를 사용하여 [0,1] 사이의 난수를 생성하는 방법

분류에서Dev

PHP에서 16 길이의 난수를 생성하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

1에서 백만 사이의 난수를 생성하는 방법은 무엇입니까?

분류에서Dev

c ++ 1과 10 ^ 6 사이의 난수를 생성하는 방법은 무엇입니까?

분류에서Dev

유전 알고리즘 도구 상자, Deap에서 0과 1 사이의 난수를 생성하는 방법

분류에서Dev

Matlab : 의사 난수 생성 방법

분류에서Dev

MATLAB에서 100 분의 1 자리로 반올림 된 난수 생성

분류에서Dev

함수로서의 난수 생성

분류에서Dev

난수 생성

분류에서Dev

난수 생성

분류에서Dev

Python의 배열에서 두 값 사이에 난수 생성

분류에서Dev

-35에서 +5 사이의 난수를 생성하는 VBA

분류에서Dev

srand ()를 사용한 난수 생성

분류에서Dev

srand를 사용하여 난수 생성

분류에서Dev

6 자리의 난수를 생성

분류에서Dev

객체 배열 생성자의 난수

분류에서Dev

Discord.py의 난수 생성기

분류에서Dev

요소의 난수 생성 (비)

분류에서Dev

두 개의 난수 생성 및 빼기

Related 관련 기사

  1. 1

    0과 1 사이의 난수 생성

  2. 2

    rand (5)에 의해 1-7 사이의 난수 생성

  3. 3

    0과 1 사이의 난수 생성 [C ++]

  4. 4

    플러스 / 마이너스 1 정수의 의사 난수 시퀀스 생성

  5. 5

    PHP를 사용하여 1에서 10 사이의 30 개의 난수 생성

  6. 6

    의사 난수 생성기

  7. 7

    의사 난수 생성

  8. 8

    사용 가능한 이진 난수 (0 또는 1 반환) 함수를 사용하여 정수 난수 생성

  9. 9

    rand_r을 사용하여 -1과 1 사이의 난수를 어떻게 생성 할 수 있습니까?

  10. 10

    POSIX에서 스레드를 사용하여 [0,1] 사이의 난수를 생성하는 방법

  11. 11

    POSIX에서 스레드를 사용하여 [0,1] 사이의 난수를 생성하는 방법

  12. 12

    PHP에서 16 길이의 난수를 생성하는 가장 좋은 방법은 무엇입니까?

  13. 13

    1에서 백만 사이의 난수를 생성하는 방법은 무엇입니까?

  14. 14

    c ++ 1과 10 ^ 6 사이의 난수를 생성하는 방법은 무엇입니까?

  15. 15

    유전 알고리즘 도구 상자, Deap에서 0과 1 사이의 난수를 생성하는 방법

  16. 16

    Matlab : 의사 난수 생성 방법

  17. 17

    MATLAB에서 100 분의 1 자리로 반올림 된 난수 생성

  18. 18

    함수로서의 난수 생성

  19. 19

    난수 생성

  20. 20

    난수 생성

  21. 21

    Python의 배열에서 두 값 사이에 난수 생성

  22. 22

    -35에서 +5 사이의 난수를 생성하는 VBA

  23. 23

    srand ()를 사용한 난수 생성

  24. 24

    srand를 사용하여 난수 생성

  25. 25

    6 자리의 난수를 생성

  26. 26

    객체 배열 생성자의 난수

  27. 27

    Discord.py의 난수 생성기

  28. 28

    요소의 난수 생성 (비)

  29. 29

    두 개의 난수 생성 및 빼기

뜨겁다태그

보관