Как сгенерировать множество с покрытием максимального числа результатов? Есть следующая задача
Имеем условие для формирования множества множеств (или таблицы):
- Количество строк (элементов множества)
- Для каждого столбца задан процент значения Null (например (10,20,50) -первый столбец 10% нулов, второй 20 и третий 50)
Необходимо сгенерить такое множество заданной длины чтобы оно оптимально покрывала все возможные комбинации нулов и не нулов

21 Авг 2019 в 06:03
221 +1
0
Ответы
1

Для генерации множества с покрытием максимального числа результатов можно использовать алгоритм генерации случайных значений с заданным процентом нулевых элементов для каждого столбца.

Один из способов решения данной задачи:

Создать функцию, которая будет генерировать случайные значения для каждого столбца с заданным процентом нулевых значений.Вычислить все возможные комбинации нулевых и не нулевых значений для каждого столбца.Создать все возможные комбинации значений для всех столбцов, учитывая процент нулевых значений.Сформировать множество из комбинаций значений для каждой строки.

Пример реализации на Python:

import random
def generate_column_values(size, null_percentage):
values = [0] * (size * null_percentage // 100) + [1] * (size - size * null_percentage // 100)
random.shuffle(values)
return values
def generate_dataset(num_rows, column_null_percentages):
dataset = []
for _ in range(num_rows):
row = []
for null_percentage in column_null_percentages:
row.extend(generate_column_values(1, null_percentage))
dataset.append(row)
return dataset
num_rows = 10
column_null_percentages = [10, 20, 50]
result = generate_dataset(num_rows, column_null_percentages)
for row in result:
print(row)

Этот код генерирует множество с заданным количеством строк и процентом нулевых значений для каждого столбца. Каждая строка в множестве будет содержать комбинацию значений для всех столбцов в соответствии с заданными процентами нулевых значений.

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир