Как сделать численно равные выборки из нормального и любого иного распределения? Привет, ребята!Дано множество экземпляров, допустим популяция из 1000 слонов. У слона есть характеристика — вес. Её параметр у каждого слона разный и имеет нормальное распределение на графике x^число_экземпляров * y^вес. Среднее значение параметра 5000 килограмм.
Сведения о распределении веса в популяции заданы шестью равными по ширине диапазонами.1000-2000 кг : 5 слонов2000-3000 кг : 15 слонов4000-5000 кг : 30 слонов6000-7000 кг : 30 слонов7000-8000 кг : 15 слонов8000+ кг : 5 слоновВопрос, как с некоторой точностью переопределить диапазоны весов, опираясь на сведения выше, чтобы получить в каждом диапазоне по пять слонов (± один слон). Диапазонов, соответственно, станет больше чем шесть.
В конечном счёте, это нужно запрогграмировать в JS-функцию, поэтому, если можете описать задачу не математическим, а программным языком, будет даже лучше.
Буду признателен любым подсказкам, которые подтокнут меня в правильную сторону в поиске решения.

21 Авг 2019 в 06:07
169 +1
0
Ответы
1

Для выполнения этой задачи в программировании, вы можете использовать подход, основанный на алгоритме k-means.

Шаги решения:

Создайте массив данных, содержащий все веса слонов.Начните с исходных диапазонов весов и их количества слонов.Выполните кластеризацию данных методом k-means, чтобы разделить все веса на новые группы так, чтобы в каждой группе было примерно одинаковое количество слонов.Выведите новые диапазоны весов и количество слонов, попавших в каждый диапазон.

Вот пример реализации данного подхода на JavaScript:

const data = [/* массив весов слонов */];
const initialRanges = [
{ range: '1000-2000', count: 5 },
{ range: '2000-3000', count: 15 },
{ range: '4000-5000', count: 30 },
{ range: '6000-7000', count: 30 },
{ range: '7000-8000', count: 15 },
{ range: '8000+', count: 5 }
];
function reassignRanges(data, ranges) {
// Реализация алгоритма k-means для кластеризации данных
// Определение новых диапазонов на основе кластеризации
// Вывод новых диапазонов
}
reassignRanges(data, initialRanges);

Не забудьте настроить вашу функцию reassignRanges для выполнения алгоритма k-means и корректного перераспределения диапазонов весов. В итоге вы получите новые диапазоны с примерно одинаковым количеством слонов в каждом из них.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир