這個問題可能與數學相關,而不是編程相關。我將通過一個例子來解釋這個問題。 假設我有一個包含100個項目的數組,我想爲這些項目分配值,使得前80%項目中的值總計爲20%,最後20%中的值合計爲的項目是80%。也就是說,前80%的項目獲得20%,其餘的獲得80%。知道這些項目的數量是在運行時確定的。如何通過指定不同的百分比來增加值
這可能嗎?
謝謝。
這個問題可能與數學相關,而不是編程相關。我將通過一個例子來解釋這個問題。 假設我有一個包含100個項目的數組,我想爲這些項目分配值,使得前80%項目中的值總計爲20%,最後20%中的值合計爲的項目是80%。也就是說,前80%的項目獲得20%,其餘的獲得80%。知道這些項目的數量是在運行時確定的。如何通過指定不同的百分比來增加值
這可能嗎?
謝謝。
當然。
設總數爲1,比80%爲0.8。如果20個項目總計爲0.8,則每個項目得到0.8/20 = 0.04。 剩下的80個項目總共得到0.2個,每個得到0.2/80 = 0.01/4 = 0.0025。
double[] items = new double[100];
for (int i = 0; i < 20; i++)
items[i] = 0.04;
for (int i = 20; i < 100; i++)
items[i] = 0.0025;
這同樣適用於整數等
比方說總是100 ASIGN 0.25至第一80%(80項)。所以前80項的總和將是80 * 0.25 = 20(佔總數的20%)。現在分配4休息20%(20項)。因此,最後20個項目的總和將是20 * 4 = 80(這是總數的80%)。這是您在代碼中需要的。
double[] items = new double[100];
for (int i = 0; i < 80; i++)
items[i] = 0.25;
for (int i = 80; i < 100; i++)
items[i] = 4;
爲什麼投票?這是代碼中的類型錯誤,我已經糾正它。 –
關於一般解決方案的問題不僅僅是隨機抽取一些數字並給出樣本。 –
@PiotrAuguscik:另一個答案也是隨機發出的,不是嗎?它仍然被接受 –
你能舉個例子嗎? –
100個項目?該項目的所有整數?當你說「前80%的項目總數是20%」時,你的意思是說,如果有100個,前80個數字加起來就是所有100個項目總價值的20%? – AndrewC