C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

壊れたスティックの断片がC++でn面のポリゴンを形成する確率


任意の長さのスティックが与えられます。そのスティックは、整数型または浮動小数点型のn個のピース​​にランダムに分割できます。タスクは、分割されたピースが可能かどうかを確認することです。 n辺のポリゴンを形成します。

式を適用して確率を計算できます

$$ P(E ^ {\ prime})=1-P(E)=1-\ frac {n} {2 ^ {n-1}} $$

ここで、nは、スティックをパーツに分割することによって生成されるピースの数です。

入力

length = 10 , pieces = 4

出力

probability is : 0.5

説明 −サイズ10cmの長さで与えられ、4つの部分に分かれています

入力

length = 5 , pieces = 3

出力

probability is : 0.25

説明 −サイズ5cmの長さで与えられ、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;
//function to calculate probability
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

  1. C++でN回カットした後の円のピースを数えます

    2D円に適用されるカットの数を表す整数Nが与えられます。各円は、円を2つに分割します。目標は、Nカット後に円の断片を見つけることです。 個数=2*いいえ。カットの 例を挙げて理解しましょう。 入力 − n =1 出力 −円の断片:2 説明 − 入力 − n =3 出力 −円の断片:6 説明 − 以下のプログラムで使用されているアプローチは次のとおりです いくつかのカットにNを使用します。 ピースを取る=1*N。 結果を印刷します。 例 #include <bits/stdc++.h> using namespace st

  2. Window上のc++のトップIDEは何ですか?

    大きなプロジェクトは、単なるテキストエディタでは管理が困難です。このような場合にIDEを使用すると、生産性が向上し、フラストレーションが軽減される可能性があります。 IDEにはさまざまな種類があり、ニーズに合ったものを選択する必要があります。これがWindowに最適なC/C++IDEのリストです。 Visual Studio − Microsoftが開発したIDEです。このIDEは、Windows上でC ++のプログラムを構築、開発、およびプロファイリングするためのクラス最高のツールを備えています。 Visual Studioには、多数のプラグインを備えた巨大なプラグインストアもありま