Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Ксю-_-
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 2
1

Разделить 12 литров воды поровну с помощью 2 пустых ведер с емкостью 8 и 5 литров

09.09.2015, 18:34. Просмотров 1879. Ответов 5
Метки нет (Все метки)

Имеется 12 литров воды,нужно разделить поровну с помощью 2 пустых ведер с емкостью 8 и 5 литров.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2015, 18:34
Ответы с готовыми решениями:

Используя две емкости 3 л. и 5 л., нужно набрать в столитровую бочку M литров воды
Используя две емкости 3л і 5л нужно набрать в столитровую бочку бочку M литров воды, при этом...

В двухсот (200) литровую бочку воды ежедневно по 1% от первоначальных 50 литров доливают воду
В двухсот (200) литровую бочку воды ежедневно по 1% от первоначальных 50 литров доливают воду. 1....

Сколько литров можно измерить с помощью имеющихся канистр
Помогите пожалуйста решить задачу: Испортился как-то на одной заправке счетчик бензина....

смешали v1 литров воды с температурой t1 градусов Цельсия с v2 литрами воды с температурой t2 градусов Цельсия. Вычислите объем и температуру
смешали v1 литров воды с температурой t1 градусов Цельсия с v2 литрами воды с температурой t2...

Метод Монте-Карло: разлить М литров жидкости в бутыли емкостью P1, P2 и P3 литров
Требуется разлить М литров жидкости в бутыли емкостью P1 л, P2 л и P3 л таким образом, чтобы все...

5
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4665 / 3347 / 3973
Регистрация: 05.06.2014
Сообщений: 16,723
09.09.2015, 18:52 2
Ксю-_-, это точно на Паскале решать нужно? Кажется, это задача из курса математики 4-го или 5-го класса.
0
Ксю-_-
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 2
09.09.2015, 19:11  [ТС] 3
да,я не знаю че это за задача но нам ее не в 4 и 5 классе дали,а на 2 курсе
0
Puporev
Модератор
56573 / 43272 / 29916
Регистрация: 18.05.2008
Сообщений: 102,926
09.09.2015, 20:30 4
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

http://festival.1september.ru/articles/643198/
Задача номер 6.
Вот здесь
Задачка на переливание воды
решал похожую задачу графически, может также нужно? Или просто вывести переливания в текстовом режиме.
Само решение все-таки делается методом тыка, или перебора всех вариантов.

Добавлено через 1 час 9 минут
Я был не прав. Полазил в гугле и узнал что подобные задачи решаются с помощью графов или методом бильярдного шара( или стола). Но тут я пока точно пас.
0
Fikafusik
22 / 22 / 34
Регистрация: 29.04.2014
Сообщений: 145
09.09.2015, 23:11 5
Вот моё решение, при условии, что изначальный источник бесконечен. Решение, вроде бы, оптимальное. Во входном файле пишете три натуральных числа:
n m l
, где n - максимальное количество воды в первом сосуде, m - максимальное количество воды во втором сосуде, l - необходимое количество воды. В Вашем случае это "8 5 6". Программа выдаёт:
[0 : 0]
[8 : 0]
[3 : 5]
[3 : 0]
[0 : 3]
[8 : 3]
[6 : 5]
Т. е. 6 литров было получено после 6 переливаний.
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
Type
  Vessel = Class
  Private
    n, nmax: Int64;
  Public
    Constructor Create(MaxVol: Int64);
    Procedure PourFrom;
    Begin
      n := 0;
    End;
    Procedure PourInto;
    Begin
      n := nmax;
    End;
    Procedure Transfuse(Var v: Vessel);
    Var
      tmp: Int64 := v.n;
    Begin
      v.n := v.nmax < v.n + n ? v.nmax : v.n + n;
      n := 0 > n + tmp - v.nmax ? 0 : n + tmp - v.nmax;
    End;
  End;
  Constructor Vessel.Create(MaxVol: Int64);
  Begin
    nmax := MaxVol;
  End;
  
Var
  t: Text;
  n, m, l: Int64;
  v1, v2: Vessel;
  
Begin
  Assign(t, 'Input.txt');
  Reset(t);
  Readln(t, n, m, l);
  Close(t);
  v1 := New Vessel(n);
  v2 := New Vessel(m);
  Milliseconds;
  WritelnFormat('[{0} : {1}]', v1.n, v2.n);
    Repeat
      If v1.n = 0 then 
        Begin
          v1.PourInto;
          WritelnFormat('[{0} : {1}]', v1.n, v2.n);
        End;
      If v2.n = v2.nmax then 
        Begin
          v2.PourFrom;
          WritelnFormat('[{0} : {1}]', v1.n, v2.n);
        End;
      v1.Transfuse(v2);
      WritelnFormat('[{0} : {1}]', v1.n, v2.n);
    Until (v1.n = l) or (v2.n = l);
  WritelnFormat('Решение заняло {0} мс.', MillisecondsDelta);
End.
0
Puporev
Модератор
56573 / 43272 / 29916
Регистрация: 18.05.2008
Сообщений: 102,926
10.09.2015, 08:54 6
Думаю что в этой задаче нужно выводить результат в виде
[12 : 0 : 0]
[4 : 8 : 0]
[4 : 3 : 5]
[9 : 3 : 0]
[9 : 0 : 3]
[1 : 8 : 3]
[1 : 6 : 5]
[6 : 6 : 0]
0
10.09.2015, 08:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2015, 08:54

В посуде А (c) литров воды, в посуде В (х) литров воды. Из А сосуды вылили половину воды в сосуд В , потом из
В посуде А (c) литров воды, в посуде В (х) литров воды. Из А сосуды вылили половину воды в сосуд В...

Требуется разлить М литров жидкости в бутыли емкостью P1 л, P2 л и P3 л
Помогите пожалуйста решить задачу... завтро зачет 13. Требуется разлить М литров жидкости в бутыли...

Сколько литров каждого сока надо взять, чтобы приготовить S литров коктейлей?
В кафе готовят коктейль из малинового и ананасового соков. Известно, что X литров малинового сока...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru