문제
내 수학은 나쁘고 정말 나쁘다. 너무 나쁘다. 나는이 질문을 표현하기 위해 고군분투하고 있지만 여기에 간다.
상황은 기차 여행이며 4 개의 배열이 있습니다.
Leave_stations 도착 _stations
Leave_dates returning_dates
따라서 한 방향 노선에만 관심이 있고 경로의 조합이 얼마나 많은지 알아 내야한다고 가정 해 봅시다. 그게 될거야 (나는 생각한다)
possible_routes = (leaving_stations x arriving_stations) x leaving_dates
그러나 돌아 오는 여행을 원한다면 얼마나 많은 조합이 있는지 알아내는 방법은 무엇입니까?
업데이트::
아니면이 일이 작동할까요?
will_routes = ((Leave_Stations x arriving_stations) x Leave_Dates) x (Leave_Dates x returning_dates)
해결책
글쎄, 대답은 배열 이름에서 완전히 명확하지 않다는 것입니다.
4 개의 배열이 있다고 가정합니다.
- 떠나는 날짜
- 반환 날짜
- 방송국을 떠나
- 도착하는 방송국
그러면 우리는 여기서 약간의 설명을 할 수 있습니다. | x | 배열 [x]의 카디널리티 (요소 수)를 나타내려면 | 떠나는 날짜 | 당신이 떠날 수있는 총 날짜 수입니다.
그런 다음 | 떠나는 날짜 | * | 방송국 | * | 도착 스테이션 | 번역하고, 떠날 날짜를 선택한 다음, 방송국에서 떠날 역을 선택한 다음, 역을 선택하여 도착한 다음 가능한 모든 방법으로 그렇게 할 것입니다. 그래서 이것은 당신이 편도 여행을 요구하는 것 같습니다.
이제 실제로, 나는 이것이 실제 문제라고 가정 할 것입니다. 그래서 우리는 6 월 20 일에 사우 샘프 턴에서 요크셔로 떠나기로 선택했다고 가정 해 봅시다.이 시점에서 우리가 선택할 수있는 모든 것이 반환 날짜 (집으로 돌아 가고 싶다고 가정합니다).
따라서 왕복을 계획 할 수있는 총 방법은 먼저 위와 같이 일방 통행을 계획 한 다음 반환 날짜를 선택하는 것입니다. 이는 | 떠나는 날짜 | * | 방송국 | * | 도착 스테이션 | * | 반품 날짜 |. 처음 3 항은 위와 같이 일방 통행 여행을 선택하고 마지막 용어는 가능한 모든 날짜에서 반환 날짜를 선택합니다. 물론, 우리가 떠난 다른 스테이션 이외의 다른 스테이션으로 돌아갈 수있는 옵션이 있다면, 방정식은 (| 떠나는 날짜 | * | 방송국 | * | 도착 스테이션 | (| 반환 날짜 | * | 방송국 |), 또는 우리가 처음 도착한 것과 다른 도착 스테이션에서 떠날 수 있다면 (| | 떠나는 날짜 | * | 스테이션을 떠나는 스테이션 | * | 도착 스테이션 |) * (| 반환 날짜 | * | 도착 스테이션 | * | 방송국 |).
다른 팁
첫째, AA 경로는 잘못된 것입니다.
possible_routes =
(
leaving_stations x arriving_stations -
(leaving_stations [intersection] arrivig_stations)
) x leaving_dates
교차로 작동은 두 배열 모두에 속하는 요소입니다
둘째, 2 웨이 경로를 원할 때 조합은 다음과 같습니다.
possible_2way_routes =
(
leaving_stations x arriving_stations -
(leaving_stations [intersection] arrivig_stations)
) x
leaving_dates x
(return_dates that later than leaving dates+route time)
'Leave_Dates X (날짜+경로 시간을 떠나는 것보다 나중에 return_dates)'는 이상한 일이므로, 가능한 _2way_routes보다 숫자가 더 쉬울 수 있습니다. 가장 높은 수는 모든 Return_dates가 Leave_Dates보다 늦게 나올 때입니다.
possible_2way_routes <=
(
leaving_stations x arriving_stations -
(leaving_stations [intersection] arrivig_stations)
) x leaving_dates x return_dates
오, 나는 '날짜+경로 시간을 떠나는 것보다 나중에'return_dates '를 계산하는 방법을 기억했습니다. 그것의:
for each element of leaving_dates {
sum=sum+return_dates that later than ith leaving date+route time}
그래도 여전히 '경로 시간'의 문제가 있습니다 ...