Массивы. Гистограммы, разделяющие массив на подмножества и подсчитывающие количество элементов в каждой группе. Java

#java #arrays #histogram

#java #массивы #гистограмма

Вопрос:

Привет, я действительно сбит с толку этим методом, который я должен создать. Мне нужно создать массив гистограмм с категориями деления num, т. е. выбрать разумный диапазон целых чисел и размер шага для numdivisons, чтобы охватить весь диапазон элементов в массиве. @возвращает гистограмму массива, в позиции i которой содержится * количество наблюдений в подразделении i */

пример: {1,3,4,5,10,15,17}.

Если numdivisions=2, то нам нужно разделить диапазон (от 1 до 17) на 2 подразделения. Например, диапазон от 0 до 10 (не включен) и от 10 до 20. В этом случае имеется 4 значения в диапазоне от 0 до <10 и 3 значения от 10 до 20.
Эта гистограмма для numdivisions= 2 будет представлять собой массив {4,3}.

public int[] гистограмма (int numdivisions) кто-нибудь может сказать мне, какой был бы лучший способ сделать это? Спасибо

Комментарии:

1. для моего понимания задачи вам нужно создать разделение, где количество элементов во всех подмассивах равно ( -1, если размер% разделов != 0) я прав?

2. нет, я так не думаю .. это означает, что это означает, что если пользователь вводит numdivsions, то мы должны создать stepsize, в который попадает каждый из наших элементов. например. {1,2,3,4,56} и numdivisions, скажем, 3. тогда размер шага был бы 1-3 и 4-56. таким образом, новый массив будет равен {3,2}, т.е. сколько элементов попадает в размер каждого шага. вы понимаете, что я имею в виду? 😮

Ответ №1:

Простой:

  1. Получите минимальный и максимальный элементы вашего массива
  2. Возьмите разницу и разделите ее на num, получая «шаг»
  3. Теперь выполните итерацию по массиву, поместив число n в слот i таким образом, чтобы i * step <= n — min < (i 1) * step

Комментарии:

1. да. спасибо. можете ли вы, пожалуйста, попытаться объяснить, что вы сделали на шаге 3? я имею в виду, откуда взялось n? n — это количество элементов?

2. «n» — это текущий элемент, с которым вы выполняете итерацию.