小编phi*_*mue的帖子

算法:从集合中删除尽可能少的元素,以便不强制执行子集

我遇到了一个我不知道如何解决的问题:

我有一套套装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).

是否有算法确定要删除的(最少数量)元素?

algorithm subset

6
推荐指数
1
解决办法
325
查看次数

Emacs:使用和初始化CEDET

我正在使用带有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++模式,一切正常.

有人知道我做错了什么吗?

emacs hook elisp cedet

6
推荐指数
1
解决办法
1616
查看次数

C++中是否有"attribute"关键字?

也许我错过了一些东西,但我想知道以下内容:

关于编码指南Mozilla开发人员页面中,我阅读了以下内容:

无论何时在没有任何上下文的情况下检索或设置单个值,都应使用属性.当您可以使用一个属性时,请勿使用两种方法.使用属性在逻辑上连接值的获取和设置,并使脚本代码看起来更清晰.

这个例子有太多方法:

 interface nsIFoo : nsISupports {
     long getLength();
     void setLength(in long length);
     long getColor(); 
 };
Run Code Online (Sandbox Code Playgroud)

下面的代码将生成完全相同的C++签名,但更适合脚本.

interface nsIFoo : nsISupports {
    attribute long length;
    readonly attribute long color; 
};
Run Code Online (Sandbox Code Playgroud)

我在想的是attribute long length.我假设这个语法通过aucomatically创建getter/setter方法.

  • 但是,标准C++是否以任何方式?
  • 这是一些mozilla特定的东西吗?
  • 这定义在哪里?

c++ attributes

6
推荐指数
2
解决办法
580
查看次数

C:逐字节覆盖另一个函数

我们假设我有一个功能:

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)

即我想解释f1f2作为原始字节数组和" f1逐字节覆盖",因此,替换它f2.

我知道通常可调用的代码是写保护的,但是,在我的特定情况下,您可以简单地覆盖所在的内存位置f1.也就是说,我可以将字节复制到f1,但之后,如果我调用f1,整个事情就会崩溃.

那么,我的方法原则上可行吗?或者是否有一些我需要考虑的机器/实现/任何依赖性问题?

c byte function

6
推荐指数
1
解决办法
325
查看次数

计算一行数字(详见上下文)

有两行数字,第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.

algorithm

6
推荐指数
1
解决办法
224
查看次数

Emacs:输入gedit中的命令

在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键),所以我知道它是可能的.

但是,是否已经存在并且可以在没有太多努力的情况下定义这样的"片段"的包?还是有任何严重的理由不使用这些东西?

lisp emacs code-snippets

5
推荐指数
1
解决办法
561
查看次数

Emacs/Auctex:自动启用/禁用LaTeX-Math模式

我正在将Emacs与AucTeX结合使用(运行Ubuntu 10.04,如果这很重要的话).

有没有人知道是否有办法自动启用LaTeX-math-mode(AucTeX的次要模式),如果该点在任何数学环境中(即a $...$,a $$...$$,begin{equation}...\end{equation}等等)?

我想有一个相对简单的答案,因为语法高亮使用相同的标准来着色数学的东西,但我找不到任何东西.

emacs auctex

5
推荐指数
1
解决办法
2174
查看次数

谁拥有将RegExp转换为“自然语言”的算法?

我想将正则表达式“翻译”为易于理解的解释。

例如:/^[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 _.

regex

5
推荐指数
1
解决办法
981
查看次数

伪代码递归函数

我正在为期中考试而学习,其中一个练习题要求:

考虑递归伪算法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”,将每个输入相加即可得出总数。

我的答案如何?或者这完全不正确。谢谢!

algorithm recursion pseudocode

5
推荐指数
1
解决办法
8678
查看次数

OCaml中的"`"是什么?

type t = {
      dir : [ `Buy | `Sell ];
      quantity : int;
      price : float;
      mutable cancelled : bool;
    }
Run Code Online (Sandbox Code Playgroud)

购买销售之前有一个`,这是什么意思?

还有什么类型[ | ]

ocaml

5
推荐指数
1
解决办法
105
查看次数

标签 统计

algorithm ×3

emacs ×3

attributes ×1

auctex ×1

byte ×1

c ×1

c++ ×1

cedet ×1

code-snippets ×1

elisp ×1

function ×1

hook ×1

lisp ×1

ocaml ×1

pseudocode ×1

recursion ×1

regex ×1

subset ×1