我正在尝试编写一个简单的递归函数,它查看列表并返回一对整数.这很容易用c/c ++/java编写,但我是ocaml的新手,所以由于类型冲突很难找到解决方案
它应该像..
let rec test p l = ... ;;
val separate : (’a -> bool) -> ’a list -> int * int = <fun>
test (fun x -> x mod 2 = 0) [-3; 5; 2; -6];;
- : int * int = (2, 2)
Run Code Online (Sandbox Code Playgroud)
所以问题是我如何递归返回元组的值..
我想创建一个由二进制文件组成的所谓匹配向量.除非元素属于同一个变量,否则所有数字都应为零.
这是一个例子:
dataset=("a","b","c","d","x","y","z")
var1=c("a","b","y","z")
var2=c("c","d","x")
Run Code Online (Sandbox Code Playgroud)
因此,我有一个包含第一行中所有变量的数据集.现在我创建了两个组:var1和var2.
元素"a"的匹配向量应该看起来像:
matching_a=c(1,1,0,0,0,1,1)
Run Code Online (Sandbox Code Playgroud)
这些数字对应于我的数据集.如果我的数据集中的变量位于同一组中,则匹配向量中应该为1,否则为0.
但是,我的实际数据集太大而无法手动执行.有谁知道我想做什么?
我得到了 "Error: Warning 25: bad style, all clauses in this pattern-matching are guarded"
"守卫"是什么意思?
我的代码有模式匹配 -
match z with
| y when List.length z = 0 -> ...
| y when List.length z > 0 -> ...
Run Code Online (Sandbox Code Playgroud) 我知道有类似的问题已经得到了解答,但在阅读完之后我仍然没有找到我正在寻找的解决方案.
使用Python 3.2.2,我需要将"月,日,年"与月份作为字符串匹配,2月份的两位数不超过30,31或28,闰年则为2月29.(基本上是一个真实且有效的日期)
这是我到目前为止:
pattern = "(January|February|March|April|May|June|July|August|September|October|November|December)[,][ ](0[1-9]|[12][0-9]|3[01])[,][ ]((19|20)[0-9][0-9])"
expression = re.compile(pattern)
matches = expression.findall(sampleTextFile)
Run Code Online (Sandbox Code Playgroud)
我仍然不太熟悉正则表达式语法所以我可能在那里有不必要的字符([,] []用于逗号和空格感觉就像是错误的方式去做),但当我尝试匹配时" 1991年1月26日"在我的示例文本文件中,打印出"匹配"中的项目是('1月','26','1991','19').
为什么额外的'19'出现在最后?
另外,我可以在我的正则表达式中添加或更改哪些内容可以让我正确地验证日期?我现在的计划是接受几乎所有的日期,然后通过比较日期分组与月份和年份分组来检查日期是否应<31,30,29,28.
任何帮助将非常感激,包括对我如何设计我的正则表达式的建设性批评.
我还是OpenCV的初学者.
目前,我正在尝试使用OpenCV检测下面链接中图像中的特定形状.

我已经阅读了许多关于使用OpenCV检测形状的博客和文章,但我没有发现任何与我正在处理的内容有关的内容.
另外,我不能使用像cvHistogram这样的方法,因为我不想在两个几乎相同的图片中找到匹配,而是想要检测特定的形状,而不是像矩形,圆形等一些几何形状.
你知道办法吗?
先感谢您.
我有两组数据,包括预数据和后数据.受访者拥有唯一的ID,我想创建一个子集,其中仅包括对这两个调查做出响应的人员.示例数据集:
pre.data <- data.frame(ID = c(1:10), Y = sample(c("yes", "no"), 10, replace = TRUE),
Survey = 1)
post.data <- data.frame(ID = c(1:3,6:10), Y = sample(c("yes", "no"), 8, replace = TRUE),
Survey = 2)
all.data <- rbind(pre.data, post.data)
Run Code Online (Sandbox Code Playgroud)
我有以下功能:
match <- function(dat1, dat2, dat3){ #dat1 is whole dataset(both stitched together)
#dat2 is pre dataset #dat3 is post dataset
selectedRows <- (dat1$ID %in% dat2$ID &
dat1$ID %in% dat3$ID)
matchdata <- dat1[selectedRows,]
return(matchdata)
}
prepost.match.data <- match(all.data, pre.data, post.data)
Run Code Online (Sandbox Code Playgroud)
我认为必须有比这个功能更好的方法做同样的事情,但我想不出怎么样.我怎么做它似乎有点乱.我的意思是,它有效 - 它做了我想要的,但我不禁想到有更好的方法.
如果已经以类似的方式提出这个问题,我很抱歉,但我无法找到它 …
我想做一些类似于约会调度算法的事情(N个人有N个自由忙插槽,约束满足).使用Hopcroft-Karp算法.但我的额外要求是我的时间间隔是重叠的.例如.时段可以是上午10点至11点或上午10点15分至11点15分.所以如果我选择上午10点到11点的时段,我不想选择上午10点15分到11点15分.是否有可能在不严重影响性能的情况下实现这一目标?
algorithm graph matching constraint-programming graph-algorithm
我有一个关于Active Shape Models的问题.我正在使用T. Coots的论文(可以在这里找到.)
我已经完成了所有的初始步骤(Procrustes Analysis计算平均形状,PCA以减小尺寸),但我仍坚持使用.
这是我在现在的情况:我已经计算出平均形状点X和也计算了一组新的点Ÿ是X应该搬到,以更好地满足我的形象.
我使用以下算法,可以在之前链接的论文的第23页找到:

澄清:
是用Procrustes分析计算的平均形状,和
是包含用PCA计算的特征向量的矩阵.
一切顺利到第4步.我可以计算姿势参数并将变换反转到点Y上.
然而,在第5版中,发生了一些奇怪的事情.无论姿势参数是在针3中计算并应用于针4中,针5总是导致具有非常低值的几乎完全相同的矢量y'(例如,其中一个是1.17747114e-05).(所以我是否计算了1/10或1000的比例,y'几乎没有变化).
这导致算法总是收敛到相同的b值,因此在相同的输出形状x中,无论目标点Y的输入集是什么,我希望模型点X匹配.
这肯定不是算法的目标......任何人都可以解释这种奇怪的行为吗?不知何故,将我在步骤5中计算出的矢量y投影到"切平面"中并未考虑步骤4中所做的任何更改.
编辑:我有更多的推理,虽然没有解释或解决方案.如果在步骤5中,我手动将y'设置为仅由零组成,则在步骤6中,b等于与均值形状相乘的特征向量矩阵.这导致了我总是得到的相同的b(因为y'总是一个具有非常低值的向量).
但是这些特征向量是通过使用PCA的均值来计算出来的...那么预期的是,不应该发生变化,对吧?
我想比较两个列 - Description和Employer.我想查看列中Employer是否找到任何关键字Description.我已将Employer列拆分为单词并转换为列表.现在我想看看这些单词是否在相应的Description列中.
样本输入:
print(df.head(25))
Date Description Amount AutoNumber \
0 3/17/2015 WW120 TFR?FR xxx8690 140.00 49246
2 3/13/2015 JX154 TFR?FR xxx8690 150.00 49246
5 3/6/2015 CANSEL SURVEY E PAY 1182.08 49246
9 3/2/2015 UE200 TFR?FR xxx8690 180.00 49246
10 2/27/2015 JH401 TFR?FR xxx8690 400.00 49246
11 2/27/2015 CANSEL SURVEY E PAY 555.62 49246
12 2/25/2015 HU204 TFR?FR xxx8690 200.00 49246
13 2/23/2015 UQ263 TFR?FR xxx8690 102.00 49246
14 …Run Code Online (Sandbox Code Playgroud) 最近在编码比赛中,我遇到了这个问题.
我们有1000个瓷砖,每个瓷砖是3x3矩阵.矩阵中的每个单元格具有0到9的整数值,表示单元格的高程.问题是找到最大的瓷砖对,使它们完美贴合.可以旋转瓷砖以适合.通过装配它意味着用于瓷砖A和瓷砖B.
对于i = 0到8,A [i] + B [i] = const
我认为这个问题的方法是我可以保持对应于每个tile的哈希值.然后我会找到可能适合的瓦片组合,并在哈希表中查找.
防爆.对于下面的瓷砖
5 3 2 4 6 7 5 7 8
4 8 9 matches with 5 1 0 for const = 9 & with 6 2 1 for const=10
1 4 5 8 5 4 9 6 5
Run Code Online (Sandbox Code Playgroud)
对于这个瓦片,'const'的范围从9(将0添加到最大元素)到10(将9添加到最小元素).所以我会得到两种可能的瓦片组合,我会在表格中查找.
但是这种方法很贪婪,并没有给出理想的答案,而且我也无法想到一个适当的哈希函数,它会考虑所有可能的旋转.
那么解决这个问题的好方法是什么呢?
我确信有一种蛮力的方法来解决这个问题,但实际上我想知道在" 成对等于k "问题的线上是否存在一个可行的解决方案.