Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 23

Решение задачи о посылках

25.01.2014, 13:14. Показов 1693. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На склад почты прибыло 8 посылок, которые нужно доставить 8ми адресатам,За хранение каждой посылки в течении одного часа взимается плата в размере ci время доставки посылки i до адресата составляет ti часов, i = 1,2,3,......8,

№ 1 2 3 4 5 6 7 8
Сi 8 8 8 4 5 8 7 2
Ti 11 14 10 16 19 18 16 19

№-номер посылки
Сi-плата за хранение
Ti-время доставки

В службе доставки работает только один курьер.
Найдите, в какой последовательности нужно доставить посылки, чтобы суммарная стоимость хранения была минимальной.

Как считаете самый простой вариант её решить это написать программу которая методом полного перебора выберет самый оптимальный? или есть другие варианты не прибегать к программированию?

Добавлено через 1 час 34 минуты
Все же решил написать программу которая будет методомм перебора находить максимально выгодный вариант, в программировании совсем ни буб бум, пока создал только массив нашей таблицы, люди добрые помогите в какую сторону дальше копать?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
var
   a:array[1..15,1..15] of integer;
   i,j,m,n,s:integer;
   x,y:integer; {коордтнаты текущей ячейки}
   napr,shag:byte; {направление движения и размер шага соответственно}
begin
 n :=3;
 m :=8;
 randomize;
 writeln('Таблица');
 for i:=1 to n do
  begin
   for j:=1 to m do
    begin
     a[1,1]:=1;
     a[1,2]:=2;
     a[1,3]:=3;
     a[1,4]:=4;
     a[1,5]:=5;
     a[1,6]:=6;
     a[1,7]:=7;
     a[1,8]:=8;
     
     a[2,1]:=8;
     a[2,2]:=8;
     a[2,3]:=8;
     a[2,4]:=4;
     a[2,5]:=5;
     a[2,6]:=8;
     a[2,7]:=7;
     a[2,8]:=2;
     
     a[3,1]:=11;
     a[3,2]:=14;
     a[3,3]:=10;
     a[3,4]:=16;
     a[3,5]:=19;
     a[3,6]:=18;
     a[3,7]:=16;
     a[3,8]:=19;
     write(a[i,j]:4);
    end;
   writeln;
  end;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2014, 13:14
Ответы с готовыми решениями:

задачи с двумерным массивом, решение должно быть похоже на решение 8-ми классника
Без рандома, все вводится с клавиатуры, без Inc, без Break и т.д. 1)Сколько учеников не имеет в году задолженностей? 2)Распечатать...

Задача о посылках
Я ее решил. И решил вроде правильно! Я высчитывал, сколько денег заплачу за хранение остальных посылок пока понесу какую-то одну. Брал по...

Найти решение уравнения, изоклинную и интегральную кривые, решение задачи Коши
Помогите пожалуйста! а) Найти решение вида: x=a,y=b,y=kx+b y'=\frac{y^2-4}{xy},\\ y'=x-y+2 б) Какая кривая является одновременно...

7
 Аватар для pahuss
79 / 73 / 66
Регистрация: 11.04.2013
Сообщений: 221
25.01.2014, 19:58
Надо начинать доставку с посылок, стоимость хранения которых сама большая. Из тех, у которых стоимость хранения одинаковая, надо выбирать первой ту, которая будет доставлена быстрее всех и т.д.

До какого времени нужно решить эту задачу?
1
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 23
26.01.2014, 07:10  [ТС]
задачу нужно решить до понедельника, А Ваш способ - это ведь чисто интуитивное решение, правильно? Я так делал, к этой задаче подходит, но если я беру другие произвольные числа, то все совсем по другому!
0
 Аватар для pahuss
79 / 73 / 66
Регистрация: 11.04.2013
Сообщений: 221
26.01.2014, 08:59
Если поставить другие числа, то из них тоже надо выбирать по такому принципу. Все должно работать. Да, это интуитивно, но ведь все задачи, которые мы решаем, мы решаем интуитивно.
0
 Аватар для Jener
