Заполните массив случайным образом нулями и единицами так, чтобы количество единиц было больше количества нулей на языке Python
Мы используем cookie-файлы, чтобы получить статистику, которая помогает нам улучшить сервис для Вас с целью персонализации сервисов и предложений. Вы можете прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом без изменения настроек, вы даёте согласие на использование ваших cookie-файлов.
speech bubble

Заполните массив случайным образом нулями и единицами так, чтобы количество единиц было больше количества нулей на языке Python

Заполните массив случайным образом нулями и единицами так, чтобы количество единиц было больше количества нулей

 

Задание: Python. Заполните массив случайным образом нулями и единицами так, чтобы количество единиц было больше количества нулей

 

1 способ решения 

Заполнить массив чуть меньше половины нулями и перемешать

Дано:

Python(Питон) - язык программирования

N - количество элементов в списке

NHalf - максимальное количество нулей в списке

array_binary  - список

random - предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности

shuffle - перемешивает последовательность (изменяется сама последовательность) в списке array_binary

Решение:

import random

N = 15
NHalf = 15//2 - 1
array_binary = [1]*N
array_binary = [0]*NHalf + array_binary[NHalf:]
random.shuffle(array_binary)
print (array_binary)

Результат:

[0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0]

 

2 способ решения 

Заполнить массив единицами и случайным образом на каждой ячейке массива(либо через одну) расставлять нули. Если количество нулей равно количеству единиц -1, то цикл завершается

Дано:

Python(Питон) - язык программирования

N - количество элементов в списке

NHalf - максимальное количество нулей в списке

NReal - реальное количество нулей в списке

array_binary  - список

random - предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности

randint(A, B) - случайное целое число N, A ≤ N ≤ B

Решение:

N = 15
NHalf = 15//2 - 1
NReal = 0
array_binary = [1]*N

for index, item  in enumerate(array_binary):
    array_binary[index] = random.randint(0, 1)
    if array_binary[index] == 0:
        NReal += 1
    if NReal == NHalf:
        break

print (array_binary)

Результат:

[0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0]

 

3 способ решения 

Заполнить случайно массив единицами и нулями. В случае превышения нулей, расставить недостающие единицы

Дано:

Python(Питон) - язык программирования

N - количество элементов в списке

NHalf - максимальное количество нулей в списке

NReal - реальное количество нулей в списке

array_binary  - список

random - предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности

randint(A, B) - случайное целое число N, A ≤ N ≤ B

rand - случайное число от 0 до 1 включительно.

Решение:

import random

N = 15
NHalf = 15//2 - 1
NReal = 0
rand = 0
array_binary = []

for i  in range(N):
    if NReal >= NHalf:
        rand = 1
    else:
        rand = random.randint(0, 1)
    array_binary.append(rand)
    if array_binary[i] == 0:
        NReal += 1
    
print (array_binary)

 

Для комментирования необходимо авторизоваться