?? fi model.cpp
字號:
// FI model.cpp
#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
#include <time.h>
using namespace std;
int x[50000],i,v[50000],gap[50000],V,x1[50000],v1[50000],a[50000],b[50000],sum=0,N[10],Q;
float p2;
int rule(int l,int m);
int Max(int a,int b);
int Min(int d,int e);
int _tmain(int argc, _TCHAR* argv[])
{
int L,j,flg,time_steps,c[50000],q;
float p1;
cout<<"Please enter the number of sites L: "<<endl;
cin>>L;
cout<<"Please enter the density of cars per site p1: "<<endl;
cin>>p1;
cout<<"Please enter the intrinsic velocity V: "<<endl;
cin>>V;
cout<<"Please enter the stochastic braking probability p2: "<<endl;
cin>>p2;
cout<<"Please enter the time_steps: "<<endl;
cin>>time_steps;
srand( (unsigned)time( NULL ) );
for(i=0;i<L;i++)
{
c[i]=0;
}
for(i=0;i<int(L*p1);i++)
{
q=int(rand()*(L-1)/RAND_MAX);
if(c[q]==0)
c[q]=1;
else
i=i-1;
}
for(i=0;i<L;i++)
{
if(c[i]==1)
{
sum=sum+1;
x[sum]=i;
v[sum]=0;
cout<<v[sum];
}
else
cout<<".";
}
cout<<endl;
/* for(i=0;i<=V;i++)
{
N[i]=0;
}
for(j=1;j<=sum;j++)
{
for(i=0;i<=V;i++)
{
if(v[j]==i)
N[i]=N[i]+1;
}
}
for(i=0;i<=V;i++)
cout<<"N["<<i<<"]="<<N[i]<<" ";
cout<<endl;
*/
for(int k=1;k<time_steps;k++)
{
for(i=1;i<=sum;i++)
{
a[i]=x[i];
b[i]=v[i];
}
for(i=1;i<=sum;i++)
{
if(i==sum)
gap[i]=a[1]-a[i]-1;
else
gap[i]=a[i+1]-a[i]-1;
if(gap[i]<0)
gap[i]=gap[i]+L;
//cout<<"gap["<<i<<"]="<<gap[i]<<" ";
}
for(i=1;i<=sum;i++)
{
rule(b[i],gap[i]);
}
for(i=1;i<=sum;i++)
{
if((x[i]+v[i])>=L)
x[i]=x[i]+v[i]-L;
else
x[i]=x[i]+v[i];
}
for(j=0;j<L;j++)
{
flg=0;
for(i=1;i<=sum;i++)
{
if(j==x[i])
{
cout<<v[i];
flg=1;
}
}
if(flg==0)
cout<<".";
}
cout<<endl;
/* for(i=0;i<=V;i++)
{
N[i]=0;
}
for(j=1;j<=sum;j++)
{
for(i=0;i<=V;i++)
{
if(v[j]==i)
N[i]=N[i]+1;
}
}
Q=0;
for(i=0;i<=V;i++)
cout<<"N["<<i<<"]="<<N[i]<<" ";
cout<<endl;
*/
}
return 0;
}
int rule(int l,int m)
{
if(m>=V)
{
l=V;
if((float)(rand())/(float)(RAND_MAX)<p2)
l=Max((l-1),0);
}
else
l=m;
v[i]=l;
return v[i];
}
int Max(int a,int b)
{
int c;
c=a>b?a:b;
return c;
}
int Min(int d,int e)
{
int f;
f=d<e?d:e;
return f;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -