小编Wil*_*sem的帖子

poll()在超时为0时做什么?

我正在查看poll() 手册页,它告诉我poll()何时传递正值和负值为timeout参数的行为.它不会告诉我如果超时会发生什么0.有任何想法吗?

查看epoll_wait() 手册页,它告诉我,如果超时值为0,即使没有可用事件,它也会立即返回.假设行为方式相同是否安全poll()

c sockets

10
推荐指数
1
解决办法
1万
查看次数

Mono PrivateFontCollection.AddFontFile错误的解决方法

当我在Mono.net中调用PrivateFontCollection.AddFontFile方法时,它总是返回一个标准的font-family.这个bug已经在几个网站上报道,但据我所知,没有办法解决它.错误本身尚未在Mono-libraries中修复.它有什么解决方法吗?

编辑:作为对henchman的回答的反应,我将发布代码:

PrivateFontCollection pfc = new PrivateFontCollection();
pfc.AddFontFile("myFontFamily.ttf");
myFontFamily = pfc.Families[0x00];
Font myFont = new Font(myFontFamily,14.0f);
Run Code Online (Sandbox Code Playgroud)

我知道这个代码在Microsoft.Net框架上可以正常工作,但是当在Mono上执行时,它只是给出一个标准的字体系列(我认为它是Arial),其名称为myFontFamily.ttf

c# mono privatefontcollection

10
推荐指数
1
解决办法
1412
查看次数

这怎么让表达起作用?

鉴于这一系列的Haskell代码,我的任务是将其评估为最简单的形式.

let g h k = (\x -> k (h x)) in g (+1) (\x -> x+x) 20
Run Code Online (Sandbox Code Playgroud)

我已经得到了答案(当然在GHCI中我自己进行了评估): 42

但是,我希望更好地了解评估在这里如何运作.一般来说,我想我知道如何(简单)让表达式工作:

a = let y = 5 in y * 5  -- a == 25
Run Code Online (Sandbox Code Playgroud)

该计算结果为25,因为我们绑定y到的价值5a被分配到的值y*5(后部分in).绑定y = 5仅在范围内有效let.

到目前为止,唯一的解释(至少评估为42)如下:

let g h k = (\x -> k (h x)) in g (+1) (\x -> x+x) 20
Run Code Online (Sandbox Code Playgroud)
  • g(\x -> k (h x)) …

lambda haskell anonymous-function let expression-evaluation

10
推荐指数
2
解决办法
318
查看次数

C#中的浮点数是否有良好的radixsort实现?

我有一个带有float类型字段的数据结构.这些结构的集合需要按浮点值进行排序.是否存在基数排序实现.

如果没有,是否有快速访问指数,符号和尾数的方法.因为如果你最后一次在尾数,指数和指数上对浮点数进行排序.你在O(n)中排序浮点数.

c# sorting algorithm floating-point radix-sort

9
推荐指数
1
解决办法
2572
查看次数

java字符串排列和组合查找

我正在写一个Android word应用程序.我的代码包括将查找的字符串和一个7字母串的子串具有最小长度3的所有组合,然后所有可用的组合比较,每一个字在字典中找到的所有有效字的方法.我正在使用递归方法.这是代码.

