我们可以得到任意长度的棒,并且可以将棒随机破碎为n个碎片,这些碎片可以是整数或浮点型,任务是确定破碎的碎片是否可以形成有边的多边形。
我们可以通过应用公式来计算概率
$$P(E ^ {\ prime})= 1-P(E)= 1- \ frac {n} {2 ^ {n-1}} $$
其中,n是将棍子分成几部分而产生的碎片数。
输入值
length = 10 , pieces = 4
输出结果
probability is : 0.5
说明-长度为10厘米,分为4部分
输入值
length = 5 , pieces = 3
输出结果
probability is : 0.25
说明-长度为5厘米,分为3部分
输入棒的长度以及可分成的碎片数
应用公式计算概率
打印结果
Start Step 1→ Declare function to calculate the probability double probab(unsigned len, unsigned pieces) declare unsigned a = (1 << (pieces-1)) return 1.0 - ((double)pieces) / ((double)a) step 2→ In main() Declare unsigned pieces = 4, len = 10 Call probab(len, pieces) Stop
#include<iostream> using namespace std; //计算概率的函数 double probab(unsigned len, unsigned pieces){ unsigned a = (1 < (pieces-1)); return 1.0 - ((double)pieces) / ((double)a); } int main(){ unsigned pieces = 4, len = 10; cout <<"probability is : "<<probab(len, pieces); return 0; }
输出结果
如果运行上面的代码,它将生成以下输出-
probability is : 0.5