萬盛學電腦網

 萬盛學電腦網 >> Excel教程 >> excel綜合 >> excel如何確定幾個未知數之和剛好等於給定的總和值

excel如何確定幾個未知數之和剛好等於給定的總和值

   一、首先要了解RAND函數

  因為我們要找出的這幾個值,根本就不知道到底是哪幾個數,而只知道這幾個數加起來等於多少,即只知道和值並不知道這幾個數是多少。

  因此,必須使用RAND隨機數來解決這樣的未知問題。

  RAND的用法很簡單,方法為:=RAND()

  其取值范圍為: (0,1]

  比如:公式 =RAND()*10 該公式得到的值的范圍是 (0,10],即大於0而小於等於10之間的可能的任何一個數。

  有了RAND隨機數,我們就可以通過給定的總和值,假設是M,推算出第一個數,進而推算出第二個、第三個、第四個……第N個數。

  二、通過總和值M推算出幾個未知數的理論

  假設給定一個和值M,根據該和值,要我們推算出三個數,這三個數加起來剛好等於M。

  針對這種條件,我們都明白,這三個數的可能情況,是相當多的,不僅僅是只有一組數字,而是一序列的數據。

  第一個數的推算:理論依據是,該數不能大於M

  所以我們使用公式 Num1=RAND()*M

  下面我們來分析第一個數的取值范圍,RAND()的取值范圍為(0,1],將其再乘以和值M,那麼,第一個數的取值范圍就為:(0,M]

  假如第一個數不為M,那麼,第二第三個數一定不為0,否則,第二第三個數一定為0

  第二個數的推算:理論依據是,用總和值減去第一個數再除以隨機值,

  即:Num2==RAND()*(M-Num1)

  下面分析第二個數的取值范圍,大於0而小於等於(M-Num1)

  第三個數的推算:由於是最後一個數了,因此,第三個數 Num3=M-Num1-Num2

  自然,第三個數的取值范圍是大於0小於等於(M-Num1-Num2)。

  上述的推理過程中,涉及到的似乎都是未知數,好像沒有一個確定的解,但是您別忘了,RAND()和M在具體的應用過程中,完全都是一個具體的數字,因此,所推理出來的第一、第二、第三……第N個數,完全都是一個具體的數字。

  下面,我們給出具體的一個例子,好讓大家的思路逐清晰起來。

  假設給定一個總和值M為80,要求通過Excel給出三個數,這三個數加起來剛好等於80,這三個數如何確定。

  這三個數,到底是哪幾個,其解有無窮個,也就是說,這三個未知數,有無窮個解,要幾個都可以,下面,我們就具體給出公式代碼和幾組解吧。

  第一個數Num1的公式為:=RAND()*80

  第二個數Num2的公式為:=RAND()*(80-Num1)

  第三個數Num3的公式為:=80-Num1-Num2

  如果你在電子表格中使用填充的辦法,可以得出無窮個解。這就是答案,下面,給你貼出幾組解吧。

  Num1     Num2     Num3

  15.79585527   0.557776878   63.64636785

  13.65591211   66.0342379    0.309849991

  69.89598614   7.781773093   2.322240765

  78.74553578   0.209932603   1.044531618

  17.43271997   53.86973039   8.697549647

  45.66567338   20.4002065   13.93412011

  三、知識擴展

  ①如何根據總和值得出N個數的公式

  知道M,如何確定N個數,讓這N個數的和值剛好為M,這N個數的公式如何推算?

  第一個數:RAND()*M

  第二個數:RAND()*(M-Num1)

  第三個數:RAND()*(M-Num1-Num2)

  第四個數:RAND()*(M-Num1-Num2-Num3)

  ……

  第N-1個數:RAND()*(M-Num1-Num2-Num3-……-Num(n-2))

  第N個數:M-M-Num1-Num2-Num3-……-Num(n-2)-Num(n-1)

  這就是通用的公式。是根據上面的理論與實踐推論得出的,經過驗證,沒有發現錯誤。

  ②根據M得出幾個整數而不是實數

  如果知道M總和值,如何得出幾個數,並且,這幾個數必須為整數而不是帶有小數點的實數?

  借助int()函數可解決此類問題。通用公式如下:

  第一個數:int(RAND()*M)

  第二個數:int(RAND()*(M-Num1))

  第三個數:int(RAND()*(M-Num1-Num2))

  第四個數:int(RAND()*(M-Num1-Num2-Num3))

  ……

  第N-1個數:int(RAND()*(M-Num1-Num2-Num3-……-Num(n-2)))

  第N個數:M-M-Num1-Num2-Num3-……-Num(n-2)-Num(n-1)

copyright © 萬盛學電腦網 all rights reserved