题目给出了计算概率的公式,则直接模拟公式即可,公式中的△x就等于(b - a) / 500。求出每个xi的值再求和即可。
C++
#include<bits/stdc++.h>
using namespace std;
double a, b;
小红之前的种植的白菜,最近到了收获的季节,为了让收获的白菜口感又好,又嫩。所以小红要估计白菜的大概长度,后面再来一波机械化收割。
假设一批白菜的平均长度服从密度函数为 sin(x)/5.68 的分布,其中平均长度 x 个于 [1,10] 之间。
小红想知道介于 [a,b]⊂[1,10] 的概率是否大于 0.5 以方便收割最大化。
我们知道通过数值积分可以给出 $P(a \le X\le b)= \int^a_b sin(\sqrt{x})/5.68 \approx \sum^{n-1}_{i=0} sin(\sqrt{x_i})/5.68 \Delta x$
其中 a=x0<x1<...<xn=b and xi+1−xi=Δx ,取 n=500 ,相当于把区间 [a,b] 分成 500 份。
第 1 行表示测试数据组数 T
接下来的 T 行,每一行表示输入 a , b , 1≤a<b≤10 表示范围。
输出 1 或者 0 ,如果得到的概率大于 0.5 则输出 1 否则则输出 0 。
输入
5
1 3
2 4
1 7
8 9
3 7
输出
0
0
1
0
1