Javaのすべての人Xの総利益を最大化する
5つの整数変数Num、P1、P2、profit_P1、profit_P2が与えられ、タスクは、[1、Num]の範囲内のすべての自然数から利益を最大化することです。ここでのアプローチは、正の数がP1で割り切れる場合、利益はprofit_P1で増加し、同様に、範囲内の数がP2で割り切れる場合、profit_P2の利益率が増加するというものです。また、正の整数からの利益は最大で1回追加できます。
例を挙げて理解しましょう:-
入力 − int num =4、P1 =6、P2 =2、profit_P1 =8、profit_P2 =2;
出力 −すべての人の総利益を最大化するX 4
説明 −ここでは、1から4([1、Num(4)])
の範囲の番号があります。級数の数字はP1で割り切れません
1と2はP2で割り切れる
1と2はP2で除算され、2 * 2 = 4の利益が得られます。
入力 − num =3、P1 =1、P2 =2、profit_P1 =3、profit_P2 =4
出力 −すべての人の総利益を最大化するX 10
説明 − 1、2、および3はAで割り切れます。
2は、Bで割り切れる、指定された範囲内の唯一の数値です。
2はAとBの両方で割り切れます。
1と3をAで割ると、2 * 3=6の利益が得られます
2をBで割ると、1 * 4=4の利益が得られます
2は両方で割り切れますが、利益を最大化するために、AではなくBで除算されます。
以下のプログラムで使用されるアプローチは次のとおりです-
-
正の数の範囲(Num)を含む6つの整数変数が与えられ、P1は最初の人を表し、P2は2番目の人を表し、profit_P1は人1の利益に似ています(つまり、与えられた数の範囲の数がP1で割り切れるprofit_P1rises)、同様にprofit_P2。
-
メイン関数内では、すべての計算の効用メソッドであるメソッド(profitMaximisation)が呼び出されます。
-
関数内では、P1またはP2のいずれかのLCMの倍数である場合にのみ、P1とP2の両方で割り切れるすべての数値がわかります。また、より多くの利益をもたらす数値で除算する必要があります。
> -
したがって、ここでは、 profit_P1 *(num / P1)+ Profit_P2 *(num / P2)– min(profit_P1、profit_P2)*(num / lcm(P1、P2))によって計算されます。 。
-
指定された数値のlcmを計算するためのCalculateGcd()メソッドが導入されています。
-
最終的な出力はmainメソッドでキャプチャされ、出力としてユーザーに表示されます。
例
public class testClass{ static int CalculateGcd(int n1, int n2){ if (n2 == 0) return n1; return CalculateGcd(n2, n1 % n2); } static int profitMaximisation(int n, int a, int b, int x, int y){ int result = x * (n / a); result += y * (n / b); result -= Math.min(x, y) * (n / ((a * b) / CalculateGcd(a, b))); return result; } public static void main(String[] args){ int num = 6, P1 = 6, P2 = 2, profit_P1 = 8, profit_P2 = 2; System.out.println("Maximize the total profit of all the persons X "+profitMaximisation(num, P1, P2, profit_P1, profit_P2)); } }
出力
上記のコードを実行すると、次の出力が生成されます
Maximize the total profit of all the persons X 12
-
JavaでJFrameの最大化ボタンを無効にするにはどうすればよいですか?
JFrame javaxのクラスです。スイング パッケージであり、 java.awt.frameを拡張できます クラス。 トップレベルウィンドウです ボーダーとタイトルバー付き。 JFrame クラスには、カスタマイズに使用できる多くのメソッドがあります。 JFrameのサイズを設定した後 サイズを変更するには、カーソルを隅に置いてドラッグするか、右上隅の閉じる横にあるサイズ変更オプションを押すと、全画面のサイズに最大化されます。これは、サイズ変更がデフォルトでtrueに設定されているために発生します JFrameクラスの場合。 setResizable(false)と同じくらいf
-
JavaでのJavaSwingのアーキテクチャを説明しますか?
Java Swing は、グラフィカルユーザーインターフェイス( GUI )を提供するAPIのセットです。 )Javaプログラムの場合。 Java Swingは、 Abstract Windows Toolkと呼ばれる以前のAPIに基づいて開発されました。 それ(AWT)。 Java Swingは、AWTよりも豊富で洗練されたGUIコンポーネントを提供します。 GUIコンポーネントは、単純なレベルから複雑なまでさまざまです。 ツリー およびテーブル 。 Java Swingは、プラグ可能なルックアンドフィールを提供します 基盤となるプラットフォームから独立したJavaプログラムのルックアンド