黄浩老师cpp平时作业(二)蒙特卡罗阴影面积

使用自定义积分函数的解决方法:

使用自定义积分函数利用矩形面积累加方法计算阴影面积的C++代码如下,供参考。阴影面积计算的结果是19.5039

//Shadow.cpp 小学六年级数学题 计算阴影面积

#include <iostream>

#include <cmath>

using namespace std;

inline double LineFun(double x){ //直线方程

return x/2;

}

inline double ArcFun(double x){ //左边圆的曲线方程

return 5-sqrt(25-(x-5)*(x-5));

}

//左下角0-5的分段函数

double Fun(double x){

double y1 = LineFun(x);

double y2 = ArcFun(x);

return y1<y2 ? y1:y2; //对左下角不规则形状,不同的x值应该取小的y值

}

//积分函数

double Integrate(double (*f)(double),double step){ //第一个形参是函数指针

double sum=0;

for(double x=0;x<5;x+=step){ sum += step*f(x); //step*f(x)就是一个小长方形的面积

}

return sum;

}

int main(){

double LeftCorner = Integrate(Fun,0.0001);

const double PI=3.14159265;

double area=10*10-PI*5*5-LeftCorner;

cout<<"左下角面积:"<<LeftCorner;//1.95624

cout<<" 阴影面积:"<<area<<endl;//19.5039

return 0;

}

以上内容不是我写的,是老师给的实际上,有题解的时候我大概就懒地再调代码了,手动狗头

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值