[英]Evaluating algebraic expressions with combinations
這里有一些提示。 如果您嘗試使用它們但仍然遇到問題,請尋求更多幫助。
首先,您知道該表達式涉及“組合”,也稱為“二項式系數”。 因此,您將需要一個計算這些的例程。 這是一個有關如何計算這些數字的多個答案的問題 。 簡而言之,您可以使用scipy
包或使用Python的factorial
函數或使用迭代程序來創建自己的例程。
接下來,您將看到該表達式涉及總和和乘積,並被編寫為單個表達式。 Python有一個sum
函數,可用於生成器表達式(以及list和set生成器以及其他可迭代對象)。 如果您知道如何設置這樣的表達式,則從數學到Python的轉換將更加容易。 如果您不了解這些生成器/迭代器以及如何對其進行求和,請對此主題進行研究。 這種方法不是必需的,因為您可以使用循環而不是生成器,但是這種方法會更容易。 進行研究,直到您可以理解一個表達式(包括為什么該range
的最終數字加上1
),例如
sum(N * f(x) for x in range(1, 5+1))
最后,您的表達式具有乘積,但是Python沒有內置的方法來獲取可迭代乘積。 這是Python 3中的此類功能。
from operator import mul
from functools import reduce
def prod(iterable):
"""Return the product of the numbers in an iterable."""
return reduce(mul, iterable, 1)
有了這些,您所需的表情將如下所示(您將需要通過將...
替換為更有用的內容來完成工作):
numerator = sum(N * prod(... for y in range(1, 1+1)) for x in range(1, 5+1))
denominator = prod(y + N for y in range(1, 5+1))
result = numerator / denominator
請注意,您的最終結果是N
的函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.