C言語 プログラム 確率
今、学校の授業で病気の感染プログラムを作っています。
内容は、
・3カテゴリー(0:健康体、1:感染者、2:免疫体)の人間がいる。
・2カテゴリー(0:病原体を持たない蚊、1:病原体ウイルスを持つ蚊)の蚊がいる。
・人間と蚊がxy座標上をある速度でランダムに移動している。
・健康体の人間とウイルスを持った蚊と人間ある一定距離内にいると蚊が人間を刺して病気が感染し、人間が0:健康体から1:感染者に変化する。
簡単に言いましたが、このようなプログラムを作っています。
その中で、人間に感染する部分のプログラムを下に載せます。
double c0x, c0y, ax, ay, bx, by;
for(i=0; i<N;++i){
if(b[i].category==1){
c0x=(*cat0ka).coord.x;
c0y=(*cat0ka).coord.y;
ax=a[i].coord.x;
ay=a[i].coord.y;
bx=b[i].coord.x;
by=b[i].coord.y;
if(((c0x-ax)*(c0x-ax)+(c0y-ay)*(c0y-ay))<R){
(*cat0agent).category=1;
}
else if(a[i].category==1){
c0x=(*cat0agent).coord.x;
c0y=(*cat0agent).coord.y;
ax=a[i].coord.x;
ay=a[i].coord.y;
bx=b[i].coord.x;
by=b[i].coord.y;
if(((c0x-bx)*(c0x-bx)+(c0y-by)*(c0y-by))<R){
(*cat0ka).category=1;
return ;
}
}
int t;
for(t=1; 7-t;++t ){
if((*cat0agent).category=1){
if(6<t){
(*cat0agent).category=2;
}
}
}
(*cat0agent).coord.x+=(frand()-0.5);
(*cat0agent).coord.y+=(frand()-0.5);
(*cat0ka).coord.x+=(frand()-0.5);
(*cat0ka).coord.y+=(frand()-0.5);
}
}
}
このプログラムでは、一定距離内にいると100%感染するようになっていますが、
それを、"一定距離内にいると30~50%の確率で感染する"という条件に変えたいと思っていますが、そのやり方がわかりません。
どなかか分かりやすく丁寧に教えていただけませんか?
お願いします。
ちなみに感染率は今30%で考えてもらえれば良いです。
載せたプログラム自体も完成しきれていないので、わからないかもしれません。
すみません。
お礼
分からないけど、なんか得た気がする回答でした。 ありがとうございます!!