Domanda

La mia matematica è male, veramente male.Così male sto lottando anche frase di questa domanda, ma qui va.

La situazione è in viaggio in treno e si dispone di quattro matrici per lavorare con.

Leaving_Stations Arriving_Stations

Leaving_Dates Returning_Dates

Quindi diciamo che sei interessato solo in un modo rotte e hai bisogno di capire quante combinazioni di percorso ci sono.Che sarebbe (penso)

possible_routes = (leaving_stations x arriving_stations) x leaving_dates

Ma come posso fare per capire quante combinazioni ci sono se ho voglia di un viaggio di ritorno?

AGGIORNAMENTO:

o sarebbe questo lavoro?

possible_routes = ((leaving_stations x arriving_stations) x leaving_dates) x (leaving_dates x returning_dates)

È stato utile?

Soluzione

Bene, la risposta è non è del tutto chiaro il tuo array di nomi.

Supponiamo di avere le 4 matrici:

  • Partenza
  • Le Date Di Ritorno
  • Lasciando Stazioni
  • Arrivano Stazioni

Poi possiamo fare un po ' di spiegazione qui.Usiamo la notazione |x| a rappresentare la cardinalità (numero di elementi) di array [x], in modo che |partenza| è il numero totale di date che si potrebbe lasciare il.

Quindi |partenza| * |Lasciando Stazioni| * |Arrivo Stazioni| vorresti tradurre, scegliere una data per lasciare, e poi scegliere una stazione di lasciare, quindi di selezionare una stazione per arrivare a, e di farlo in tutti i modi possibili.Quindi, questo sembra essere quello che stai chiedendo per voli di sola andata.

Ora, praticamente, ho intenzione di assumere che questo è un problema del mondo reale, in modo che diciamo abbiamo scelto di lasciare da Southampton a Yorkshire su giugno 20, sul viaggio di ritorno, tutti abbiamo la possibilità di scegliere, a questo punto, dovrebbe essere la data di ritorno (cioè io sto supponendo che si desidera tornare a casa).

Così il numero totale di modi in cui siamo in grado di pianificare un viaggio andata e ritorno sarebbe primo piano di un viaggio di sola andata come sopra, e poi scegliere un la data di ritorno, che dovrebbe essere |partenza| * |Lasciando Stazioni| * |Arrivo Stazioni| * |Data di Ritorno|.I primi 3 termini scegliere un viaggio di sola andata come sopra, e il termine ultimo sceglie un ritorno data da tutte le possibili date.Naturalmente, se abbiamo avuto la possibilità di tornare ad un'altra stazione diversa da quella che abbiamo lasciato, quindi sarebbe l'equazione (|partenza| * |Lasciando Stazioni| * |Arrivo Stazioni|) * (|Data di Ritorno| * |Lasciando Stazioni|), o se si potrebbe anche partire da una diversa Stazione di Arrivo rispetto a quello che siamo arrivati in diventerebbe (|partenza| * |Lasciando Stazioni| * |Arrivo Stazioni|) * (|Data Di Ritorno| * |Arrivo Stazioni| * |Lasciando Stazioni|).

Altri suggerimenti

Non sono sicuro se ho capito bene, ma questo mi sembra un tipico grafico-routing problema teoria . Potete guardare percorso minimo o noreferrer A * algoritmi.

In primo luogo, le rotte A-A sono cose sbagliate, così:

possible_routes = 
(
  leaving_stations x arriving_stations - 
  (leaving_stations [intersection] arrivig_stations) 
) x leaving_dates

operazione intersezione è elementi che appartengono ad entrambe le matrici

In secondo luogo, quando si vuole 2 percorsi modo, le combinazioni sono:

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)

'leaving_dates x (return_dates che più tardi lasciando date + tempo di percorrenza)' sono cosa strana, quindi potrebbe essere più facile da cumpute alta stima - il numero, che non inferiore a possible_2way_routes in ogni caso. conte massima sarà quando tutti returning_dates oltre leaving_dates, così:

possible_2way_routes <= 
(
    leaving_stations x arriving_stations - 
    (leaving_stations [intersection] arrivig_stations) 
) x leaving_dates x return_dates

Oh, ho ricordato come calcolare 'return_dates che più tardi lasciando date + tempo di percorrenza'. è:

for each element of leaving_dates {
sum=sum+return_dates that later than ith leaving date+route time}

ci sono ancora problemi di 'tempo di percorrenza', anche se ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top