Amanda Zeqiri
2011-May-30 21:21 UTC
[R] 2D random walk with traps convert C++ code to R code
Hello, I have a C++ code for 2D random walks with traps and I want to convert it
in a R code with its syntaxs, can anyone help???????
It's easy for me to adapt the body but I want help with the beginig
(variable declaration) and th end exporting the output to a file ( like
write.table() or sink() )
Thank you...
#include <iostream>
#include <math.h>#include <fstream.h>#include <time.h>
#define IA 16807#define IM 2147483647#define AM (1.0/IM)#define IQ 127773
#define IR 2836#define NTAB 32#define NDIV (1+(IM-1)/NTAB)#define EPS
1.2*pow(10,-7)#define RNMX (1.0-EPS)
using namespace std;float rand1(long *idum);
int main(){ long run=10000,adr=-run,x,y,hapa=0,i=0; int
dimx=700,dimy=700,nrg=50, M[dimx][dimy]; double rnd,sum=0; long
k[run+1],frekuenca;
bool njehsuar[run+1], next; ofstream Txt("EndjeMePengesa2D.txt");
printf("\nProgrami ekzekutohet:\ni=1 ne %d",run); for
(i=1;i<=run;i++){
njehsuar[i]=true; k[i]=0; } while (i<nrg){
x=dimx*rand(&adr);y=dimy*rand(&adr); if (M[x][y]!=1){
M[x][y]=1;i++
} }for (i=1;i<=run;i++){x=dimx*rand1(&adr); y=dimy*rand1(&adr);
hapa=0; next=false; if (M[x][y]!=1){while
(!next){hapa+=1;rnd=rand1(&adr);if (rnd<=0.25){
x+=1; if (x>dimx) {x=0;}}else if (rnd >0.25 && rnd<=0.5){x-=1;
if (x<0) {x=dimx;}}else if (rnd >0.5 && rnd < 0.75){ y+=1; if
(y>dimy) {y=0;}
}else{ y-=1; if (y<0) {y=dimy;}}if (M[x][y]==1) {next=true;}
} } k[i]=hapa; if (i%1000==0) printf("\ni=%d",i); รก } Txt.close();
cout << "-------------------------------------------"<<
endl;
cout << "Hap skedarin EndjeMePengesa2D.txt per te pare
rezultatet." << endl; system("PAUSE"); return 0;}
[[alternative HTML version deleted]]