// Gets all the permutations of a string.
void permuteString(String beginningString, String endingString) {
    if (endingString.length() <= 1){
        if((Arrays.binarySearch(mDictionary, beginningString.toLowerCase() +   endingString.toLowerCase())) >= 0){
            mWordSet.add(beginningString + endingString);
        }
    }
    else
        for (int i = 0; i < endingString.length(); i++) {
            String newString = endingString.substring(0, i) + endingString.substring(i + 1);
            permuteString(beginningString + endingString.charAt(i), newString);
      }
}
// Get the combinations of the sub-strings. Minimum 3 letter combinations
void subStrings(String s){
    String newString = "";
    if(s.length() > 3){
        for(int …
Run Code Online (Sandbox Code Playgroud)

java algorithm combinations permutation

9
推荐指数
1
解决办法
1万
查看次数

如果存在具有不同扩展名的文件,则Gitignore是文件

在涉及例如解析器的项目中,一些源代码是程序的产物.例如yacc,基于.yy文件生成实现解析器的源代码文件.

由于.yy文件中的小修改可能导致编译后相应源代码文件发生较大变化,并且因为生成的源代码(几乎)在生成后几乎不会被更改.这些源代码文件是.gitignore列表的完美候选者.

现在可以手动将这些文件写入列表:

lexer1.cpp
parser1.cpp
lexer2.cpp
parser2.cpp
Run Code Online (Sandbox Code Playgroud)

但是,当一个人构建一个新的解析器时,他/她将忘记将该文件添加到列表中.

有没有办法指定一个行为如下的模式:

给定文件foo.ext1存在,忽略foo.ext2.

从而提供ext1ext2.对于词法分析器/解析器,这意味着将此模式应用于.xx/ .cpp.yy/ .cpp.

.gitignore直接这可能是不可能的,但也许已经为此实现了一些钩子?

git wildcard gitignore githooks

9
推荐指数
2
解决办法
708
查看次数

linux sed命令 - 在csv行的每一端添加字符串

目前我的ff CSV数据存在问题.

COLUMN1,COLUMN2,COLUMN3,COLUMN4
apple1,apple2,apple3,apple4
banana1,banana2,banana3,
caimito1,"caimito21
caimito22","caimito31
caimito32",caimito4
Run Code Online (Sandbox Code Playgroud)

这看起来像这样:

???????????????????????????????????????????????
? COLUMN1  ?  COLUMN2  ?  COLUMN3  ? COLUMN4  ?
???????????????????????????????????????????????
? apple1   ? apple2    ? apple3    ? apple4   ?
? banana1  ? banana2   ? banana3   ?          ?
? caimito1 ? caimito21 ? caimito31 ? caimito4 ?
?          ? caimito22 ? caimito32 ?          ?
???????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

所以我的计划是添加COLUMN5,它的每一行都有一个值"FRUIT".

使用的命令:

sed "1 s/$/,COLUMN5/g" FILE.csv | sed "2,$ s/$/,FRUIT/g" > OUTPUT.csv
Run Code Online (Sandbox Code Playgroud)

输出:

???????????????????????????????????????????????????????????????????
? COLUMN1  ?  COLUMN2       ?  COLUMN3       ? COLUMN4  ? COLUMN5 ?
??????????????????????????????????????????????????????????????????? …
Run Code Online (Sandbox Code Playgroud)

unix linux csv sed

9
推荐指数
1
解决办法
620
查看次数

Python中的字典元素是否有干净的测试?

如果我有一个元素,我试图从字典中获取: my_dict[i]['level_1']['level_2']['my_var'].

有没有比这样做更清晰的方法来检查空值?

if 'level_1' in my_dict[i]:
    if 'level_2' in my_dict[i]['level_1']:
        if 'my_var' in my_dict[i]['level_1']['level_2']:
            my_var = my_dict[i]['level_1']['level_2']['my_var']
Run Code Online (Sandbox Code Playgroud)

python lookup dictionary

9
推荐指数
1
解决办法
294
查看次数

十六进制的正则表达式

我已经定义了长度为4的十六进制值的正则表达式,如下所示:

([0-9A-F]{4})
Run Code Online (Sandbox Code Playgroud)

它工作得很好,语法也很好

0000
Run Code Online (Sandbox Code Playgroud)

也是一个有效的十六进制数,但我想从有效匹配中丢弃它,因此期待提示如何扩展当前正则表达式,以便

0000 is flagged as invalid and filtered out.
Run Code Online (Sandbox Code Playgroud)

谢谢

python regex

9
推荐指数
1
解决办法
1058
查看次数

回溯和暴力搜索之间的差异

我目前正在学习算法课程,而且我很难理解蛮力搜索和回溯的确切定义.据我了解,以下情况属实:

  • 强力搜索(BFS)是一种算法,它计算问题的每个可能的解决方案,然后选择满足要求的解决方案.
  • 显式约束给出了每个选择的可能值(例如,选择1-3限于{1, 2},选择4限于{3, 4, 5}等),这决定了搜索的"执行树"的形状.
  • 隐式约束将彼此的不同选择相关联(例如,选择2必须大于选择1等),其在BFS中用于移除潜在的解决方案.
  • 回溯是BFS的扩展,其中在每次选择之后评估隐式约束(而不是生成所有解决方案之后),这意味着潜在的解决方案可以在它们"完成"之前被丢弃.

基本上,我只是想知道这是否准确,如果不是,我真的很感激一些澄清.提前致谢.

algorithm search artificial-intelligence backtracking

9
推荐指数
1
解决办法
4697
查看次数