228 / 225 / 220
Регистрация: 03.07.2012
Сообщений: 466
26.01.2014, 10:10
Первая последовательность 1,2,3,4,5,6,7,8 последняя - 8,7,6,5,4,3,2,1. перебираем последовательности (перестановки) в лексикографическом порядке от первой до последней, при этом считаем стоимость хранения. Меньшая из стоймостей - ответ. Вроде так :
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
uses
  crt;
const
  i_max = 8;  
type TArr = array[1..i_max] of integer;
const
  ci : TArr = ( 8, 8, 8, 4, 5, 8, 7, 2); //плата за хранение
  ti : TArr = (11,14,10,16,19,18,16,19); //время доставки
  a : TArr = (1,2,3,4,5,6,7,8); //первая последовательность
  b : TArr = (8,7,6,5,4,3,2,1); //последняя последовательность
var 
  min, i : integer; c : TArr;
function Cost(a : TArr) : integer; //стоимость хранения
var c, i, j : integer;
begin
  c := 0;
  for i := 1 to i_max-1 do
   for j := i+1 to i_max do
    c := c + ti[a[i]]*ci[a[j]];
  Cost := c;    
end;    
function Eq(a,b : TArr) : boolean; //проверяет одинаковы ли последовательности
var i : byte;
begin
  Eq := false;
  for i := 1 to i_max do
    If a[i]<>b[i] then exit;
  Eq := true;   
end;
procedure GetNext; //генерирует перестановку в лексикограф порядке
var i,j,temp : integer;
begin
  i := i_max;
  while (i>1) and (a[i]<a[i-1]) do dec(i);
  j := i_max;
  while a[j]<a[i-1] do dec(j);
  temp := a[i-1];
  a[i-1] := a[j];
  a[j] := temp;
  for j := 0 to (i_max-i+1) div 2 - 1 do begin
   temp := a[i+j];
   a[i+j] := a[i_max-j];
   a[i_max-j] := temp;
  end;
end;
begin
  clrscr;
//  writeln(Cost(a));
//  writeln(Cost(b)); 
  min := Cost(a);
  write('№ посылки             ');
  for i := 1 to i_max do write(i:4);
  writeln;  
  write('Ci, плата за хранение ');
  for i := 1 to i_max do begin 
    c[i] := a[i];
    write(ci[i]:4);
  end;
  writeln;
  write('Ti, время доставки    ');
  for i := 1 to i_max do write(ti[i]:4);  
  while Not(Eq(a,b)) do begin
    GetNext;
    If Cost(a)<min then begin
      min := Cost(a);
      for i := 1 to i_max do c[i] := a[i];
    end;
  end;
  writeln;
  writeln('№ посылки             ');
  for i := 1 to i_max do write(c[i]:4);
  writeln();
  writeln('Минимальная стоимость хранения : ',Cost(c));
  readln;
end.
1
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 23
26.01.2014, 12:18  [ТС]
Спасибо большое, сейчас буду разбираться, а на каком паскале было написано?
0
 Аватар для Jener
228 / 225 / 220
Регистрация: 03.07.2012
Сообщений: 466
26.01.2014, 13:09
Цитата Сообщение от Svalkiria Посмотреть сообщение
на каком паскале было написано?
FreePascal
0
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 23
26.01.2014, 17:52  [ТС]
Всем спасибо огромное завтра пойду сдавать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2014, 17:52
Помогаю со студенческими работами здесь

Аналитическое решение решение краевой задачи для ОДУ второго порядка
Здравствуйте! Задача: Аналитически найти частное решение ОДУ. Изначально в частных производных, но это оду(если я неправ поправьте!) ...

Найдите общее решение и решение задачи Коши для ОДУ
Найдите общее решение и решение задачи Коши для ОДУ (с разделяющимися переменными, с однородной правой частью, или сводящееся к ним) : (1...

Найти общее решение или решение задачи Коши
вот пример:

Решение задачи
Написал код программы, но он работает некорректно. При вводе числа 43 идет переполнение массива, и в результате получаем неправильный...

Решение задачи
Написал код программы, которая должна посчитать минимальное количество чисел состоящем в заданном числе. проблемав том, что счетчик i...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru