- ベストアンサー
Suica定期での乗り越し清算
- 最近JR東日本のSuica定期という優れ物を購入しました。大変良くできたシステムで、通勤定期の期間切れを忘れていた場合でも、一回当たりの料金を自動引き落としされることを阻止する機能まで実装されており、感動しています。
- Suica定期には通勤区間は「日暮里」から「品川」と記入されており、新宿-日暮里間であれば190円、新宿-品川間でもやはり190円です。また、通勤定期区間を無視して、新宿-東京間を課金した場合も190円になります。
- 秋葉原というキーワードが抽出される方法や、料金計算プログラムの実行場所についてアドバイスをいただけるとありがたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず,質問2の方から。 「気ままな鉄旅人のブログ」さんの記事「Suica10周年、Suica技術を勉強するIII」 http://blogs.yahoo.co.jp/laxita_town_washinomiya/11894754.html や,そこからリンクされているJR東日本の公式の文面 「Suicaの技術と今後の展開戦略について」 http://www.jreast.co.jp/development/tech/pdf_11/Tec-11-18-27.pdf が役に立つかと思います。 この記事に依れば,新宿での入場時に ・新宿→秋葉原 の金額が仮精算駅として記録されていそうな気がします。 で,処理自体は自律分散ですから,各機器で行われていると思われます。 # Suica関係の本で読んだような気はしますが,立ち読みしたので本自体がない……。 次に質問1ですが,前提条件として定期券は選択乗車ができません。 つまり,原則として乗車経路は決定しています。 普通乗車券であれば,日暮里→品川(経由:東北本線,東京,東海道本線) の切符で選択乗車をして 経由:東北本線,田端,山手線 という逆回りの切符としても使えますが,定期券はそれをしてはいけないことになっています。 # もちろん,経由:東北本線,田端,山手線の定期券を購入することはできます。 また,秋葉原→東北本線→神田と秋葉原→総武線→御茶ノ水→中央本線→神田を区別することを考えると, ・両端の駅および分岐に関わる経由駅と経由する路線のリスト ・経由駅全駅のリスト のどちらかを情報として持っているのだと思います。 # 経路特定区間を考えると後者の方が楽な気はしますが。 前者であれば,乗車駅および降車駅端末側が経由駅全駅のリストを作って値段を調べることになります。
その他の回答 (3)
- f272
- ベストアンサー率46% (8467/18126)
> 運賃テーブルの検索に与える引数は何ですか? 乗車駅,降車駅,定期券の経路(3社まで)
お礼
有難うございました。
- f272
- ベストアンサー率46% (8467/18126)
質問1 運賃テーブルを引く。 質問2 自動改札機内で処理する。
お礼
運賃テーブルの検索に与える引数は何ですか?
- mukaiyama
- ベストアンサー率47% (10402/21783)
>情報として、新宿(入場駅)、日暮里(定期始点駅)、品川(定期終点駅)、東京(出場駅)、4つの駅名しか与えられないのに… 4つの駅名しか与えられていないという確証はあるのですか。 鶯谷から田町まで 10駅の駅名もインプットされているはずですけど。 >遠隔のコンピューターセンターに送信され、そこであらゆる可能性を想定し、消費者に最も有利な料金経路を決定… そういうことでしょう。 >しかし、Suica定期には通勤区間は「日暮里」から「品川」と記入されており… Suica定期に限らず磁気タイプの定期、はたまたはるか大昔の紙だった時代でも、新宿-秋葉原間の運賃だけを払えば良いことになっています。
お礼
遠隔のコンピューターに問い合わせているとすると、どうしてもレイテンシが避けられません。 通信のレイテンシを避ける方法が分からない限り、遠隔問い合わせをしているとは信じがたいのですが、、、。
お礼
貴重な情報ありがとうございました。 「仮清算駅」の概念が目から鱗でした!! 乗車駅の改札機で仮清算駅までの料金を判定してSuicaの内臓ICに記録しておくところがミソですね! 下車駅の改札機は、 もし通勤定期区間外の場合は、通勤経路内の最寄り駅との料金を計算し、その料金と仮清算駅までの料金の合計金額と、乗車駅から下車駅までの全区間課金した場合の料金を計算して安い方を使えば良いとことになりますね。 もちろん、下車駅が通勤定期区間内であれば、仮清算の金額を使用し初乗りとの差額を引き落とすだけになります。 これなら、メモリオンリーの改札機で0.2秒内の処理という条件を満たせそうですね。 あとは、通勤定期区間の記述法をどうするかですが、どちらでもメモリー内で最寄駅判定ができそうです。 お蔭さまで、アルゴリズムがイメージできるようになりました。 どうもありがとうございました。