-2
該函數將4個輸入作爲x,y,w,z,並且我想用x + y + w + z = 1約束來優化函數,並且所有4應該小於1。我接近這個任務?在python中優化函數
該函數將4個輸入作爲x,y,w,z,並且我想用x + y + w + z = 1約束來優化函數,並且所有4應該小於1。我接近這個任務?在python中優化函數
如果我理解正確的話,下面的解決方案應適合您最初的要求:
def checkAllForOne(x,y,w,z):
args = [x,y,w,z]
return all(i < 1 for i in args) and sum(args) == 1
print(checkAllForOne(0.2, 0.25, 0.25, 0.3)) # True
print(checkAllForOne(0.0, 0.25, 0.25, 0.3)) # False
print(checkAllForOne(0.5, 0.4, 0.1, 0)) # True
定義你的約束並編寫一些代碼?如上所述,無論如何,您的優化都有無數的解決方案。請參閱[如何提問](http://stackoverflow.com/help/how-to-ask)。 – roganjosh
*所有4應小於1 * - 如果它們都小於1,他們如何給出1作爲結果? – RomanPerekhrest
@RomanPerekhrest'0.25 + 0.25 + 0.25 + 0.25' – roganjosh