使用Python代码求解简单的sigma-Algebra(也就是概率中的Borel域)

Using Python code to solve simple sigma-Algebra (also known as Borel field in probability)

我正在阅读一篇关于在概率中使用 sigma 代数的博客 post。作者给出了一个简单的例子,后面是一些 Python 代码展示了他将如何解决 Python 中的问题。但是,当我使用 Google Colab 测试他的 Python 代码时,当我 运行 它时,我得到了错误消息(类型错误:'function' 对象不可迭代)。

我不是一个 Python 用户,所以我从来没有用它来解决数学问题,但我正在阅读博客 post 因为我想学习如何用它来解决这样的数据科学问题。我搜索了 Google,但找不到任何其他关于使用 Python 求解 sigma-algebra 的文章,所以我想我会 post 这个问题,以防其他人尝试 运行学习Python的代码,发现同样的错误。我在大学学的是 Matlab 和 R,而不是 Python。

这里是博客 URL post:https://towardsdatascience.com/foundations-of-probability-7a792e7eea5

这是他提供的代码:

from itertools import combinations, chain
powerset = ((),)
def powerset(input_set):
size = len(input_set)
    combs = (combinations(input_set, k) for k in range(1, size+1))
    
    return chain(empty_powerset, *combs)

print(tuple(powerset({10, 20, 30})))

解决方案应显示8组;其中一个是空集(),然后剩下的七个是{10},{20}等等直到{10,20,30}。您将如何更正这段代码?谢谢!

网站上发布的代码至少有两个错误。这是正确的代码:

import pandas as pd

from itertools import combinations, chain

empty_powerset = ((),)

def powerset(input_set):
    size = len(input_set)
    combs = (combinations(input_set, k) for k in range(1, size + 1))

    return chain(empty_powerset, *combs)


print(tuple(powerset({10, 20, 30})))

首先,它是 empty_powerset,其次,缺少 size = ... 之前的缩进。

我得到的结果是

((), (10,), (20,), (30,), (10, 20), (10, 30), (20, 30), (10, 20, 30))