Веселый молочник
Трое ребят пришли к веселому молочнику за молоком с битонами 3, 4 и 5 литра и попросили налить каждому по 2 литра.У молочника есть 2 полных  больших фляги по 50 литров каждая. Немного подумав, молочник легко справился с этим заданием.
А вы ?
А вы ?
Ответ
Рейтинг: : 5лит   3лит   4лит   50лит   50лит
-----------------------------------------
0 3 4 46 47
5 0 2 46 47
2 3 2 46 47
0 3 2 46 49
3 0 2 46 49
5 0 2 44 49
2 3 2 44 49
2 2 2 44 50
-----------------------------------------
0 3 4 46 47
5 0 2 46 47
2 3 2 46 47
0 3 2 46 49
3 0 2 46 49
5 0 2 44 49
2 3 2 44 49
2 2 2 44 50
+116
  
Комментарии: 
kir, 2009-06-30
Читая условия задачи я понял под одним переливанием переливание из одной емкости в другую, в ответе на первом же переливании из двух емкостей в две, то есть два переливания.
во втором переливании снова из двух емкостей, но в одну и так далее...KM, 2009-06-30
ответ не соответствует условию задачи.
У меня получилось за 9 переливаний, если по условиюkir, 2009-06-30
посмотрел внимательнее приведенный ответ и подумал, что уж если и следовать такому решению, то проще было бы так:
1. 0 3 4 46 47
2. 5 0 2 46 47
3. 2 3 2 46 47
4. 2 0 2 49 47
5. 2 3 2 49 44
6. 2 2 2 50 44Весёлое молочко ха...!!!ха...!!!, 2009-07-16
Наполняем 5л бидон, из него переливаем в 3л, в результате в 5л остаётся 2литра, переливаем их в 4л. 
Затем из 3л, переливаем обратно в 5л, доливаем в него из фляги, затем из полного 5л, опят переливаем в 3л. 
В результате в 5л и 4л бедонах - по 2 литра молока.
Выливаем из 3л в большую флягу, в результате в ней будет 50-4=46 литров. Из второй полной 50 л-й фляги набиратем 3л бидоном и переливаем в 1-ю флягу, в результате в ней будет 46+3=49 литров. Набираем из второй фляги 3л бидон, отливаем из него в 1-ю флягу, что бы наполнить её до 50 литров, для чего нужно 1литр, и в результате в 3л бедоне останется 2л. 
Таким образом получим 3-х, 4-х и 5 литровые бидоны, наполненные по 2 литра молока.Лист, 2009-08-02
у него была мерная банка,двухлитровая...Алекс, 2009-10-18
Элементарно Ватсон
Берем 4л переливаем в 3л остаток 1л и так два раза получаем 2лШурик =), 2009-10-28
Наполняем 4л бидон. Выливаем половину в 3л.б. и половину в 5л.б. Затем наполняем 4л. бидон наполовину. =)Артём, 2009-12-08
Откровенный бред. Недозадача.
Так как в условии не зашито не единого правила в действии, я сделал бы это самым быстрым и умным способом. Налил бы в 3, 4 и 5 без никаких переливаний.дамир, 2010-05-29
из 50 льём в5.1б-45 осталось. переливаем с 5 в 3, остается 2. из 3 выливаем в 45=48.Теперь с другой 50 льем в 3,затем выливаем с 3 в 4,продеелываем еще раз и получается в 3 остается 2. А из 4 доливаем в 48 и все 2 2 2$Wol@nD$, 2010-10-04
50,50,0,0,0
50,45,5,0,0
50,45,2,0,3
50,48,2,0,0
50,48,0,2,0
45,48,5,2,0
45,48,2,2,3
48,48,2,2,0
48,48,2,0,2
48,44,2,4,2
50,44,2,2,2$Wol@nD$, 2010-10-04
50,50,0,0,0
50,45,5,0,0
50,45,2,0,3
50,48,2,0,0
50,48,0,2,0
45,48,5,2,0
45,48,2,2,3
48,48,2,2,0
48,48,2,0,2
48,44,2,4,2
50,44,2,2,2
this, 2011-01-23
3 4 5 50 50
-------------------------------
0 0 5 45 50
0 4 5 45 46
3 4 2 45 46
3 0 2 49 46
3 2 0 49 46
0 2 5 49 44
3 2 2 49 44
-----------
2 2 2 50 44 перcа , 2011-04-18
Трое ребят пришли к веселому молочнику за молоком с битонами 3, 4 и 5 литра и попросили налить каждому по 2 литра.У молочника есть 2 полных  больших фляги по 50 литров каждая. Немного подумав, молочник легко справился с этим заданием.
А вы ?   Ответ: 5лит   3лит   4лит   50лит   50лит
-----------------------------------------
  0       3        4         46         47
  5       0        2         46         47
  2       3        2         46         47
  0       3        2         46         49
  3       0        2         46         49
  5       0        2         44         49
  2       3        2         44         49
  2       2        2         44         50sos, 2011-10-06
