10.01.2011 / 18:03 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| Naik, ЧИТАЙ Разбиение на пары. Задано 2n целых чисел. Требуется разбить их на пары, так, чтобы сумма произведений чисел в парах была как можно больше. Например, если заданы числа 1,2,3,4 то оптимальный вариант разбиения их на пары - (1,2) и (3,4). в Этом случае искомая сумма рвана 14. Требуется написать программу, которая по заданному числу n и набору из 2n заданных случайным образом выдаст их оптимальное разбиение на пары. |
10.01.2011 / 19:36 | |
aleksey Пользователь Сейчас: Offline
Имя: Алексей Откуда: Saint-Petersburg Регистрация: 22.01.2010
| Мой вариант решения задачи2 на Паскалеprogram q;
var n,i,k,d:Integer;
a:array[0..200] of integer;
begin
readln(n);
Randomize;
for i:=1 to 2*n do begin
a[i]:=random(200)-100;
write(a[i],' ');
end;
for i:=1 to 2*n do
for k:=i to 2*n do
if a[k]<a[i] then begin
d:=a[i];
a[i]:=a[k];
a[k]:=d;
end;
writeln();
for i:=1 to 2*n do begin
write('(',a[i],',',a[i+1],')');
i:=i+1;
end;
writeln();
writeln();
end.
|
18.01.2011 / 22:26 | |
XakepPRO Пользователь
| Что-то меня в этой теме долго не было. Новая, достаточно легкая задачка. Здесь можно схалявить: если будет правильным ответ, то дам 70 монет, если выложите решение, то ещё 50.
Нужно вычислить значение дроби (Q):
|
19.01.2011 / 05:33 | |
SaRmAt95 Пользователь
| если моя теория правильная то вот решение: 99-100
|
19.01.2011 / 08:51 | |
XakepPRO Пользователь
| SaRmAt95 (19.01.2011/05:23) q=1/-1?Это ты как бы упростил? Если да, то неправильно. 99-100, это такой ответ? Тоже неправильно.
Эту задачу легче решить программным путём.
|
19.01.2011 / 09:25 | |
aleksey Пользователь Сейчас: Offline
Имя: Алексей Откуда: Saint-Petersburg Регистрация: 22.01.2010
| XakepPRO, конечно легче програмным, прийду домой напишу
|
19.01.2011 / 15:33 | |
aleksey Пользователь Сейчас: Offline
Имя: Алексей Откуда: Saint-Petersburg Регистрация: 22.01.2010
| Как и обещал. Pascal:program drob;
var i:integer;
q:real;
begin
q:=100;
for i:=99 downto 1 do begin
q:=i+(1/q);
end;
q:=1/q;
writeln(q);
end.
Результат: 0,697774657964008 |
19.01.2011 / 16:12 | |
XakepPRO Пользователь
| Правильно , но задача всё-таки лёгкая, не так ли? Обещанные 70+50 монет выплатил. |
19.01.2011 / 16:27 | |
aleksey Пользователь Сейчас: Offline
Имя: Алексей Откуда: Saint-Petersburg Регистрация: 22.01.2010
| XakepPRO (19.01.2011/16:12) но задача всё-таки лёгкая, не так ли?конечно, ни на секунду не задумывался над алгоритмом сразу написал и всё |