我遇到了一个我不知道如何解决的问题:
我有一套套装A = {A_1, A_2, ..., A_n},我有一套B.
目标现在是从除去尽可能少的元件尽可能B(创建B'),使得,在去除元件的所有后1 <= i <= n,A_i是不是的一个子集B'.
例如,如果我们有A_1 = {1,2}, A_2 = {1,3,4}, A_3={2,5},并且B={1,2,3,4,5},我们可以例如从中删除1和2 B(将产生B'={3,4,5},这不是其中之一的超集A_i).
是否有算法确定要删除的(最少数量)元素?
我正在使用带有CEDET的Emacs并自动完成代码完成.最初我设置了CEDET,因此它每次都会在Emacs上启动.
然而,这花了相当长的时间,所以我认为如果需要加载它会很聪明,即 - 在我的情况下 - 进入C++时 - 模式.
所以我将原始函数移动到lambda进入C++模式时调用的函数:
; cscope for c(++) programming (finding symbols, etc.)
(require 'xcscope)
; C++ stuff
(add-hook 'c++-mode-hook
(lambda ()
(load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el")
(global-ede-mode 1) ; enable project management system
(semantic-load-enable-code-helpers) ; enable prototype help and smart completion
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/elisp/ac-dict")
(add-to-list 'ac-sources 'ac-source-semantic)
(local-set-key (kbd "C-:") 'semantic-ia-complete-symbol-menu) ; set shortcut for auto completion.
(local-set-key (kbd "C-.") 'ac-complete-semantic)
(ac-config-default)
)
)
Run Code Online (Sandbox Code Playgroud)
没有错误,但我有以下问题:当Emacs第一次进入C++模式时,代码完成无法正常工作.但如果Emacs第二次进入C++模式,一切正常.
有人知道我做错了什么吗?
也许我错过了一些东西,但我想知道以下内容:
在关于编码指南的Mozilla开发人员页面中,我阅读了以下内容:
无论何时在没有任何上下文的情况下检索或设置单个值,都应使用属性.当您可以使用一个属性时,请勿使用两种方法.使用属性在逻辑上连接值的获取和设置,并使脚本代码看起来更清晰.
这个例子有太多方法:
Run Code Online (Sandbox Code Playgroud)interface nsIFoo : nsISupports { long getLength(); void setLength(in long length); long getColor(); };下面的代码将生成完全相同的C++签名,但更适合脚本.
Run Code Online (Sandbox Code Playgroud)interface nsIFoo : nsISupports { attribute long length; readonly attribute long color; };
我在想的是attribute long length.我假设这个语法通过aucomatically创建getter/setter方法.
我们假设我有一个功能:
int f1(int x){
// some more or less complicated operations on x
return x;
}
Run Code Online (Sandbox Code Playgroud)
而且我有另一个功能
int f2(int x){
// we simply return x
return x;
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做类似以下的事情:
char* _f1 = (char*)f1;
char* _f2 = (char*)f2;
int i;
for (i=0; i<FUN_LENGTH; ++i){
f1[i] = f2[i];
}
Run Code Online (Sandbox Code Playgroud)
即我想解释f1和f2作为原始字节数组和" f1逐字节覆盖",因此,替换它f2.
我知道通常可调用的代码是写保护的,但是,在我的特定情况下,您可以简单地覆盖所在的内存位置f1.也就是说,我可以将字节复制到f1,但之后,如果我调用f1,整个事情就会崩溃.
那么,我的方法原则上可行吗?或者是否有一些我需要考虑的机器/实现/任何依赖性问题?
有两行数字,第1行是从0开始的连续数字,现在要求你填写第2行,以确保第2行中的数字是第2行中出现的第1行中的数字对应的次数.
例如:
0 1 2 3 4 5 6 7 8 9
_ _ _ _ _ _ _ _ _ _
更具体地说,我们row1用于第1行和row2第2行,我们填写row2以确保它满意:row2[i] = count(row2, row1[i]).count(row2, row1[i])装置的频率计数row1[i]之间row2.
在gedit中,可以为更简单的输入定义所谓的"片段".
例如,有一个片段while.这意味着:如果您键入while ->(->代表Tab键).并且gedit会自动将其转换为以下内容(包括正确的缩进):
while (condition){
}
Run Code Online (Sandbox Code Playgroud)
在vim中(与latex-suite一起)我看到了以下内容:如果你键入(,vim只插入一个(.如果您(再次键入,vim会自动将其转换为\left( \right).
我发现abbrev-mode但是这种模式没有正确放置光标(即在括号之间或在while循环内).
我设法创建自定义的emacs键绑定/宏(不必按Tab键),所以我知道它是可能的.
但是,是否已经存在并且可以在没有太多努力的情况下定义这样的"片段"的包?还是有任何严重的理由不使用这些东西?
我正在将Emacs与AucTeX结合使用(运行Ubuntu 10.04,如果这很重要的话).
有没有人知道是否有办法自动启用LaTeX-math-mode(AucTeX的次要模式),如果该点在任何数学环境中(即a $...$,a $$...$$,begin{equation}...\end{equation}等等)?
我想有一个相对简单的答案,因为语法高亮使用相同的标准来着色数学的东西,但我找不到任何东西.
我想将正则表达式“翻译”为易于理解的解释。
例如:/^[a-z0-9_]{6,18}/将翻译为:
A string start with 6 to 18 char(s) in a range of a to z, 0 to 9 and _.
我正在为期中考试而学习,其中一个练习题要求:
考虑递归伪算法Milk(a),该算法将a> = 1作为输入整数。
MILK(a)
if a = 1;
then eat cookie;
else drink glass of milk;
select a random integer b with 1 <= b <= a-1
MILK(b);
MILK(a-b);
endif
Run Code Online (Sandbox Code Playgroud)
1)解释为什么对于任何整数a> = 1算法,MILK(a)终止
我认为因为n-1,对于递归函数MILK(b)的输入,m的可能性变得越来越小,最终达到满足条件a = 1的1;因此吃了一个cookie,因此终止了算法。
2)令M(a)为您在运行MILK(a)时喝的牛奶量。确定M(a)的确切值
对于这个,我假设它将是M(a)= a + a,因为每次您运行它时,输入都是“ a”,将每个输入相加即可得出总数。
我的答案如何?或者这完全不正确。谢谢!
type t = {
dir : [ `Buy | `Sell ];
quantity : int;
price : float;
mutable cancelled : bool;
}
Run Code Online (Sandbox Code Playgroud)
在购买和销售之前有一个`,这是什么意思?
还有什么类型[ | ]?