使用 Python 代码解决简单的 sigma-Algebra概率中也称为 Borel 场

问题描述

我正在阅读一篇关于在概率中使用西格玛代数的博客文章。作者举了一个简单的例子,后面是一些 Python 代码,展示了他将如何用 Python 解决这个问题。但是,当我使用 Google Colab 测试他的 Python 代码时,我在运行它时得到了错误消息(TypeError: 'function' object is not iterable)。

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

这是博文的网址: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,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,20),30),30))