⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 欧式期权1.txt

📁 c++随机数生成的一些简单程序
💻 TXT
字号:
#include<iostream>
#include<cmath>
#include<time.h>
#include <stdlib.h>


using namespace std;

double gaussrand()      
{
    static double V1, V2, S;
    static int phase = 0;
    double X;
   
    if ( phase == 0 ) {
        do {
            double U1 = (double)rand() / RAND_MAX;
            double U2 = (double)rand() / RAND_MAX;
           
            V1 = 2 * U1 - 1;
            V2 = 2 * U2 - 1;
            S = V1 * V1 + V2 * V2;
        } while(S >= 1 || S == 0);
       
        X = V1 * sqrt(-2 * log(S) / S);
    } else
        X = V2 * sqrt(-2 * log(S) / S);
       
    phase = 1 - phase;

    return X;
}

double example()                    
{
	double sita=0.25;
	double p0=20;
	int n;
	for(n=0;n<(365*2);n++)
			{
				p0=p0+(sqrt(p0/20.0)*sita*gaussrand()+p0*(exp(0.08/365.0)-1));
			}
	return p0;
}


double compare(double k)
{
	double f;
	if((k-20)>0)
		f=k-20;
	else f=0;
	return f;
}


int main()               
{
	 

	double p1, evalue,price,sum=0,sum1=0;


	int i=0;
	double Top_limit=100000.0;

	srand(time(NULL));              
	
	while(i<Top_limit)              
	{            
		p1=example();

                  sum=sum+p1;
		  sum1=sum1+compare(p1);     

		   i++;
	} 

	  evalue=(sum/Top_limit);         
      price=sum1*exp(-0.08*2)/Top_limit;
	  
		cout<<sum<<endl;              
		cout<<evalue<<endl;           
                cout<<sum1<<endl;  
		cout<<price<<endl;            

		return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -