У меня проблема с организацией данных для процесса. Требования состоят в том, чтобы у нас было N буксиров (судно, используемое для перевозки больших кораблей) и N кораблей, которые должны быть доставлены этими буксирами. Каждому кораблю требуется определенное количество буксиров, поэтому у нас есть что-то вроде этого:
setClass("tugboat", slots=list(name = "character"))
tugboat1 <- new("tugboat", name = "tugboat 1")
tugboat2 <- new("tugboat", name = "tugboat 2")
tugboat3 <- new("tugboat", name = "tugboat 3")
setClass("ship", slots=list(name = "character", tugboats_required = "numeric"))
ship1 <- new("ship", name = "Titanic", tugboats_required = 1)
ship2 <- new("ship", name = "Black Pearl", tugboats_required = 1)
ship3 <- new("ship", name = "Interceptor", tugboats_required = 1)
какую структуру и логику я мог бы использовать, чтобы смонтировать все возможные сценарии, полагая, что буксир не может одновременно участвовать в двух кораблях, пример:
СЦЕНАРИЙ 1 : корабль1 + буксир1, корабль2 + буксир2, корабль3 + буксир3
СЦЕНАРИЙ 2 : корабль1 + буксир1, корабль2 + буксир3, корабль3 + буксир2
СЦЕНАРИЙ 3 : корабль1 + буксир2, корабль2 + буксир1, корабль3 + буксир3
СЦЕНАРИЙ 4 : корабль1 + буксир2, корабль2 + буксир3, корабль3 + буксир1
СЦЕНАРИЙ 5 : корабль1 + буксир3, корабль2 + буксир1, корабль3 + буксир2
СЦЕНАРИЙ 6 : корабль1 + буксир3, корабль2 + буксир1, корабль3 + буксир1
в примере выше, я рассматриваю только один буксир для каждого корабля (tugboats_required = 1), но если это число равно 2, например, сценарий для этого корабля должен иметь 2 буксира. Пример:
setClass("tugboat", slots=list(name = "character"))
tugboat1 <- new("tugboat", name = "tugboat 1")
tugboat2 <- new("tugboat", name = "tugboat 2")
tugboat3 <- new("tugboat", name = "tugboat 3")
setClass("ship", slots=list(name = "character", tugboats_required = "numeric"))
ship1 <- new("ship", name = "Titanic", tugboats_required = 1)
ship2 <- new("ship", name = "Black Pearl", tugboats_required = 2)
СЦЕНАРИЙ 1 : корабль1 + буксир1, корабль2 + буксир2 + буксир3
СЦЕНАРИЙ 2 : корабль1 + буксир2, корабль2 + буксир1 + буксир3
СЦЕНАРИЙ 3 : корабль1 + буксир3, корабль2 + буксир1 + буксир2
проблема не в математике, проблема в том, чтобы организовать данные после объявления объектов.