如果我有一个数组:
由于a的实际大小非常大,因此我无法生成所有可能的子集,因为有许多,许多子集。目前,我正在使用“随机游走”的想法-对于a的每个元素,我会'掷一枚硬币'并在硬币正面朝上时包含它-但我不确定这是否真正均匀地抽样了空间。感觉偏向中间,但这可能只是我大脑进行模式匹配,因为会有更多中等大小的可能性。
我是否使用了正确的方法,或者应该如何进行随机抽样?
(我知道这更像是一个与语言无关和“mathsy”问题,但我觉得这并不是数学堆栈材料-我只需要一个实用的答案。)
a = [1,2,3]
如何随机选择数组的子集,使得每个子集的元素都是唯一的?也就是说,对于a
而言,可能的子集包括:
[]
[1]
[2]
[3]
[1,2]
[2,3]
[1,2,3]
由于a的实际大小非常大,因此我无法生成所有可能的子集,因为有许多,许多子集。目前,我正在使用“随机游走”的想法-对于a的每个元素,我会'掷一枚硬币'并在硬币正面朝上时包含它-但我不确定这是否真正均匀地抽样了空间。感觉偏向中间,但这可能只是我大脑进行模式匹配,因为会有更多中等大小的可能性。
我是否使用了正确的方法,或者应该如何进行随机抽样?
(我知道这更像是一个与语言无关和“mathsy”问题,但我觉得这并不是数学堆栈材料-我只需要一个实用的答案。)
a
不会是一个整数数组? - Michael Kohl