1 / 1 / 0
Регистрация: 24.04.2011
Сообщений: 24
|
|
1 | |
Найти моду в массиве10.07.2012, 12:08. Показов 29632. Ответов 17
Метки нет (Все метки)
Найти в массиве моду. *Массив размером m, m – натурал. число.
(мода- элемент ряда, который встречается наиболее часто.)
0
|
10.07.2012, 12:08 | |
Ответы с готовыми решениями:
17
Найти моду в массиве Найти моду последовательности за линейное время O(N) Найти среднее, моду и медиану по заданному массиву Ребята, как найти моду ряда чисел?=) |
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|
10.07.2012, 12:29 | 2 |
Код написан здесь
Мода массива
0
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
10.07.2012, 12:31 | 3 |
Каковы максимальные значения m,n ???
0
|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|
10.07.2012, 12:38 | 4 |
0
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
||||||
10.07.2012, 21:25 | 5 | |||||
В задаче не указан максимальный размер массива (m) и не указано, какие значения могут принимать элементы массива . Предположим, что речь идёт массиве натуральных чисел, максимальное из которых n<32768.
запустите программу и посмотрите сколько времени занимает поиск моды в моём варианте, и в предложенной ссылке Мода массива для массива из 30000 элементов (я объединил оба кода) А, скажем, для 100000 элементов... не дождётесь второго результата (а мой - почти мгновенно). Вот поэтому я и спрашивал, каков размер массива () и каково максимальное значение его элементов.
2
|
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
|
|
11.07.2012, 15:44 | 6 |
В своем коде вы избавились от вложенного цикла за счет второго массива и получили лучшую скорость, это хорошо. За это плюсую.
0
|
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 3
|
||||||
27.08.2012, 19:09 | 7 | |||||
Спасибо!
Использовал ваш код,но немного переделал под vector. И ещё раз большое спасибо!
0
|
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 3
|
||||||
08.11.2015, 19:26 | 8 | |||||
в универе написал, вроде как работает. код на Си
0
|
166 / 69 / 17
Регистрация: 22.03.2011
Сообщений: 196
|
||||||
08.11.2015, 21:52 | 9 | |||||
Vetaliuy,
0
|
0 / 0 / 0
Регистрация: 30.12.2016
Сообщений: 77
|
|
25.01.2017, 00:41 | 10 |
как этот код вообще может чтото искать если в самом начале rmax = 0;
и cmax = 0; а дальше ниже в цикле проверяется выражение if (cmax > rmax) как они могут быть больше или меньше если они оба по условию равны нулю и нигде до этого момента в них не внисится изменение Добавлено через 26 минут объясните плс как работает код целиком... и зачем нам нужен такой цикл с итерацией. Что делает итерация я чет не въеду.
0
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|||||||||||
25.01.2017, 14:10 | 11 | ||||||||||
Мода - это значение, которое встречается наибольшее количество раз.
Один из способов поиска моды заключается в многократном просмотре исходного массива a[] и подсчете количества повторений его одинаковых элементов. Второй способ, заключается в использовании дополнительного целочисленного массива b[], и однократном прохождении исходного массива a[]. Этот способ удобен для целочисленного массива a[] с неотрицательными значениями элементов, поскольку эти значения будут использоваться в качестве индексов массива b[] Например, дан целочисленный массив a[1000], значения элементов которого не отрицательны и не превышают 10. Определим и обнулим новый массив b[11], максимальный индекс которого (10) равен максимально возможному значению элемента массива a[1000] int b[11] ={}; Просмотрим массив a[1000], увеличивая на единицу элементы массива b c индексами, равными значениям элементов массива а for (int i=0; i<1000; i++) b[a[i]]++; Таким образом значения элементов массива b[11] станут счетчиками, обозначающими сколько раз встречается в массиве a[1000] любое значение от 0 до 10-ти включительно. Например значение b[5] покажет сколько раз в массиве a[1000] повторилось число 5. Для нахождения моды массива a[1000] достаточно будет найти индекс наибольшего элемента массива b[11]. Но можно и для вещественного или строкового массива а[] найти моду за один проход, только для этого следует воспользоваться дополнительным ассоциативным массивом:
0
|
25.01.2017, 15:21 | 12 | |||||
0
|
0 / 0 / 0
Регистрация: 30.12.2016
Сообщений: 77
|
||||||
25.01.2017, 23:50 | 13 | |||||
LVV, я новичок, поэтому и решил эту задачу по своему...
Ниже код моего варианта поиска моды:
в этом случае нам не нужен массив размером в 1000 итд. Сравнить время работы программ точно не смог, пробовал выполнить функцией clock(); но погрешность была очень большая. Чет вчитываюсь в ваш вариант не все понимаю... P.S. хотелось бы услышать критику, по поводу этого варианта.
0
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|||||||||||
26.01.2017, 06:25 | 14 | ||||||||||
Для целых неотрицательных чисел всё очень просто (читай описание выше):
0
|
3 / 3 / 0
Регистрация: 15.10.2015
Сообщений: 60
|
||||||
26.02.2017, 16:59 | 15 | |||||
Если кому-то будет актуально или для замечаний, я дописал код, по быстрому алгоритму LVV и, чтобы выводил все варианты мод (мин. ручной ввод значений).
За критику/ошибки буду благодарен:
0
|
2 / 2 / 0
Регистрация: 16.08.2015
Сообщений: 31
|
||||||
07.04.2017, 04:56 | 16 | |||||
Вот мой вариант. Буду рад если кому то пригодится!
1
|
3 / 2 / 3
Регистрация: 07.03.2018
Сообщений: 217
|
|
07.10.2018, 20:03 | 17 |
А как сделать так,чтобы программа выводила все одинаковые моды?Например у меня сгенерировался массив из 1000 элементов и в нем есть 3 одинаковые моды.Как реализовать их вывод?
0
|
3 / 3 / 0
Регистрация: 28.02.2018
Сообщений: 4
|
||||||
14.02.2020, 14:00 | 18 | |||||
0
|
14.02.2020, 14:00 | |
14.02.2020, 14:00 | |
Помогаю со студенческими работами здесь
18
Массивы: найти моду, стоит ли изобретать колесо!? где моду прочитать о деревьях с нуля? В двухмерном массиве найти максимальный и минимальный элементы и их координаты в массиве Не могу найти ошибку с подсчетом суммы элементов в интервале[a,b] в динамическом одномерном массиве массиве. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |