Tag: 组合

快速排列 – >数字 – >置换映射algorithm

我有n个元素。 举例来说,我们说7个元素1234567.我知道有7个元素! 这7个元素可能有5040个排列组合。 我想要一个包含两个函数的快速algorithm: f(数字)将0到5039之间的数字映射到一个唯一的排列, f'(排列)将排列映射回其生成的数字。 我并不关心数字与排列之间的对应关系,只要每个排列都有自己独特的数字。 所以,例如,我可能有function在哪里 f(0) = '1234567' f'('1234567') = 0 想到的最快的algorithm是枚举所有排列并在两个方向上创build一个查找表,所以一旦创build表,f(0)将是O(1),f('1234567')将是在一个string上查找。 但是,这是一个饥饿的记忆,特别是当n变大的时候。 任何人都可以提出另一种algorithm,快速工作,没有内存的缺点?

成分路线背后的“大创意”是什么?

我是Clojure的新手,已经使用Compojure编写基本的Web应用程序。 不过,我用Compojure的defroutes语法打了一堵墙,而且我认为我需要了解它背后的“如何”和“为什么”。 它看起来像一个环形风格的应用程序开始于一个HTTP请求映射,然后通过一系列中间件函数传递请求,直到它被转换成一个响应映射,然后发送回浏览器。 这种风格对于开发人员来说似乎太“低级”了,因此需要像Compojure这样的工具。 我可以看到在其他软件生态系统中也需要更多的抽象,尤其是Python的WSGI。 问题是我不了解Compojure的方法。 让我们来看看下面的defroutes Sexpression式: (defroutes main-routes (GET "/" [] (workbench)) (POST "/save" {form-params :form-params} (str form-params)) (GET "/test" [& more] (str "<pre>" more "</pre>")) (GET ["/:filename" :filename #".*"] [filename] (response/file-response filename {:root "./static"})) (ANY "*" [] "<h1>Page not found.</h1>")) 我知道理解这一切的关键在于一些macros观的巫术,但我不完全理解macros(还)。 我已经盯了很久了,但不明白! 这里发生了什么? 了解“大创意”可能会帮助我回答这些具体问题: 如何从路由function(例如workbenchfunction)中访问Ring环境? 例如,假设我想要访问HTTP_ACCEPT头或请求/中间件的其他部分? 与解构有什么关系( {form-params :form-params} )? 什么关键字可供我解构时使用? 我真的很喜欢Clojure,但我很难过!

如何计算硬币问题的可能组合

我正在试图实现一个硬币的问题,问题说明是这样的 创build一个函数来计算可用于给定数量的所有可能的硬币组合。 All possible combinations for given amount=15, coin types=1 6 7 1) 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2) 1,1,1,1,1,1,1,1,1,6, 3) 1,1,1,1,1,1,1,1,7, 4) 1,1,1,6,6, 5) 1,1,6,7, 6) 1,7,7, 函数原型: int findCombinationsCount(int amount, int coins[]) 假设硬币数组是sorting的。 对于上面的例子,这个函数应该返回6。 任何人指导我如何实现这?

显示可能的string组合

我想要一个string,并显示它的可能组合(在PHP中),但是按照每个字的顺序。 例如:“你好吗”会返回(一个数组) How are you How are are you how you are 我现在的代码显示所有的组合,但我希望它保持秩序,而不是翻转单词。 任何人有任何想法或片段,他们都喜欢分享? 谢谢

通过索引获取列表框项目的值

这一定很容易,但我被卡住了。 我有一个X项目列表框。 每个项目都有一个文本说明(出现在列表框中)及其值(数值)。 我希望能够获得项目的价值属性,使用项目的索引号。

Java – 生成给定列表的幂集

我试图生成一个给定长度为N的列表的所有2 ^ N-1个可能组合的集合。该集合将组合元素的数目映射到包含特定长度的组合的有序列表。 例如,对于列表: [A, B, C, D] 我想要生成地图: { 1 -> [{A}, {B}, {C}, {D}] 2 -> [{A, B}, {A, C}, {A, D}, {B, C}, {B, D}, {C, D}] 3 -> [{A, B, C}, {A, B, D}, {A, C, D}, {B, C, D}] 4 -> [{A, B, C, D}] } 生成的数据库应保持原始顺序(其中[]表示有序的系列( List ), {}表示无序的组( […]

N组合

有一种直接的方法来获得nCr所有组合的有序集合的第N个组合吗? 例如:我有四个元素:[6,4,2,1]。 所有可能的组合,一次取三个:[[6,4,2],[6,4,1],[6,2,1],[4,2,1]]。 有没有一个algorithm,可以给我例如第三个答案,[6,2,1],在有序的结果集,没有列举所有以前的答案?

从数字列表中获取所有可能的组合

我正在寻找一种有效的方法来实现这一点: 你有一个数字1 ….. n列表(通常:1..5或1..7左右 – 相当小,但可以因情况而异) 你需要这些数字的所有长度的组合,例如只有一个数字({1},{2},… {n})的所有组合,那么两个不同数字({1,2}, {1,3},{1,4} ….. {n-1,n}),那么这些数字中的三个({1,2,3},{1,2,4})等等 基本上,在组内,顺序是不相关的,所以{1,2,3}等同于{1,3,2} – 这只是从列表中获得所有x个数字组的问题 似乎应该有一个简单的algorithm – 但我迄今为止徒劳无功。 大多数组合和排列algorithm似乎a)考虑到顺序(例如123不等于132),他们总是似乎操作一个单一的string或数字…. 任何人都有一个伟大的,不错的快速algorithm,他们的袖子? 谢谢!

生成vector元素的所有可能组合的列表

我试图在长度为14的vector中生成0和1的所有可能的组合。有没有一种简单的方法来获得输出作为向量列表,甚至更好,一个dataframe? 为了更好地展示我正在寻找的内容,我们假设我只想要一个长度为3的向量。我希望能够生成以下内容: (1,1,1), (0,0,0), (1,1,0), (1,0,0), (1,0,1), (0,1,0), (0,1,1), (0,0,0) 任何帮助将不胜感激! 谢谢,

统计:Python中的组合

我需要在Python中计算组合函数(nCr),但是在math , numpy或stat库中找不到函数。 类似于这个types的函数: comb = calculate_combinations(n, r) 我需要可能的组合的数量,而不是实际的组合,所以itertools.combinations不关心我。 最后,我想避免使用阶乘,因为我将计算组合的数字可能变得太大,因子将是可怕的。 这似乎是一个非常容易回答的问题,但是我正在淹没关于生成所有实际组合的问题,这不是我想要的。 🙂 非常感谢