代碼如下:
function y=carlo(n,k)
%n is the number of simulations
%k is the number of trails
%y is the reslut of every trails
y=sum(sign(0.51-rand(n,k)));
hist(y);
---------------------------------------------------------------------------------------------------------------------------------------------
#include "stdio.h"
#include "stdlib.h"
#include "carlo.h"
void disp(const mxArray *);
void main(int argc,char *argv[])
{
double n,k;
if (argc==1||argc==2)
{
printf("please enter two num,n and k");
exit(1);
}
else
{
n=(double)atoi(argv[1]);
k=(double)atoi(argv[2]);
}
if(!mclInitializeApplication(NULL,0))
{
printf("can't InitializeApplication");
exit(1);
}
if(!carloInitialize())
{
printf("can't InitializeLibary");
exit(1);
}
mxArray *N,*K,*Y=NULL;
N=mxCreateDoubleScalar(n);
K=mxCreateDoubleScalar(k);
mlfCarlo(1,&Y,N,K);
disp(Y);
mclWaitForFiguresToDie(NULL);
mxDestroyArray(N);
mxDestroyArray(K);
mxDestroyArray(Y);
carloTerminate();
mclTerminateApplication();
}
void disp(const mxArray *in)
{
int i,j,r,c;
double *data;
data=mxGetPr(in);
r=mxGetM(in);
c=mxGetN(in);
printf("the result is/n");
for(i=0;i<r;i++)
for(j=0;j<c;j++)
printf("%.0lf/t",data[i*c+j]);
}