• 締切済み

観覧車の制御で良いアイデア

一周するのに30分かかる観覧車で、 搬機(人が乗るカゴ)が80個あります。 観覧車の速度は一定ですが、 強風などで安全装置が作動した時は観覧車が停止します。 もし、一周するのに40分以上かかってしまった時は、 乗車してた人にお詫びをします。 質問したいのは、出来るだけ簡単に 40分以上かかったかを判定したい事です。 今、考えてるのは観覧車が一周するのに 5分以上停止していたら 搬機80個は お詫びの対象にする (5分は1周したらリセットする) ↑の制御は簡単なのですが正確でないので もっと簡単に良い方法で確認できないでしょうか? 搬機1台づつタイマーを付けて計るしかないでしょうか? 1台づつタイマーを付けるのは、プログラムが複雑に なる為、避けたいです。 もっと良い方法が ありそうで思いつきません。 宜しくお願いします。

みんなの回答

  • reiman
  • ベストアンサー率62% (102/163)
回答No.5

この問題はプログラミングのカテに出す方が良い プログラミングをしてもよいが楽しみを奪いたくないので止めておく C言語やPHPで組めば良い 中古パソコンを用意する20年前のものでよい 搬機に0から79の番号を割り振る 搬機番号に対応する80サイズの行列変数x[0]~x[79]を用意する 運転開始と同時に全ての行列要素に開始時刻をセットする その時に最初に乗り場にある搬機の番号を0とする 搬機は出発する度にスペースバーを押し 出発する搬機に対応する行列要素に出発時刻をセットする 搬機が到着する度にリターンキーを押し 到着した搬機の番号に対応する行列要素に保存されている時刻と 現在の時刻を比較し40分以上あればビープ音を慣らし搬機から降りる人に謝る 念のため画面上には常に次に降りる搬機の番号を表示していれば良いでしょう (n+1) mod 80→n コストは中古パソコン代500円以下でしょう

noname#155097
noname#155097
回答No.4

搬器・・・器が正解です。 80個ついているんだから、360度を80で割って、 4.5度ごとに1個ついている計算になります。 観覧車のセンター部分に4.5度ごとに受光板を持ってきて、 (具体的には搬器のついているアームごとにつければよい) その受光板がある地点にあるセンサーを切ったタイミングで 1周の時間を測ればよろしい。 1周につき、40分以上かかったなら、 運転室に赤ランプでも着くようにしておけばいい。 (ただし、個別に40個のランプが必要だが。。 もしくは、搬器の番号を表示させるようにLEDでも取り付けるか)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.3

乗っている間に複数回停止する場合もあるんですよね。 その場合は、単純に10分止まったからとか、5分止まったからとかでは判断できません。 例えば、4分の停止が30分の間に3回あったとき、どの搬機の乗客にお詫びすればいいか判断に迷うところです。 搬機の発車時刻、停車時刻を記録するのも1つの方法ですが、 別の方法として、 「搬機から人を降ろすとき、その前40分間に停止した時間が10分以上ならお詫びする」 ということでもできます。 ただ、人を降ろす都度判断することは面倒でしょうから、 観覧車が停止した時刻、再運転した時刻を入力したら、どの搬機までお詫びすればいいかを予測するプログラムを組めば、入力の手間はそんなに掛かりません。

  • naniwacchi
  • ベストアンサー率47% (942/1970)
回答No.2

こんばんわ。 「通常なら 1周 30分かかるところを 40分かかったらお詫び」ということなので、 単純に 10分以上止まったら、 その時点で乗客はみんな 40分以上乗っていることになるかと・・・ 極端な例で考えてみると、 ・乗り始めて 1分後に止まりました。10分後動きだしました。 帰ってくるまでには残り 29分かかるので、合計 40分。 ・乗り始めて 29分後に止まりました。10分後動きだしました。 帰ってくるまでには残り 1分なので、合計40分。 電車やバスと違って、ぐるっと全部が繋がっているので、 意外と簡単な話になってきます。^^

回答No.1

これ、コンピュータプログラムの話ですか? すっごく単純な話ですが…… 80個のカゴそれぞれに、発車時間を記録しておいて、一周した到着時に、現時刻からそれを引いて、何分かかったかを計算する。40分以上かかってたらお詫び。 お詫びは、それぞれのカゴが到着時に、それぞれすればいいんですよね? タイマーなんてだいそれたもの使わなくても、記録簿と時計一個の話ですよ。

関連するQ&A