说我有N个元素。我想将它们随机分配到S组。
我想编写一种算法来分发它们,以使每个集合中的元素数量遵循某些规则,即:
其中k,i,S,N和J是用户设置的参数。只要满足每个集合和交集的大小,就可以在每个集合中放入哪个元素都没有关系。
如何编写有效分配元素的函数?
我精通python,因此会高度赞赏python或伪代码。
*变量的大小预计约为几千(1000 -10,000)。谢谢=)
您要解决的问题很难解决您所讨论的大小的输入。让我们仅采用两种特殊情况,它们在参数的范围之内:
N = 111
,S = 111
,k = 11
,i = 1
和J = 0
。解决该问题实例的方法是将finite projective plane设为10;这种有限的射影平面的存在是一个长期存在的开放问题,最终于1982年由a computer search which took 183 days to run解决。答案是不存在解决方案。
N = 157
,S = 157
,k = 13
,i = 1
和J = 0
。该问题实例的解决方案等效于12阶有限射影平面。在组合论中,是否存在任何解决方案仍然是重要的开放问题。