IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача о вероятности, Задача полностью решена
Zxzc
сообщение 6.05.2006 22:33
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Максим

Репутация: -  0  +


Помогите решить задачу:
Мальчик накапливал в копилке деньги. Однажды он увидел в магазине некий товар стоимостью S.
Дело в том что копилка заполнена не до конца, а разбивать ее можно лишь при 100% уверенности,
что количества денег будет достаточно. Но он не помнит сколько монет какого достоинства клал в копилку. Также известна масса пустой копилки и, конечно, текущая масса.
Известны соотношения Номинал <--> Масса монеты. Нужно определить минимальную вероятность и если она равна 100% вывести:"Вперед!!!!!!!!!!!" smile.gif
Я решил задачу, получилось что количество вложенных циклов равно количеству разновидностей монет.
Проблема в том, что заранее не известно число разновидностей
монет. blink.gif Также важно, что монеты, номинал которых больше, не всегда тяжелее. Но это не проблема...
Препод предложил идти через двумерный массив(M,N его - большие числа). И каким-то замысловатым способом из 2-х массивов(в первом - номиналы, во втором - массы) получаем массив [m,n]-й элемент к-рого - минимальное кол-во денег... Потом он сам запутался... wacko.gif
Мда.. blink.gif Давно я так не попадался...

Сообщение отредактировано: Zxzc - 13.05.2006 21:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Zxzc
сообщение 13.05.2006 12:10
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Максим

Репутация: -  0  +


Внимание! Я достал-таки исходники!
1:
const Len=100;
var e,f,n,i,j:integer;
P, W:array[1..Len] of integer;
D:array[0..Len, 0..Len] of integer;
function min(a,b:integer):integer;
begin
if (a<b) then min:=a else min:=b;
if (b<0) then min:=a;
end;
begin
writeln('‚ўҐвЁвҐ ўҐб Їгбв®© Ё Ї®«­®© Є®ЇЁ«ЄЁ зҐаҐ§ Їа®ЎҐ«');
readln(e, f); f:=f-e;
writeln('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў®вЁЇ®ў ¬®­Ґв');
readln(n);
writeln('‚ўҐ¤ЁвҐ ¤®бв®Ё­бвў® Ё ўҐб ¬®­Ґв зҐаҐ§ Їа®ЎҐ«');
for i:=1 to n do
begin
write(i,' ¬®­Ґвл: ');
readln(P[i], W[i]);
end;
for i:=0 to n do
for j:=1 to f do
D[j, i]:=maxint;

for i:=1 to n do
for j:=W[i] to f do
D[j, i]:=min(D[j,i-1], D[j-W[i],i]+P[i]);

for j:=1 to f do
begin
for i:=1 to n do
write(D[j, i]:5,' ');
writeln;
end;
writeln('ЊЁ­Ё¬ «м­ п б㬬 а ў­ : ',D[f, n],' ',f);
readln;
end.

В чем суть этого решения?

Это,(
var e,f,n,i,j:integer;
m:longint;
P, W:array[1..500] of integer;
d:array[0..10000] of longint;

begin
writeln('‚ўҐвЁвҐ ўҐб Їгбв®© Ё Ї®«­®© Є®ЇЁ«ЄЁ зҐаҐ§ Їа®ЎҐ«');
readln(e, f); f:=f-e;
writeln('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў®вЁЇ®ў ¬®­Ґв');
readln(n);
writeln('‚ўҐ¤ЁвҐ ¤®бв®Ё­бвў® Ё ўҐб ¬®­Ґв зҐаҐ§ Їа®ЎҐ«');
for i:=1 to n do
begin
write(i,' ¬®­Ґвл: ');
readln(P[i], W[i]);
end;
D[0]:=0; for i:=1 to f do D[i]:=maxlongint;
for i:=1 to n do
begin
j:=W[i];
while j<=f do
begin
m:=D[j-W[i]];
if m<maxlongint then m:=m+P[i];
if m<D[j] then D[j]:=m;
j:=j+1;
end;
end;
if D[f]=maxlongint then writeln('No')
else writeln('ЊЁ­Ё¬ «м­ п б㬬 а ў­ : ',D[f]);
readln;
end.

) решение являлется усовершенствованной версией предыдущего, более оптимальное, но и более запутанное.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Zxzc   Задача о вероятности   6.05.2006 22:33
volvo   Я решил задачу, получилось что количество вложенны...   6.05.2006 23:06
Zxzc   :no1: , рекурсия не причем. Вот моё, абсолютно не ...   7.05.2006 22:51
volvo   :no1: , рекурсия не причем. Уверен? Я - нет... Смо...   7.05.2006 23:39
мисс_граффити   2. Если бы меньшей монете соответствовал меньший...   8.05.2006 9:23
zZz   а не судьба определить удельное достоинство каждой...   8.05.2006 10:25
Zxzc   volvo, MaxAvail в моем решении найден не верно. Го...   8.05.2006 21:28
zZz   одно маленькое дополнение: может получиться так чт...   8.05.2006 21:53
Zxzc   Да вся эта задача сплошная неприятность!...   8.05.2006 22:23
zZz   предлагаю найти число монет мин удельного достоинс...   8.05.2006 22:50
Zxzc   :blink: !!!!!!!!...   8.05.2006 22:51
zZz   по-моему это все то нахождение монеты с наименьшей...   8.05.2006 23:25
Zxzc   А нам это надо? Удельное достоинство изначально п...   9.05.2006 10:31
lapp   [b]А! Я наконец-то понял суть проблемы. Раньш...   10.05.2006 4:18
lapp   Заинтересовала меня эта задачка тоже.. Мужики, вы...   9.05.2006 14:52
Zxzc   Я понял ход твоих мыслей! :yes2: Т.е. если не...   12.05.2006 6:28
lapp   > Я понял ход твоих мыслей! :yes2: > Т...   12.05.2006 6:42
Zxzc   Я сейчас готовлюсь к экзаменам и у меня даже нет в...   12.05.2006 21:52
Zxzc   Внимание! Я достал-таки исходники! 1: con...   13.05.2006 12:10
lapp   Внимание! Я достал-таки исходники! Перво...   13.05.2006 14:12
Zxzc   :yahoo!: Вы-ход-ной! Наконец-то провел все...   13.05.2006 21:41


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 3.07.2025 20:59
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"