让S1 = {e11, e12, e13,...,e1n}
S2={e21, e22, e23,...,e2i}
,S3={e31, e32, e33,...,e3j}
,S4 ={e41, e42, e43,...,e4k}
为维度n, i, j
和{{1}的 float 元素集}。
对于集合k
,我们要从S1
,S2
和S3
中选择 E 的随机子集。子集的维度应该等于S4
。
由于我随机从10 x |S1|
,S2
和S3
中选择元素的子集。只有S4
或才能从S4
和S2
或>中选择子集的所有元素的可能性或概率strong>来自S3
。
我们可以使用什么公式来满足以下约束条件:
S2
,S2
和S3
我们还必须考虑到这些集合具有不同的维度。
S4
随机子集的大小为S1 = {1.0, 2.0}
S2 = {4.0, 5.0, 6.0}
S3 = {7.0, 8.0, 9.0, 23.0, 24.0, 25.0, 26.0, 30.0, 100.0, 200.0, 300.0, 400.0, 500.0, 600.0}
S4 = {10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0}
。我们必须从10 x |S1| = 20
和20
中随机选择S2, S3
个元素。
S4
如果我们从S2 ∪ S3 ∪ S4 = {4.0, 5.0, 6.0, 100.0, 200.0, 300.0, 400.0, 500.0, 600.0, 7.0, 8.0, 9.0, 23.0, 24.0, 25.0, 26.0, 30.0, 100.0, 200.0, 300.0, 400.0, 500.0, 600.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0}
|S2 ∪ S3 ∪ S4| = 30
中随机选择 20 元素,我们可能会不选择|S2 ∪ S3 ∪ S4|
。
答案 0 :(得分:1)
你走了:
Random random = new Random(DateTime.Now.Millisecond);
HashSet<float> set1 = new HashSet<float>(...);
HashSet<float> set2 = new HashSet<float>(...);
HashSet<float> set3 = new HashSet<float>(...);
HashSet<float> set4 = new HashSet<float>(...);
set2.UnionWith(set3);
set2.UnionWith(set4);
IEnumerable<float> resultSet = set2.OrderBy(x => random.Next()).Take(set1.Count*10);