[示例:给定k = 3和n = 3,很容易生成条目为0或1或2的所有三元组的列表。[((0,0,0),(0,0,1),(0,0,2),(0,1,0),(0,1,1),(0,1,2) ,(0,2,0),(0,2,1),(0,2,2),(1,0,0),(1,0,1),(1,0,2),( 1、1、0),(1、1、1),(1、1、2),(1、2、0),(1、2、1),(1、2、2),(2, 0,0),(2,0,1),(2,0,2),(2,1,0),(2,1,1),(2,1,2),(2,2, 0),(2、2、1),(2、2、2)]
但是,在我的上下文中,元组(0,1,2),(0,2,1),(1,2,0),(1,0,2),(2,0,1), (2,1,0)都“相同”(相同条目,但顺序不同),因此我只想保留其中之一。在这六个中,(0,1,2)是条目为“按顺序”的那个,因此我只想保留那个。
同样,元组(0,1,1)(1,0,1),(1,1,0)都相同,所以我只想保留(0,1,1)。] >
Goal:某些函数generate_my_tuples(n,k)会生成所有长度为k的元组的列表,其条目在range(n)中,但仅每个可能元组的“按顺序”版本,如下所示如上所述。
对于上面的示例,我希望输出为:[((0,0,0),(0,0,1),(0,0,2),(0,1,1),(0,1,2),(0,2,2) ,(1,1,1),(1,1,2),(1,2,2),(2,2,2)]
作为一个额外的目标,如果该函数还创建了已删除的元组的列表,那就很好了。
Comments:我可以看到在k = 2时如何执行此操作,因此每个元组只有一个“正确”和一个“不正确”顺序。但是,我看不到如何将其概括为任意k(其中,元组的“不正确”版本的数量甚至取决于元组中的条目)。在我的上下文中,我确实需要此函数来覆盖所有可能的n和k。
示例:给定k = 3和n = 3,很容易生成所有3元组的列表,其条目为0或1或2:[[(0,0,0),(0,0,1) ,(0,0,2),(0,1,0),(0,1,1),(0,1,2),(0,2,0),(0,2,1),( 0,...