2013-07-22 2 views
1

내가 생성하기 위해 찾고 0 나 하나의 단지처럼 각 배열 : 10 개 번호를 생성하는 싶습니다임의의 숫자 0의 또는 1의

int[] x = new int [10]; 

중 0 나 1과 해야 모든 영의

다음과 같이 표시됩니다.

Random binaryrand = new Random(2); 

고맙습니다.

+0

이 일에 어떤 문제는 데, 그것은 당신이 배열을 채우는 방법을 모르는되는 것을 보장? 또는 다른 것? –

+1

나는 당신이'random '이 아닌'new random'을 사용하고 있다고 생각할 것입니다. – Sayse

답변

3

Random.Next(Int32, Int32)과 같은 방법으로 처리 할 수 ​​있습니다.

int[] x = new int[10]; 
Random r = new Random(); 

while (x.Any(item => item == 1) == false) 
{ 
    for (int i = 0; i < x.Length; i++) 
    { 
     x[i] = r.Next(0, 2); 
    } 
} 

for (int i = 0; i < x.Length; i++) 
{ 
    Console.WriteLine(x[i]); 
} 

출력 예;

0 
0 
0 
1 
1 
1 
0 
1 
1 
0 

여기에 DEMO입니다.

는 하한은 포함하지만 상한은 독점이다, Random.Next(Int32, Int32) 방법에 기억하십시오.

+0

당신은 하나의 요구 사항을 놓쳤습니다. 모든 0을 가진 배열은 제외해야합니다. 'for (x.Any (item => item == 1) == false)'에 첫 번째 for 루프를 던지면 그것을 고쳐 줄 것입니다. –

+0

대단히 고맙습니다. 0 또는 1을 모두 채우지 않고 배열을 채우고 싶습니다. – Yamur

+0

무엇을 의미합니까? 나는 0의 배열을 얻고 싶지 않다. 배열에 0이나 1이없이 모두 채 웁니다. – Yamur

2

귀하의 전화

Random binaryrand = new Random(2); 

seed=2와 임의의 발전기를 만들고, 당신이 코드를 실행할 때마다 숫자의 동일한 시퀀스를 생성합니다. 2은 생성 된 숫자의 범위와 관련이 없습니다.

사용

Random binaryrand = new Random(); // auto seed 

... 

    int x = binaryrand.Next(2); 
+0

+1이지만 매개 변수없는 생성자를 호출하는 초대 답을 편집합니다. – KappaG3

+0

동의하면 혼동을 피할 수 있습니다. –

0

이것은 또한 모든 0

Random binaryrand = new Random(); 
List<int> l = new List<int>(); 

while (l.Find(x => x == 1) != 1) 
{ 
    for (int i = 0; i < 10; i++) 
    { 
     l.Add(binaryrand.Next(0, 2)); 
    } 
} 
+0

좋아요, 그게 목록입니다 :) – Yamur

+1

그 목록은 프로그램을 실행할 때마다 동일하게 나타날 것입니다. –

+0

@HenkHolterman이 맞습니다. 당신은 그 씨앗을 떨어 뜨릴 필요가 있습니다. 내 편집보기 – amitfr