私は並行性を学ぶことに決め、2つの異なるプロセスからの命令がどのように重複する可能性があるかを知りたいと思いました。両方のプロセスのコードは、各反復で3つの命令が実行される10回の反復ループです。問題は、ある時点でX命令を固定したままにして、他のプロセスからの他のX命令を、順序付けする必要があることを考慮してスペースの間に収めることであると考えました(プロセスBの命令4は常に命令20の前に来る必要があります)。
この数を数えるプログラムを作成し、結果を見て、解がnの組み合わせkであることがわかりました。ここで、kは1つのプロセスのループ全体で実行される命令の数であるため、10回の反復では30になります。 nはk*2(2プロセス)です。言い換えると、n / 2が固定され、スペースの間にn / 2を収める必要がある、n個のオブジェクト。後者のn/2は順序を失うことはありません。
問題は解決しました。いいえ、そうではありません。これがなぜであるかはわかりません。組み合わせの定義は、n個のグループからk個の要素を取得して、すべてのグループが異なるが、要素を取得する順序が異なるようにする方法がいくつあるかを理解しています。重要です。この場合、n個の要素があり、すべての命令が実行されるため(n C n)、実際にはそれらすべてを取得しています。
バッグの中に2kの青(A)と赤(B)のオブジェクトがあり、バッグからk個のオブジェクトを取り出すと説明すると、2k個の命令が実際に実行されたときにk個の命令しか取得しません。これに光を当てていただけませんか?
前もって感謝します。