
No.1ベストアンサー
- 回答日時:
http://www.ed.kuki.tus.ac.jp/~tamura/2002/ipe2/q …
考え方は、こう。
銀行窓口のある1日を考える。
1日に客は10人来るものとする。
客が訪れる時刻はランダムである。
客が到着した時、まだ「窓口が空いていない(前客の処理が終わっていない)」場合は待たされる。
窓口が空いている場合は、客は待たず、すぐに窓口業務をしてもらう。
これを簡易的に表現したものが以下のプログラム。
このプログラムは「客が実際に待った時間」のデータを取るのが目的。
(注: 厳密にフォートランの文法に従ってない)
integer kNumOfPerson=10//客の人数
real availableTime//窓口利用可能時刻
real arrival(kNumOfPerson)//各客の到着時刻
real need(kNumOfPerson)//各客の窓口処理に要する時間
real wait(kNumOfPerson)//各客が実際に「待たされた」時間を格納する
real t, s, i
//「各客の到着時刻」の配列作成
t = 0
do i= 1, kNumOfPerson
s=getRand(4.0)//平均4.0の乱数を取得(4.0は適当)
//※↑客同士の「到着間隔」が平均4(秒)だという考え
//sは「到着間隔」なので、これを時刻に直す
arrival(i)=t+s
enddo
//「各客の窓口処理に要する時間」の配列作成
do i= 1, kNumOfPerson
need(i)=getRand(3.0)//平均3.0の乱数を取得(3.0は適当)
enddo
//銀行窓口オープン!
availableTime = 0
do i= 1, kNumOfPerson
//客の銀行到着時刻
s=arrival(i)
//客到着時にまだサービス利用可能でないなら
if (availableTime.gt.s) then
//「待ち」発生
wait(i)=availableTime-s
//客到着時にすでにサービス利用可能なら
else
//「待ち」なし
wait(i)=0
//サービス開始は客の到着を待ってから
availableTime=s
endif
//次のサービス利用可能時刻は
//現客の処理を終えてから。
availableTime=availableTime + need(i)
enddo
で、この時点で上記の配列wait
(各客が実際に「待たされた」時間を格納した配列)
が得られる。
これを使って、あとはヒストグラム(分布表)なり
グラフなり好きに表示すればよい。
とてもよくわかりました!!ありがとうございます! 教えていただいたHPも参考になりました!!
無事、ヒストグラムで出力でき、感動しました~*(^_^)*
Fortran、まだまだ全く使いこなせてませんが、頑張ります!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 1 2022/06/18 21:20
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- その他(プログラミング・Web制作) パイソンのプログラミングについての質問です 2 2023/05/22 12:39
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
ActiveReports(アクティブレポ...
-
エクセルでXY座標に並べられた...
-
配列のペースト出力結果の書式...
-
2次元配列のソート
-
Msgboxのループ
-
コンボボックスのインデックス...
-
画像ファイルを配列に格納する方法
-
Excelのメモリ(配列)の上限は2G...
-
C#でbyte配列から画像を表示さ...
-
COBOLの基本的な事なので...
-
テキストボックの文字を一行ず...
-
vba フィルター 複数条件 3つ以...
-
C言語によるプログラミング
-
RPG 配列宣言について
-
Segmentation Fault (メモリ制限?)
-
POSTリクエストの投げ方
-
デバイスマネージャーの一覧取得
-
Excel2010のinputboxで複数デー...
-
VB6で、一次元配列と二次元配列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
Dir関数で読み取り順を操作でき...
-
エクセルでXY座標に並べられた...
-
配列のペースト出力結果の書式...
-
定数配列の書き方
-
大量の変数を定義するにはどう...
-
構造体配列の特定のメンバーをF...
-
Redim とEraseの違いは?
-
複数のtextboxの処理を一括で行...
-
VB.NETの配列にExcelから読み込...
-
COBOLの基本的な事なので...
-
Excel2010のinputboxで複数デー...
-
VBAでMODE関数をつくる
-
レコードセットの中身を配列に...
-
ReDim PreserveよりもReDimが遅い
-
EXCELを使って、アクセスログを...
-
配列の中の最大値とそのインデ...
-
VB6のメモリ解放に関して
おすすめ情報