Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2014, 02:25   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Мысли вслух...
Мы же можем почистить массивы. Удалить в той тысяче массивов все числа, которых нет в поисковом массиве, а в поисковом массиве удалить все числа, которых нет в тысяче. Теперь останутся только числа, которые одновременно есть в поисковом массиве и в той заметно поредевшей тысяче. А вот теперь нужно думать дальше
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.02.2014, 07:23   #12
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

Для поиска 3 самых часто встречающихся чисел, можно вот так сделать. Надеюсь, код понятен.

Код:
type
	TArr = array [1..100] of record
		value, cnt : Integer
	end;

function PopMax(var a : TArr; const n : Integer) : Integer;
var
	m, i : Integer;
begin
	m := 1;
	for i := 2 to n do 
		if a[i].cnt > a[m].cnt then m := i;
	
	PopMax := a[m].value;
	a[m].cnt := -1
end;

var
	n, m, i, j, k : Integer;
	b : array [1..100, 1..100] of Integer;
	a : TArr;

begin
	ReadLn(n);
	for i := 1 to n do begin
		Read(a[i].value);
		a[i].cnt := 0
	end;

	ReadLn(m);
	for i := 1 to m do 
		for j := 1 to n do 
			Read(b[i, j]);


	for k := 1 to n do
		for i := 1 to m do
			for j := 1 to n do 
				if b[i, j] = a[k].value then begin
					Inc(a[k].cnt); Break;
			end;
	
	WriteLn(PopMax(a, n), ' ', PopMax(a, n), ' ', PopMax(a, n))
end.
http://ideone.com/CGWRe2
PathTheir вне форума Ответить с цитированием
Старый 18.02.2014, 07:31   #13
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

Но вывод конечно и изменить можно
Код:
for i := 1 to c do {где c - кол-во чисел, которое нужно вывести}
    WriteLn(PopMax(a, n), ' ')
PathTheir вне форума Ответить с цитированием
Старый 18.02.2014, 07:58   #14
Puhovoi
Пользователь
 
Аватар для Puhovoi
 
Регистрация: 16.10.2010
Сообщений: 47
По умолчанию

Спасибо, часто встречающиеся найти как раз не проблема, да в контексте задачи не совсем актуально.
Puhovoi вне форума Ответить с цитированием
Старый 18.02.2014, 08:19   #15
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Не понял.. Вам нужно
Цитата:
- найти 8 или N элементов исходного массива, которые бы присутствовали в максимальном количестве остальных массивов.
Именно это и делает код выше..
И Ваш ответ на Ваш пример правильный, именно тот, который Вы дали сами..
Poma][a вне форума Ответить с цитированием
Старый 18.02.2014, 09:02   #16
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Poma][a, например, числа 5 6 7 встречаются по 100 раз, но в разных массивах (пересечение множеств номеров массивов пусто), а числа 1 2 3 встречаются 3 раза, но присутствуют одновременно в одних и тех же массивах. Ответом должно быть 1 2 3.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.02.2014, 10:31   #17
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

За пояснение спасибо. Стоило наверное конкретизировать задачу в первом посте, потому что не сразу очевидно, что требуется.
PathTheir вне форума Ответить с цитированием
Старый 18.02.2014, 10:42   #18
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,544
По умолчанию

мысли вслух...

это конечно же идеальный случай.
Изображения
Тип файла: jpg 1.JPG (100.4 Кб, 142 просмотров)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.02.2014, 14:34   #19
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Poma][a, например, числа 5 6 7 встречаются по 100 раз, но в разных массивах (пересечение множеств номеров массивов пусто), а числа 1 2 3 встречаются 3 раза, но присутствуют одновременно в одних и тех же массивах. Ответом должно быть 1 2 3.
Спасибо, но понятнее не стало..
Что нужно вывести при тесте :
Код:
1 2 3 4 5 6
1 2 3
4 1 0
4 2 0
4 3 0
4 4 0
4 5 0
4 6 0
А при :
Код:
1 2 3 4 5 6
1 2 0
2 3 0
4 5 6
1 2 0
2 3 0
?

А при :
Код:
1 2 3 4 5 6
1 2 0
2 3 0
4 5 6
1 2 0
2 3 0
4 5 6

Последний раз редактировалось Poma][a; 19.02.2014 в 07:30.
Poma][a вне форума Ответить с цитированием
Старый 18.02.2014, 15:24   #20
Puhovoi
Пользователь
 
Аватар для Puhovoi
 
Регистрация: 16.10.2010
Сообщений: 47
По умолчанию

При N=3:

1 2 3

4 5 6

4 5 6
4 5 6

Не конкретно числа, а индексы дочерних массивов, где они содержаться, конечно.
Puhovoi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск оптимального пути из точки A в точку Б spirit-ua Общие вопросы Delphi 5 14.02.2014 13:36
создание списка; поиск оптимального плана estoneman Microsoft Office Excel 11 18.03.2013 20:32
Поиск оптимального решения Lamborghini Помощь студентам 4 12.10.2012 23:24
Паскаль. Поиск оптимального решения TuuuZ Помощь студентам 5 26.07.2010 16:54
Поиск оптимального решения Uchiha Общие вопросы Delphi 12 19.02.2008 23:04