ページ 1 / 1
シミュレーション問題です
Posted: 2011年5月20日(金) 22:40
by kairo
窓口にできる行列の問題です.
【条件】
1.窓口の数は1つとする
2.来客は一定の時間内にランダムに来る
ただし,1分間に窓口に到着する来客の平均人数は1,2,…5人とする
3.窓口における来客1人あたりの対応にかかる時間は15から25秒の範囲内でランダムとする(平均処理時間は20秒)
4.最初の来客が来たときを0秒とする
5.5分0秒目の来客は含まない
このとき,横軸に時間,縦軸に列の長さをとり,列の長さの時間的変化を求めよ.
横軸は単位を秒とし,0秒から600秒(10分)までとし,来客は0~5分の間のみ来るとする.
乱数には一様乱数を用いる
Re: シミュレーション問題です
Posted: 2011年5月20日(金) 22:59
by h2so5
ここは問題投稿板ではなく質問掲示板ですので、質問を書いてください。
Re: シミュレーション問題です
Posted: 2011年5月21日(土) 01:33
by たいちう
質問を書いたとしても、多分このままでは条件2が曖昧です。
授業で何らかの前提の説明があった、とか、
この範囲では前提を自由にして良い、とかありませんでしたか?
kairoさんの言葉で必要十分な説明をして下さい。
Re: シミュレーション問題です
Posted: 2011年5月21日(土) 09:26
by kairo
条件に不備があったので追加です.
5分で25人来る場合,0~300秒の間に25個の乱数を発生させる.
この乱数は○秒に来たかを表す.
この時間を配列でソートする.
Re: シミュレーション問題です
Posted: 2011年5月21日(土) 10:04
by naohiro19
利用規約をお読みください
Re: シミュレーション問題です
Posted: 2011年5月21日(土) 10:38
by kairo
すみません.ここのサイトの規約を読みました.
確かに質問しないといけないですね.
ただ、今回は少し時間がないです.
その上,何からするかもさっぱりわかりません.
本当はソースコードを書いていただけると参考にできていいのですが
やり方や考え方だけでもいいのでお答えください.
よろしくお願いしますm(__)m
Re: シミュレーション問題です
Posted: 2011年5月21日(土) 10:54
by softya(ソフト屋)
時間がないなら尚更フォーラムルールのテンプレートをお使いください。
締切りもお願いします。
http://dixq.net/board/board.html
今のままだと使用言語やら利用可能ライブラリなど何も分かりませんので。
Re: シミュレーション問題です
Posted: 2011年5月21日(土) 11:26
by kairo
[1] 質問文
[1.1] 上記の問題を解きたいです.
[1.2] 「来客は定期的に来る」,「窓口における来客1人あたりの対応にかかる時間は一定」
としてエクセルで解きましたが,C言語ではうまくできません.
※ちなみに,窓口における来客1人あたりの対応にかかる時間を20秒として,
1分あたりに来る人数が5人の場合,5分で10人くらいの列ができるそうです.
[1.3] [1.2]の状態でできないため,ランダム関数にしたら余計にできません.
[1.4] 上記の問題の解き方及びソースコードが知りたいです.
[2] 環境
[2.1] OS : Windows
[2.2] コンパイラ名 : VC++ 2008Express Edition
[3] その他
C言語は一通りはやりましたが,あまり身に付いていません.
Re: シミュレーション問題です
Posted: 2011年5月21日(土) 13:17
by softya(ソフト屋)
締切りが書かれていないのですが、週明けということでよろしいですか?
それと部分的にでも書けるソースコードを出来れば書いて頂けますか。
[追記]
>このとき,横軸に時間,縦軸に列の長さをとり,列の長さの時間的変化を求めよ.
>横軸は単位を秒とし,0秒から600秒(10分)までとし,来客は0~5分の間のみ来るとする.
これは、どんな表示でしょうか?
テキストならイメージを書いて頂けますか。
それともグラフィックでしょうか?
[追記の追記]
問題を読み直して疑問をもちました。
結局、5分間にどの人数が来るシミュレートをすれば良いのでしょうか?
守るべき絶對条件がわかりません。
・5分で25人を超えて良いのか?
・1分で5人を超えて良いのか?
・1分で最低1人は必要か?
一様乱数とあるが乱数の精度はどの程度を想定しているのか?
C言語の標準関数の乱数で良いのか(あまり、シミュレーションでは使わないと精度ですが)?
Re: シミュレーション問題です
Posted: 2011年5月21日(土) 21:16
by たいちう
> 「来客は定期的に来る」,「窓口における来客1人あたりの対応にかかる時間は一定」
> としてエクセルで解きましたが,C言語ではうまくできません.
手始めとしては良い条件ですね。まずはこれを解決してみませんか?
複雑なプログラムを一気に作ろうとせず、条件を簡単にして試作し、
徐々に完成に近づけていく方法がお勧めです。
Re: シミュレーション問題です
Posted: 2011年5月22日(日) 10:11
by kairo
>締切りが書かれていないのですが、週明けということでよろしいですか?
>それと部分的にでも書けるソースコードを出来れば書いて頂けますか。
月曜日の23時59分までにお願いします.
コード:
#include<stdio.h>
#include<math.h>
//#include <time.h>
int main(void){
int i,c=0;
/* for(i=0;i<300;i++){
if(i%12==0){
c++;
}
if(i%20==0){
c--;
}
}
*/
/* for(i=0;i<300;i++){
if(i%12==0){
c++;
}
if(i%10==0){
c--;
}
}
*/
for(i=0;i<300;i++){
if(i%6==0){
c++;
// if(i=i+20){
i=i+20;
c--;
// }
}
}
/* for(i=0;i<300;i++){
if(i=i+20){
c--;
}
}*/
printf("%d\n",c);
return 0;
}
[追記]
>これは、どんな表示でしょうか?
>テキストならイメージを書いて頂けますか。
>それともグラフィックでしょうか?
出力結果をエクセルに入れなおすか,
ファイル出力にしてやるのがいいと思います.
[追記の追記]
>結局、5分間にどの人数が来るシミュレートをすれば良いのでしょうか?
>守るべき絶對条件がわかりません。
>・5分で25人を超えて良いのか?
超えないようにしてください.
>・1分で5人を超えて良いのか?
平均が5人なので超えていいです.
>・1分で最低1人は必要か?
0人でもいいです.
>一様乱数とあるが乱数の精度はどの程度を想定しているのか?
>C言語の標準関数の乱数で良いのか(あまり、シミュレーションでは使わないと精度ですが)?
C言語のrand関数でいいと思います.
Re: シミュレーション問題です
Posted: 2011年5月22日(日) 10:55
by softya(ソフト屋)
これは何を意図して書かれたコードでしょうか?
コード:
for(i=0;i<300;i++){
if(i%6==0){
c++;
// if(i=i+20){
i=i+20;
c--;
// }
}
}
それと、たいちうさんの言われたことに挑戦してみませんか?
Re: シミュレーション問題です
Posted: 2011年5月22日(日) 15:38
by softya(ソフト屋)
まったく同じ文面なのですが、こちらにマルチポストされていませんか?
ルール違反になりますので、相互リンクをお願いします。
「シミュレーション問題です - C++ Builder / Turbo C++ 質問の木」
http://gimite.net/bcbqtree/qtreemain.cg ... hread=1550
Re: シミュレーション問題です
Posted: 2011年5月22日(日) 21:29
by たいちう
> 月曜日の23時59分までにお願いします.
完全に作成依頼になったのでしょうか?
kairoさんが作るのではないのですか?
少なくとも私は作りつもりはありませんよ。
アドバイスをすることはありますが。
> 出力結果をエクセルに入れなおすか,
> ファイル出力にしてやるのがいいと思います.
プログラムからのエクセルの操作は少し敷居が高いので、
ファイル出力が良いでしょう。
フォーマットは考えていますか?
例えば、
> 「来客は定期的に来る」,「窓口における来客1人あたりの対応にかかる時間は一定」
をもう少し具体的にして、以下の条件ではどのようなファイル出力になりますか?
・30秒毎に来客がある
・1人当たりの対応時間は20秒とする
Re: シミュレーション問題です
Posted: 2011年5月22日(日) 21:55
by softya(ソフト屋)
少なくとも、こちらで作るのではなくkairoさんが作るのをお手伝いさせていただくのがスタンスになります。
なので、kairoさんにまず行動してもらわないと何も進みませんよ。