だから私は暇な時間に問題に取り組んでいて、立ち往生しています。ここが私がいるところです。私は 40 という数字を持っています。これはプレイヤーを表しています。他の数字 39、38、....10 が与えられました。これらは、最初の 30 人のプレーヤーのスコア (1 -30) を表しています。残りのプレーヤー (31 ~ 40) のスコアは不明です。私がやりたいことは、与えられたデータと一致するスコアの組み合わせがいくつあるかを見つけることです。
より簡単な例: 3 人のプレイヤーがいる場合。1 人のスコアは 1 です。この場合、スコアの可能な組み合わせの数は 3 (0,2; 2,0; 1,1) です。ここで、(a,b) はプレーヤー 1 とプレーヤー 2 の勝利数を表します。 、 それぞれ。(3,0) の組み合わせは機能しません。3 勝できる人はいないからです。合計 3 勝する必要があるため (0,0) も機能しません (0,0 では得られません)。
可能な合計ゲーム数を見つけました。これは、プレイされたゲームの総数、つまり、勝利の総数です。(引き分けはありません。) 最後に、プレイヤーごとの最大勝利数の変数があります (これは、プレイヤーの総数よりも 1 少ない数です。それ以上のプレイヤーは獲得できません)。
各プレイヤーに N 回の勝利を分配し、基準に合わない組み合わせを差し引いて、ユニークな組み合わせの数を見つけようとしました。たとえば、5 人に 10 回の勝利を与え、各人が 4 回を超えないようにするには、次のようにします。 C(14,4) - C(5,1)*C(9,4) + C (5,2)*C(4,4) = 381. C(14,4) は、式 C(n+k-1, k-1) から得られます (Google のバーとストリップだと思います)。次は、5 (許可されていません) のものを選択しますが、2 回減算したものを追加します。
ええ、もっと簡単な方法があるはずです。最後に、数値が非常に大きくなりすぎて、コンピューターがそれらを適切に処理できるかどうか確信が持てなくなります。1.15495183 × 10^66 である C(780, 39) について話しています。とにかく、これを行うためのより良い方法があるはずです。
要約すると、40人います。最初の 30 人のスコアは 10 ~ 39 です。最後の 10 人のスコアは不明です。基準を満たすスコアをいくつ生成できますか: すべてのスコアを合計すると、可能な勝利の合計となり、各プレイヤーは 39 勝しなくなります。
考え?