私は、アメリカンフットボールの得点方法でスコアを得る可能性をすべて探る簡単なプログラムを作ろうとしています。ここで Javaマルチスレッド|すべての可能性を見つける
は動作し、スコアのためにすべてのpossiblitiesを返す私のコードですfor (int a = 0; (a * sf) <= score; a++) {
for (int b = 0; (b * fg) + (a * sf) <= score; b++) {
for (int c = 0; (c * td) + (b * fg) + (a * sf) <= score; c++) {
for (int d = 0; (d * tdE) + (c * td) + (b * fg) + (a * sf) <= score; d++) {
for (int e = 0; (e * td2) + (d * tdE) + (c * td) + (b * fg) + (a * sf) <= score; e++) {
if ((((a) * sf) + ((b) * fg) + ((c) * td) + ((d) * tdE) + ((e) * td2)) == score) {
count++;
// System.out.println((a)+" Safties | "+(b)+" Field Goals | "+(c)+" TD | "+(d)+" TD w/ E | "+(e)+" TD w/ 2PC ");
}
}
}
}
}
}
私はので、私はプログラムがはるかに速く、より大きな数字を扱うことができるように、複数のスレッドにスコアを分割することができ、それを作りたいです。
現在、私は4スレッドでテストしており、このループを使用しています。例えば
for (int a = min; (a * sf) <= max; a++) {
for (int b = min; (b * fg) + (a * sf) <= max; b++) {
for (int c = min; (c * td) + (b * fg) + (a * sf) <= max; c++) {
for (int d = min; (d * tdE) + (c * td) + (b * fg) + (a * sf) <= max; d++) {
for (int e = min; (e * td2) + (d * tdE) + (c * td) + (b * fg) + (a * sf) <= max; e++) {
if ((((a) * sf) + ((b) * fg) + ((c) * td) + ((d) * tdE) + ((e) * td2)) == max) {
main.inc();
System.out.println((a)+" Safties | "+(b)+" Field Goals | "+(c)+" TD | "+(d)+" TD w/ E | "+(e)+" TD w/ 2PC ");
}
}
}
}
}
}
、スコアは500 スレッド1であった場合1-125、 スレッド2、126から250、 糸3、251から375、 スレッド4になるだろう、376 500
私はそれを適切に分割して右のmin-maxを与えましたが、それでも正しく動作しません。私は、それぞれのループが始まる場所で何かをしなければならないと信じていますが、わかりません。どんな助けでも大歓迎です。もっと説明が必要な場合は、私に教えてください
うん...これは非常に簡単と思われます。 –
@ MuratK。なぜあなたはそれを投稿し、何も示唆しないのですか? – brendan612
あなたの質問にはスニペットだけでなく[mcve]が必要です。 – Gimby