RIG000
جمعه 28 فروردین 1394, 03:50 صبح
سلام من میخام این کد رو به سی شارپ بنویسم.
اما از جنریتور های تبدیل کننده که استفاده کردم نشد ونتیجه نداد.
میشه این رو به سی شارپ تبدیل کنید؟
#include "stdafx.h"
#include "math.h"
#include "cstdlib"
using namespace std;
double *c = new double[50];
int main()
{
srand(100);
double s = 0, Nstep = 0;
for (int i = 0; i < s; i++)
c[i] = 0;
scanf_s("%lf %lf", &s, &Nstep);
double A = 0;
bool sw;
double AB = 0;
int k = 0;
for (int i = 0; i < Nstep; i++)
{
double IA = -(1 / 4)*(log((double)(1 - (rand() % 100) / 100.0)) / log(2.718281828));
A = A + IA;
int j = 0;
sw = false;
while (A < c[j])
{
j++;
if (j == s) { k++; sw = true; break; };
}
if (sw)
continue;
double X = -(2.4)*(log((double)(1 - (rand() % 100) / 100.0)) / log(2.718281828));
c[j] = A + X;
double m = c[1];
for (int j = 2; j < s; j++)
{
if (c[j] < m) m = c[j];
}
if (m>A) AB = AB + m - A;
}
printf("%lf \n %lf\n", k / Nstep, AB / A);
return 0;
}
اما از جنریتور های تبدیل کننده که استفاده کردم نشد ونتیجه نداد.
میشه این رو به سی شارپ تبدیل کنید؟
#include "stdafx.h"
#include "math.h"
#include "cstdlib"
using namespace std;
double *c = new double[50];
int main()
{
srand(100);
double s = 0, Nstep = 0;
for (int i = 0; i < s; i++)
c[i] = 0;
scanf_s("%lf %lf", &s, &Nstep);
double A = 0;
bool sw;
double AB = 0;
int k = 0;
for (int i = 0; i < Nstep; i++)
{
double IA = -(1 / 4)*(log((double)(1 - (rand() % 100) / 100.0)) / log(2.718281828));
A = A + IA;
int j = 0;
sw = false;
while (A < c[j])
{
j++;
if (j == s) { k++; sw = true; break; };
}
if (sw)
continue;
double X = -(2.4)*(log((double)(1 - (rand() % 100) / 100.0)) / log(2.718281828));
c[j] = A + X;
double m = c[1];
for (int j = 2; j < s; j++)
{
if (c[j] < m) m = c[j];
}
if (m>A) AB = AB + m - A;
}
printf("%lf \n %lf\n", k / Nstep, AB / A);
return 0;
}