Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Маленькая задачка


altex ©   (2007-01-04 19:06:00) 

имеется массив array of integer, в нем числа от 0 до 9, нужно узнать какое из них чаще всего встречается и сколько раз оно встречается?


Palladin   (2007-01-06 13:36:00) [1]


> begin...end ©   (06.01.07 10:32) [6]

Видимо за то, что не учел, что элементов с максимальным количеством значений может быть несколько :)


SergP   (2007-01-06 13:15:00) [2]

> [7] ors_archangel ©   (06.01.07 10:50)
>
> > begin...end ©   (06.01.07 10:32) [6]
>
> Не обращай на него внимания, у него юмор такой :) Ещё надо
> было оптимизацию применить, что если после сканирования
> n/2 элементов какой-либо счётчик > n - i, то данное число
> - самое частое, дальше можно только его подсчитывать, а
> не все счётчики вообще


Это называется оптимизацией? :)


ors_archangel   (2007-01-06 10:50:00) [3]


> begin...end ©   (06.01.07 10:32) [6]

Не обращай на него внимания, у него юмор такой :) Ещё надо было оптимизацию применить, что если после сканирования n/2 элементов какой-либо счётчик > n - i, то данное число - самое частое, дальше можно только его подсчитывать, а не все счётчики вообще


begin...end   (2007-01-06 10:32:00) [4]

> Belorus ©   (05.01.07 21:59) [5]

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


Belorus   (2007-01-05 21:59:00) [5]

> [3] Palladin ©   (04.01.07 19:22)

Зачот... Весьма стёбно...
А вот
> [2] begin...end ©   (04.01.07 19:18)

должно быть стыдно за такой код...


altex   (2007-01-04 19:30:00) [6]

Пасиба товарищи, у меня просто сессия, сижу лекции по линейке учу... в перерывах чтото делаю!


Palladin   (2007-01-04 19:22:00) [7]

Procedure dummy001(Const a:Array of Integer);
var
i:integer;
s:String;
c:array [0..9] of integer;
m:Integer;
Begin

ZeroMemory(@c,sizeof(c));

for i:=0 to length(a)-1 do inc(c[a[i]]);

m:=c[0];
for i:=1 to 9 do if c[i]>m Then m:=c[i];

s:='Количество '+IntToStr(m)+', число(а):';
for i:=0 to 9 do
if c[i]=m then s:=s+IntToStr(i)+',';
SetLength(s,Length(s)-1);

ShowMessage(s);
End;

procedure button1click;
var
a:array of integer;
i:Integer;
begin
randomize;
setlength(a,random(5000)+1000);
for i:=0 to length(a)-1 do a[i]:=random(10);
dummy001(a);
end;


begin...end   (2007-01-04 19:18:00) [8]

Оплата, надеюсь, натурой?

const
 A: array [1..15] of Integer = (1, 2, 3, 2, 4, 4, 2, 2, 7, 8, 3, 1, 2, 4, 9);
var
 B: array [0..9] of Integer;
 I, N: Integer;
begin
 FillChar(B, sizeof(B), 0);
 for I := Low(A) to High(A) do
   Inc(B[A[I]]);
 N := 0;
 for I := Low(B) + 1 to High(B) do
   if B[I] > B[N] then
     N := I;
 ShowMessageFmt('Число %d встречается чаще всего -- %d раз(а)', [N, B[N]])
end


MetalFan_pda   (2007-01-04 19:17:00) [9]

а самому подумать?
а мы подкорректируем если что ;)


Наверх

Титульная страница Поиск, карта сайта Написать письмо