Содержание:
- Описание задачи
- Заполните массив случайным образом нулями и единицами так, чтобы количество единиц было больше количества нулей на языке Java
- Заполните массив случайным образом нулями и единицами так, чтобы количество единиц было больше количества нулей на языке Pascal
- Заполните массив случайным образом нулями и единицами так, чтобы количество единиц было больше количества нулей на языке Python
Задание: Java. Заполните массив случайным образом нулями и единицами так, чтобы количество единиц было больше количества нулей
1 способ решения
Заполнить массив чуть меньше половины нулями и перемешать
Дано:
Java(Джава) - язык программирования
import java.util.Arrays - класс, предоставляющий статические методы для динамического создания массивов Java и доступа к ним
import java.util.Random - экземпляр этого класса используется для генерации потока псевдослучайных чисел
N - количество элементов в массиве
binaryArray - массив
shuffleArray - функция для случайного перемешивания значений массива
random - экземпляр класса Random
Решение:
import java.util.Arrays;
import java.util.Random;
public class Main
{
public static void main(String[] args) {
int N = 15;
int[] binaryArray = new int[N];
Arrays.fill(binaryArray, 1); //Заполнение массива единицами посредством метода fill
for(int i = 0; i < N/2-1; i++){ //Заполнение частично массив нулями
binaryArray[i] = 0;
}
shuffleArray(binaryArray); //Перемешиваем массив
System.out.println(Arrays.toString(binaryArray));
}
private static void shuffleArray(int[] array)
{
int index, temp;
Random random = new Random();
for (int i = array.length - 1; i > 0; i--)
{
index = random.nextInt(i + 1);
temp = array[index];
array[index] = array[i];
array[i] = temp;
}
}
}
Результат:
[1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1]
2 способ решения
Заполнить массив единицами и случайным образом на каждой ячейке массива(либо через одну) расставлять нули. Если количество нулей равно количеству единиц -1, то цикл завершается
Дано:
Java(Джава) - язык программирования
import java.util.Arrays - класс, предоставляющий статические методы для динамического создания массивов Java и доступа к ним
import java.util.Random - экземпляр этого класса используется для генерации потока псевдослучайных чисел.
N - количество элементов в массиве
binaryArray - массив
countRandom - количество возможных нулей в массиве
countReal - реальное количество нулей в массиве
random - экземпляр класса Random
Решение:
import java.util.Arrays;
import java.util.Random;
public class Main
{
public static void main(String[] args) {
int N = 15;
int countRandom = N/2-1;
int countReal = 0;
Random random = new Random();
int[] binaryArray = new int[N];
Arrays.fill(binaryArray, 1); //Заполнение массива единицами посредством метода fill
for(int i = 0; i < binaryArray.length; i++) {
binaryArray[i] = random.nextInt(2);
if (binaryArray[i] == 0) countReal++;
if (countReal == countRandom) break; //Прерывание, если количество нулей равно максимальному количеству
}
System.out.println(Arrays.toString(binaryArray));
}
}
Результат:
[1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0]
3 способ решения
Заполнить случайно массив единицами и нулями. В случае превышения нулей, расставить недостающие единицы
Дано:
Java(Джава) - язык программирования
import java.util.Arrays - класс, предоставляющий статические методы для динамического создания массивов Java и доступа к ним
import java.util.Random - экземпляр этого класса используется для генерации потока псевдослучайных чисел
N - количество элементов в массиве
binaryArray - массив
countRandom - количество возможных нулей в массиве
countReal - реальное количество нулей в массиве
rand - случайное число от 0 до 1 включительно
random - экземпляр класса Random
Решение:
import java.util.Arrays;
import java.util.Random;
public class Main
{
public static void main(String[] args) {
int N = 15;
int countRandom = N/2-1;
int countReal = 0;
Random random = new Random();
int[] binaryArray = new int[N];
for(int i = 0; i < binaryArray.length; i++) {
int rand = 0;
if (countReal >= countRandom) rand = 1; else rand = random.nextInt(2);
binaryArray[i] = rand;
if (rand == 0) countReal++;
}
System.out.println(Arrays.toString(binaryArray));
}
}
Результат:
[1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1]