объясните как это?тормоз , 2011-11-28
а не проще сначала налить полный бидон 4 литра разлить его поровну между 3 и 5 а после налить половину в 4? Или я и в правду такой тупой?
Алина, 2011-12-17
фигняExpert, 2012-03-09
0/3 0/4 0/5 50/50 50/50
 3   0    0    47    50   50(1) -> 3
 0   3    0    47    50   3     -> 4
 3   3    0    44    50   50(1) -> 3
 0   3    3    44    50   3     -> 5
 3   3    3    44    47   50(2) -> 3
 2   4    3    44    47   3     -> 4
 2   2    5    44    47   4     -> 5
 2   2    2    44    50   5     -> 50(2)
Решал с помощью программи на Visual Basic:
'tanks: 0,1,2 = 3,4,5 litres; 3,4 = 50 litres
Const maxDepth As Integer = 20
Const maxTankIndex As Integer = 4
' Returns True if volumes are valid
Function AreVolumesValid(ByRef currentVolumes() As Integer) As Boolean
    AreVolumesValid = (currentVolumes(0) = 2) And (currentVolumes(1) = 2) And (currentVolumes(2) = 2)
End Function
' Returns True higher iteration should be continued
Function IterateBranchesRecursively(ByRef totalVolumes() As Integer, ByRef currentVolumes() As Integer, currentDepth As Integer, ByRef foundSteps() As Integer) As Boolean
    ' If it is going to deep , just skip iteration to avoid stack overflow
    If currentDepth > maxDepth Then
        IterateBranchesRecursively = True
        Exit Function
    End If
    
    ' Check current state
    If AreVolumesValid(currentVolumes) Then
        IterateBranchesRecursively = False
        Exit Function
    End If
                    
    Dim volumesLocalCopy(maxTankIndex) As Integer
    ' Iterate
    continueIteration = True
    For fromID = 0 To maxTankIndex
        For toID = 0 To maxTankIndex
            If fromID <> toID Then
                ' Replicate to local copy
                For i = 0 To maxTankIndex
                    volumesLocalCopy(i) = currentVolumes(i)
                Next i
                ' Check volumes and pour
                freeInDestination = totalVolumes(toID) - volumesLocalCopy(toID)
                leftInSource = volumesLocalCopy(fromID)
                If leftInSource > 0 And freeInDestination > 0 Then
                    If leftInSource > freeInDestination Then
                        volumesLocalCopy(toID) = totalVolumes(toID)
                        volumesLocalCopy(fromID) = leftInSource - freeInDestination
                    Else
                        volumesLocalCopy(toID) = volumesLocalCopy(toID) + leftInSource
                        volumesLocalCopy(fromID) = 0
                    End If
                    ' Iterate deeper
                    continueIteration = IterateBranchesRecursively(totalVolumes, volumesLocalCopy, currentDepth + 1, foundSteps)
                    If Not continueIteration Then
                        foundSteps(currentDepth, 0) = fromID
                        foundSteps(currentDepth, 1) = toID
                    End If
                End If
            End If
            If Not continueIteration Then Exit For
        Next toID
        If Not continueIteration Then Exit For
    Next fromID
    IterateBranchesRecursively = continueIteration
    
End Function
Function Poisk()
Dim totals(maxTankIndex) As Integer
totals(0) = 3
totals(1) = 4
totals(2) = 5
totals(3) = 50
totals(4) = 50
Dim startingVolumes(maxTankIndex) As Integer
startingVolumes(0) = 0
startingVolumes(1) = 0
startingVolumes(2) = 0
startingVolumes(3) = 50
startingVolumes(4) = 50
Dim steps(maxDepth, 1) As Integer
res = IterateBranchesRecursively(totals, startingVolumes, 0, steps)
a = 1
End Function
Дима, 2012-06-07
2 2 2 47 47Катерина, 2014-04-21
Отличная задача. и чего вы мудрите с ответом. все просто. никаких переливаний до середины! - это действительно бред :D поскольку неточность!
1. Наполняем 5л бидон, из него переливаем в 3л, в результате в 5л остаётся 2литра
из 3-х переливаем в бочку(теперь там 48 литров) из пяти - в 4-х. 
2. из полной бочки наливаем в пятилитровый и переливаем в трех. опять в 5-ти литровом 2 литра. из трех переливаем обратно во вторую бочку. в каждой из бочек по 48 литров 
3. из 4-х литрового переливаем в трех литровый.
4. из одной бочки наливаем полный 4-хлитровый и отливаем из него дополна в другую бочку, в которой 48 литров  . все!!
. все!!
horse426 , 2014-08-09
Решил в три действия. Из 20 переливаем 13л. бочку 10 л , затем из 13л бочки переливаем 5л. в бочку 7 л , а потом , чтобы ни кого не смущать 5л. из любой бочки переливаем в нашу  20 л.@#155, 2015-10-14
Трое ребят пришли к веселому молочнику за молоком с бИтонами••••
Либо с бидонами, либо...с бетоном
 )))
)))
Объясните!

