Một cách hiệu quả để làm điều này trong Python là sử dụng reduce[]
.
Để giải quyết
3
Σ i
i=1
Bạn có thể sử dụng những điều sau:
from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
reduce[]
sẽ lấy các đối số của một người có thể gọi và có thể lặp lại, và trả về một giá trị theo quy định của người được gọi. Bộ tích lũy là a
và được đặt thành giá trị đầu tiên [
from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
0], và sau đó là tổng hiện tại sau đó. Giá trị hiện tại trong ITEBLE được đặt thành from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
1 và được thêm vào bộ tích lũy. Các tích lũy cuối cùng được trả lại.Công thức ở bên phải của Sigma được đại diện bởi Lambda. Trình tự chúng tôi đang tổng hợp được đại diện bởi Itable. Bạn có thể thay đổi những điều này theo cách bạn cần.
Ví dụ: nếu tôi muốn giải quyết:
Σ π*i^2
i
Đối với một chuỗi i
from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
2, tôi có thể làm như sau:reduce[lambda a, x: a + 3.14*x*x, [0]+[2,3,5]]
Bạn có thể thấy hai dòng mã sau đây tạo ra cùng một kết quả:
>>> reduce[lambda a, x: a + 3.14*x*x, [0]+[2,3,5]]
119.32
>>> [3.14*2*2] + [3.14*3*3] + [3.14*5*5]
119.32
Làm thế nào để bạn sử dụng tổng hợp sigma?
Thư vốn Hy Lạp, ∑, được sử dụng để đại diện cho tổng. Sê -ri 4+8+12+16+20+24 có thể được biểu thị là 6∑n = 14n. Biểu thức được đọc là tổng của 4n là N đi từ 1 đến 6. Biến n được gọi là chỉ số tổng kết.
Có một sigma trong Python? i and the starting value for the range, written as i=0. Above it is the ending value for the range, usually something like n. To the right is some function to execute for each value of the bound variable. In this case, a generic function, f[ i]. This is read as “sum f[ i] for i in the range 0 to n”.
Một định nghĩa phổ biến của σ sử dụng phạm vi đóng, bao gồm các giá trị cuối của 0 và n. Tuy nhiên, vì đây không phải là một định nghĩa hữu ích cho phần mềm, chúng tôi sẽ xác định để sử dụng khoảng thời gian nửa mở. Nó có chính xác n phần tử, bao gồm 0 và N-1; Về mặt toán học,. n. However, since this is not a helpful definition for software, we will define Σ to use a half-open interval. It has exactly n elements, including 0 and n-1; mathematically,
Do đó, chúng tôi thích ký hiệu sau, nhưng nó không thường được sử dụng. Hầu hết các văn bản thống kê và toán học dường như sử dụng lập chỉ mục dựa trên 1, do đó, một số sự quan tâm là cần thiết khi dịch các công thức sang các ngôn ngữ lập trình sử dụng lập chỉ mục dựa trên 0.
Phương trình & NBSP; 13.4. & NBSP; tổng hợp với khoảng thời gian nửa mở
Hai thuật toán thống kê của chúng tôi có một hình thức giống như sau. Trong đó, chúng tôi đang áp dụng một số hàm, f [], cho mỗi giá trị, xi của một mảng. Khi tính toán giá trị trung bình, không có chức năng. Khi tính toán độ lệch chuẩn, chức năng liên quan đến việc trừ và nhân. f[], to each value, xi of an array. When computing the mean, there is no function. When computing standard deviation, the function involves subtracting and multiplying.
Phương trình & nbsp; 13,5. & Nbsp; tổng hợp các yếu tố của một mảng, x x
Chúng ta có thể chuyển đổi định nghĩa này trực tiếp thành một vòng lặp For đặt biến ràng buộc thành tất cả các giá trị trong phạm vi và thực hiện một số xử lý trên mỗi giá trị của
from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
3 của số nguyên. Đây là việc thực hiện Python của Sigma. Điều này tính toán hai giá trị, tổng, from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
4 và số lượng phần tử, from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
5.Ví dụ & nbsp; 13.2. & NBSP; Python Sigma Lặp lại
sum= 0 for i in range[len[theList]]:xi= theList[i]# fxi = processing of xisum += fxi n= len[theList]
| Nhận độ dài của 6. Thực hiện phần thân của vòng lặp cho tất cả các giá trị của 7 trong phạm vi 0 so với số phần tử-1.
|
| Lấy mục 7 từ 6 và gán nó cho 0. |
| Đối với tính toán trung bình đơn giản, tuyên bố này không làm gì cả. Tuy nhiên, đối với độ lệch chuẩn, tuyên bố này tính toán thước đo độ lệch so với mức trung bình. |
Các lập trình viên Python tiên tiến hơn có thể nhận thức được rằng có một số cách để rút ngắn vòng lặp này xuống một biểu thức duy nhất bằng cách sử dụng hàm
Σ π*i^2
i
1 cũng như danh sách toàn diện. Một tối ưu hóa. & NBSP; Trong ký hiệu toán học thông thường, một chỉ số số nguyên, tôi được sử dụng. Trong Python, không cần thiết phải sử dụng chỉ số số nguyên chính thức. Thay vào đó, một trình lặp có thể được sử dụng để truy cập từng yếu tố của
3, mà không thực sự sử dụng một bộ đếm số rõ ràng. Việc xử lý đơn giản hóa thành những điều sau đây.In the usual mathematical notation, an integer index, i is used. In Python it isn't necessary to use the formal integer index. Instead, an iterator can be used to visit each element of the from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
from functools import reduce
result = reduce[lambda a, x: a + x, [0]+list[range[1,3+1]]]
print[result]
3, without actually
using an explicit numeric counter. The processing simplifies to the following.Ví dụ & nbsp; 13.3. & Nbsp; giá trị mẫu python của Iterator
for xi in theList:# fxi = processing of xisum += fxi n= len[theList]
| Thực hiện vòng lặp gán từng mục của 6 cho 0.
|
| Đối với tính toán trung bình đơn giản, tuyên bố này không làm gì cả. Tuy nhiên, đối với độ lệch chuẩn, tuyên bố này tính toán thước đo độ lệch so với mức trung bình. |