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

C /C++でのBertrandísバロット定理のアプリケーション


Bertrandの元の論文で、彼は、漸化式を実装する好ましいシーケンスの数の一般式に依存する証明を説明しています。

5人の投票者がいて、そのうち3人が候補者Aに投票し、2人が候補者Bに投票するとします(したがって、p=3およびq=2)。投票の順序には10の可能性があります-

  • AAABB

  • AABAB

  • ABAAB

  • BAAAB

  • AABBA

  • アババ

  • BAABA

  • ABBAA

  • BABAA

  • BBAAA

注文AABABの場合、選挙の進行に伴う投票の集計は以下のとおりです-

候補 A A B A B
A 1 2 2 3 3
B 0 0 1 1 2

各列について、Aの集計は常にBの集計よりも大きいため、Aは常にBよりも厳密に進んでいます。AABBAの順序では、選挙の進行に伴う投票の集計を以下に示します-

候補 A A B B A
A 1 2 2 2 3
B 0 0 1 2 2

この順序に関しては、4回目の投票後にBがAと結びついているため、Aが常にBよりも厳密に進んでいるとは限りません。10の可能な順序のうち、AAABBとAABABの場合のみ、Aは常にBよりも進んでいます。したがって、Aが常に厳密に先行する確率は2/10 =1/5であり、定理が予測するように、これは実際に3-2 / 3+2に等しくなります。


  1. C / C ++のmemcpy()

    この記事では、C ++ STLでのmemcpy()関数の動作、構文、および例について説明します。 memcpy()とは何ですか? memcpy()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。 memcpy()関数は、メモリのブロックをコピーするために使用されます。この関数は、あるメモリ位置から別のメモリ位置に値の数をコピーするために使用されます。 関数の結果は、データのバイナリコピーです。この関数は、終了ソースまたは終了ヌル文字をチェックせず、ソースからnumバイトをコピーするだけです。 例 void memcpy( void* destin

  2. C / C ++のAAツリー?

    コンピュータサイエンスのAAツリーは、順序付けられたデータを効率的に保存および取得するために実装されたバランスの取れたツリーの形式として定義されます。 AAツリーは、エントリの効率的な追加と削除をサポートするバイナリ検索ツリーの形式である赤黒ツリーのバリエーションとして扱われます。赤黒木とは対照的に、AAツリーの赤いノードは、左のサブチャイルドではなく、右のサブチャイルドとしてのみ追加できます。この操作の結果、2-3-4ツリーではなく2-3ツリーのシミュレーションが行われるため、メンテナンス操作が簡素化されます。赤黒木のメンテナンスアルゴリズムでは、ツリーのバランスを適切にとるために、7つの異