2013-07-22 2 views
1

Ищем генерировать 0-й или 1 только для каждого массива, как:Случайного числа 0-й или 1-х

int[] x = new int [10]; 

Я хотел бы генерировать 10 номеров либо 0-й или 1-х и не должен все 0

Это только так:

Random binaryrand = new Random(2); 

спасибо.

+0

Какие проблемы вы имея в этом, это вы не знаете, как заполнить массив? или что-то другое? –

+1

Я собираюсь предположить, что вы используете 'new random', а не' random.Next' – 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 в while (x.Any (item => item == 1) == false) 'исправил бы это. –

+0

Большое спасибо, я хотел бы заполнить массив либо 0, либо 1 без всех 0 в случае – Yamur

+0

Что вы имеете в виду? Мне не нравится получать массив всех 0 в случае. заполните массив 1 или 0 без всех 0. – 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

Смежные вопросы