Questions tagged «combinations»

组合是从一个较大的集合中按没有特定顺序的对象选择。

30
从n返回k个元素的所有组合的算法
我想编写一个函数,该函数采用字母数组作为参数,并选择多个字母。 假设您提供8个字母的数组,并希望从中选择3个字母。然后您将获得: 8! / ((8 - 3)! * 3!) = 56 返回由3个字母组成的数组(或单词)。

27
如何获得列表元素的所有可能组合?
我有一个包含15个数字的列表,我需要编写一些代码来生成这些数字的所有32,768个组合。 我已经找到了一些代码(通过Googling),这些代码显然可以满足我的需求,但是我发现代码相当不透明并且对使用它很谨慎。另外,我觉得必须有一个更优雅的解决方案。 对我而言,唯一发生的就是循环遍历十进制整数1–32768,并将其转换为二进制,然后使用二进制表示形式作为筛选器来选择适当的数字。 有谁知道更好的方法吗?使用map(),也许?

7
清单清单的所有组合
我基本上是在寻找组合的 python版本List<List<int>> 给定一个列表列表,我需要一个新列表,该列表给出列表之间所有可能的项目组合。 [[1,2,3],[4,5,6],[7,8,9,10]] -> [[1,4,7],[1,4,8],...,[3,6,10]] 列表的数量是未知的,因此我需要适用于所有情况的东西。优雅奖励积分!


11
两个列表之间的组合?
已经有一段时间了,我无法将自己的头围绕着我尝试制定的算法。基本上,我有两个列表,并且想要获得两个列表的所有组合。 我可能没有解释正确,所以这里有个例子。 name = 'a', 'b' number = 1, 2 在这种情况下的输出将是: 1. A1 B2 2. B1 A2 棘手的部分是,“名称”变量中的项目可能比“数字”变量中的项目更多(数字将始终等于或小于名称变量)。 我很困惑如何进行所有组合(是否嵌套到循环?),甚至在名称中的项目比数字列表中的项目多的情况下,对于将名称变量中的项目进行移位的逻辑更加困惑。 我不是最好的程序员,但是如果有人可以帮助我阐明实现这一目标的逻辑/算法,我想可以试一试。所以我只是停留在嵌套的循环上。 更新: 这是带有3个变量和2个数字的输出: name = 'a', 'b', 'c' number = 1, 2 输出: 1. A1 B2 2. B1 A2 3. A1 C2 4. C1 A2 5. B1 C2 6. C1 B2


18
统计信息:Python中的组合
我需要计算在Python combinatorials(NCR),但无法找到的功能做在math,numpy或stat 图书馆。类似于函数的类型: comb = calculate_combinations(n, r) 我需要可能的组合数量,而不是实际组合,因此itertools.combinations我对此并不感兴趣。 最后,我要避免使用阶乘,因为我将要计算其组合的数字可能会太大,并且阶乘将变得非常可怕。 这似乎是一个非常容易回答的问题,但是我被有关生成所有实际组合的问题淹没了,这不是我想要的。

12
嵌套循环的替代方法更快吗?
我需要创建一个数字组合列表。数字很​​小,所以我可以用byte代替int。但是,它需要许多嵌套循环才能获得所有可能的组合。我想知道是否有一种更有效的方式来执行我要执行的操作。到目前为止的代码是: var data = new List<byte[]>(); for (byte a = 0; a < 2; a++) for (byte b = 0; b < 3; b++) for (byte c = 0; c < 4; c++) for (byte d = 0; d < 3; d++) for (byte e = 0; e < 4; …
85 c#  combinations 

7
在JavaScript中捕获Ctrl + Z组合键
我正在尝试使用以下代码在JavaScript中捕获ctrl+z组合键: <html> <head> <title>Untitled Document</title> </head> <body> <script type='text/javascript'> function KeyPress(e) { var evtobj = window.event? event : e //test1 if (evtobj.ctrlKey) alert("Ctrl"); //test2 if (evtobj.keyCode == 122) alert("z"); //test 1 & 2 if (evtobj.keyCode == 122 && evtobj.ctrlKey) alert("Ctrl+z"); } document.onkeypress = KeyPress; </script> </body> </html> 如果我按住该ctrl键并按任何其他键,则注释行“ test1”会生成警报。 如果按下z键,注释行“ …


3
使用SAT求解器(Python)查找特定区域内的游离多氨基酸的所有组合
我是SAT求解器领域的新手,并且需要有关以下问题的一些指导。 考虑到: ❶我选择了4 * 4网格中的14个相邻单元格 ❷我有5个大小分别为4、2、5、2和1的多氨基酸(A,B,C,D,E) poly这些多氨基酸是自由的,即它们的形状不固定,可以形成不同的图案 如何使用SAT求解器计算选定区域内(灰色单元格)的这5个自由多聚氨基酸的所有可能组合? 借用@spinkus有洞察力的答案和OR工具文档,我可以编写以下示例代码(在Jupyter Notebook中运行): from ortools.sat.python import cp_model import numpy as np import more_itertools as mit import matplotlib.pyplot as plt %matplotlib inline W, H = 4, 4 #Dimensions of grid sizes = (4, 2, 5, 2, 1) #Size of each polyomino labels = np.arange(len(sizes)) …

2
根据字段获取大型对象列表的最有效组合
我希望在给定预算和组合上限的情况下,最大限度地增加星级。 问题示例: 用500欧元的预算,只参观允许的最大餐厅或以下,就餐并收集尽可能多的星星。 我正在寻找一种有效的算法,该算法可以处理最多100个最大餐厅的100万个餐厅实例。 注意,这是我昨天问的一个问题的交叉发布: Java:基于字段获取大型对象列表的最有效组合 下面的解决方案将为r8餐厅分配每颗星15美元的价格,这意味着在生成列表时,它将首先放入列表中,而剩下的70美元只能再获得2颗星,总共4颗星。但是,如果明智的做法是跳过r8餐厅(即使这是每星级最高的美元),那么r1餐厅实际上是预算的更好选择,因为这是100美元的费用和5星的价格。 任何人都可以帮助解决问题并超越当前的解决方案吗? import itertools class Restaurant(): def __init__(self, cost, stars): self.cost = cost self.stars = stars self.ratio = cost / stars def display(self): print("Cost: $" + str(self.cost)) print("Stars: " + str(self.stars)) print() r1 = Restaurant(100, 5) r2 = Restaurant(140, 3) r3 = Restaurant(90, 4) …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.