0

私の数学は悪いです、本当に悪いです。残念ながら、この質問を言い表すのに苦労していますが、ここに行きます。

状況は電車での移動で、作業するアレイが 4 つあります。

出発駅 到着駅

出発日 帰国日

たとえば、片道ルートのみに関心があり、ルートの組み合わせがいくつあるかを調べる必要があるとします。だろう(と思う)

possible_routes = (leaving_stations x arriving_stations) x leaving_dates

しかし、帰りの旅行が必要な場合、どのように組み合わせがいくつあるかを知るにはどうすればよいでしょうか?

アップデート::

またはこれは機能しますか?

可能な_ルート = ((出発駅 x 到着駅) x 出発日) x (出発日 x 帰国日)

4

3 に答える 3

1

答えは、配列名からは完全に明確ではないということです。

4 つの配列があると仮定します。

  • 出発日
  • 返却日
  • 駅を出る
  • 到着駅

次に、ここで少し説明します。|x| という表記を使いましょう。|Leaving Dates| となるように、配列 [x] のカーディナリティ (要素数) を表します。あなたが残すことができる日付の総数です。

その後 |出発日| * |出発駅| * |到着駅| 出発する日付を選択し、次に出発する駅を選択し、次に到着する駅を選択し、可能な限りすべての方法でそれを行います. したがって、これはあなたが片道旅行に求めているもののようです。

さて、実際には、これは現実世界の問題であると仮定します。つまり、6 月 20 日にサウサンプトンからヨークシャーに出発することを選択したとしましょう。帰りの旅行では、この時点で選択できるのは帰国日(あなたが帰国したいと思っていることを意味します)。

したがって、往復を計画できる方法の総数は、最初に上記のように片道旅行を計画し、次に帰国日を選択することになります。これは|出発日|になります。* |出発駅| * |到着駅| * |返却日|。最初の 3 項は上記のように片道旅行を選択し、最後の項はすべての可能な日付から帰国日を選択します。もちろん、出発した駅とは別の駅に戻るオプションがあれば、方程式は (|出発日| * |出発駅| * |到着駅|) * (|帰国日| * |出発駅|)、または最初に到着した駅とは別の到着駅から出発できる場合でも、(|出発日| * |出発駅| * |到着駅|) * (|帰国日| * |到着駅| * |出発駅|)。

于 2009-06-08T04:41:06.143 に答える
0

正しく理解しているかどうかはわかりませんが、これは典型的なグラフルーティング理論の問題のようです。最小パスまたはA*アルゴリズムを見ることができます。

于 2009-05-16T13:56:40.697 に答える
0

まず、AA ルートは間違っているため、次のようになります。

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

交差操作は、両方の配列に属する要素です

次に、双方向ルートが必要な場合の組み合わせは次のとおりです。

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 that later than leave days + route time)' は奇妙なことなので、どのような場合でもpossible_2way_routes以上の高い見積もりを計算する方が簡単かもしれません. 最高のカウントは、すべてのreturning_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}

「ルート時間」の問題はまだありますが...

于 2009-05-16T14:40:54.273 に答える