Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Random walk problem

[es] :: C/C++ programiranje :: Random walk problem

[ Pregleda: 929 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

srba90
Srbislav Antic
student
Beograd,Srbija

Član broj: 285653
Poruke: 3
*.dynamic.isp.telekom.rs.



Profil

icon Random walk problem07.01.2013. u 20:54 - pre 137 meseci
Pokusavam da napravim program koji ce da simulira random walk u nekih 1000 iteracija ali sam odavno radio u C++ pa se ne secam bas dobro svega. Bio bih zahvalan ako neko moze da na brzinu pregleda kod i napise zasto program ne radi.
main.cpp:
#include <iostream>
#include <stdio.h>
#include "randomwalk.h"
using namespace std;

int main()
{
int N(10000); //broj koraka za randomwalk
int N2(1000); //broj randomwalkova
double steplength(1); //duzina jednog koraka
double *R;
R= new double[N2];
//initial seed
int seed (11324);

for(int i=0;i<N2;++i) {
R=randomwalk(seed,N,steplength);
++seed;
}
cout <<R[23];
delete []R; // delete []R;
return 0;

}


randomwalk.h:
#ifndef RANDOMWALK_H_
#define RANDOMWALK_H_

double randomwalk(int seed, int N, double steplength);

#endif /* RANDOMWALK_H_ */


randomwalk.cpp:
#include <iostream>
#include <fstream>
#include <cmath>
#include "randomwalk.h"

double randomwalk(int seed, int N, double steplength) {
//random number generator
unsigned int c(16807);
unsigned int p(21474837);
unsigned int *r;
double *randomnumb;
r= new unsigned int[N+1];
randomnumb=new double [N];
r[0]=seed;
randomnumb[0]=r[0];
randomnumb[0]=randomnumb[0]/p;
//generisanje random brojeva
for(int i=1;i<N+1;++i) {
r=r[i-1]*c%p;
randomnumb[i-1]=r;
randomnumb[i-1]=randomnumb[i-1]*2*3.14159265/p;
}
//x i y komponente svakog vektora
double *x,*y;
x= new double [N];
y= new double [N];
for(int i=0;i<N;++i) {
x=cos(randomnumb)*steplength;
y=sin(randomnumb)*steplength;
}
//merenje duzine vektora
double Rx(0),Ry(0);
for(int i=0;i<N;++i) {
Rx=Rx+x;
Ry=Ry+y;
}
double R2;
R2=Rx*Rx+Ry*Ry;
delete[] r;
delete[] randomnumb;
delete[] x;
delete[] y;
return R2;
}
 
Odgovor na temu

[es] :: C/C++ programiranje :: Random walk problem

[ Pregleda: 929 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.