Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 10
1

Два конвейера разливают и закупоривают бутылки. Определить оптимальную расстановку бутылок.

16.07.2015, 08:42. Показов 868. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с задачей.В цеху по производству напитков работают два конвеера.На первом конвеере напиток разливается в бутылки, а во втором происходит закупорка бутылок. После схождения с конвеера очередной бутылки он сразу же поступает на следующий. Поскольку тара используеться разная, каждая бутылка имеет свое времья заполнения и времья закупорки. Написать программу для определенной последовательности бутылок.
А) определяем времья через которое последння бутылка в этой последовательности будет закупорена;
Б)найти такую перестановку заданных бутылок, прикоторой общее времья разлива и закупорки было бы минимальным, определить это время.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2015, 08:42
Ответы с готовыми решениями:

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

Найти оптимальную расстановку
Всем привет. В общем такая задача. Есть массив цен на предметы и есть 2 значения: минимальная цена...

Определить, сколько можно купить бутылок лимонада на n копеек
Бутылка лимонада стоит 45 копеек.Сколько можно купить бутылок лимонада на n копеек,если...

Динамическое программирование. Определить оптимальную загрузку самолетов с грузоподъёмностью от G до 1,3G
Помогите решить задачу на динамич. программирование: Самолет имеет максимальную...

4
David_Ok
16.07.2015, 08:50
  #2

Не по теме:

Цитата Сообщение от наглый Посмотреть сообщение
времья
В книге так и написано ?

0
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 10
16.07.2015, 09:37  [ТС] 3
David_Ok, типа того. задача с олипиады по инфе. для младших классов. Не пойму сам алгоритм, конвеер по разливу наливает все время пока закупориват другой? в оьратонм случае время разлива и закупорки, начиная со второй бутылки равно???

Добавлено через 8 минут
Вот то что я пока "нарешал"
C++
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
#include <iostream>
#include <windows.h>
#include <ctime>
using namespace std;
 
 
int main() {//bottles;
    srand(time(0));
    const int n=4;
    int arr1[n],arr2[n],arr3[n],h=0,res=0;
    
    for(int i=0;i<n;i++){
        arr1[i]=1+rand()%9;
        cout<<" "<<arr1[i];
    }
    cout<<endl<<endl;
    cout<<" "<<" ";
        for(int i=0;i<n;i++){
        arr2[i]=1+rand()%9;
        cout<<" "<<arr2[i];
    }
    cout<<endl<<endl;
    for(int i=1;i<n;i++){
        if(arr2[i-1]>arr1[i])
        arr3[i]+=arr1[i]+(arr2[i-1]-arr1[i]);
        //if(arr1[i-1]>arr2[i])
        //res+=arr2[i]+(arr1[i-1]-arr2[i]);
        res+=arr1[i]+arr3[i];
    }
    res=res+arr1[0]+arr2[n-1];
    cout<<res;//time needed for unsorted bottles;
    cout<<endl<<endl;
Добавлено через 30 минут
В случе если розливочный конвеер может простаивать(разливает только по одной бутылке) по-моему будет так
for(i=1;i<n;i++){
( arr1[i]<arr2[i-1])?:time=2*arr[i];
(arr1[i+1])<arr2[i])?:time=2*arr1[i+1];
}
time+=arr1[0]+arr2[n-1];
кто нибудь подскажет?
0
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
16.07.2015, 09:38 4
Цитата Сообщение от David_Ok Посмотреть сообщение
времья
Цитата Сообщение от наглый Посмотреть сообщение
конвеер
*********
0
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 10
16.07.2015, 11:48  [ТС] 5
И звините за грамматику. Я сам украиноязычный, перевожу как умею.

Добавлено через 12 минут
Короче вот такой вот код получаеться. Я правильно понял алгоритм??
#include <iostream>
#include <windows.h>
#include <ctime>
using namespace std;


int main() {//bottles;
srand(time(0));
const int n=4;
int arr1[n],arr2[n],arr3[n],h=0,res=0,res1=0;

for(int i=0;i<n;i++){
arr1[i]=1+rand()%9;
cout<<" "<<arr1[i];
}
cout<<endl<<endl;
cout<<" "<<" ";
for(int i=0;i<n;i++){
arr2[i]=1+rand()%9;
cout<<" "<<arr2[i];
}
cout<<endl<<endl;
for(int i=1;i<n;i++){
if(arr2[i-1]>arr1[i])
arr3[i]=2*arr2[i-1];
if(arr1[i]>arr2[i])
arr3[i]=2*arr1[i];
//if(arr1[i-1]>arr2[i])
//res+=arr2[i]+(arr1[i-1]-arr2[i]);
res+=arr3[i];
}
res1=res+arr1[0]+arr2[n-1];
cout<<res1;//time needed for unsorted bottles;
cout<<endl<<endl;
getch();
return 0;
}

Добавлено через 1 час 55 минут
Контейнер у меня работает так:

int main() {//bottles;
srand(time(0));
const int n=10;
int arr1[n],arr2[n],arr3[n],h=0,res=0,res1=0,max=0,max1=0;

for(int i=0;i<n;i++){
arr1[i]=1+rand()%9;
cout<<" "<<arr1[i];
}
cout<<endl<<endl;
cout<<" "<<" ";
for(int i=0;i<n;i++){
arr2[i]=1+rand()%9;
cout<<" "<<arr2[i];
}
cout<<endl<<endl;
for(int i=1;i<n;i++){
if(arr2[i-1]>=arr1[i])
arr3[i]=arr2[i-1];
else
arr3[i]=arr1[i];

res+=arr3[i];
}
res1=res+arr1[0]+arr2[n-1];
cout<<res1<<"time needed for unsorted bottles"<<endl;
getch();
return 0;
}
0
16.07.2015, 11:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2015, 11:48
Помогаю со студенческими работами здесь

Определить правильную расстановку "спичек" в игре
Я начал свою игру головоломки со спичками, они перемещаются, поворачиваются, каждая спичка это...

Креатив из бутылки
Всем привет! Есть у меня бутылка, пустая. Показалась прикольной. Захотелось сделать в ней...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru