标签: computer-science

创建一个输入正则表达式的程序,并输出满足该正则表达式的字符串

我认为标题准确地总结了我的问题,但只是详细说明一下.

我不想使用正则表达式来验证现有字符串的属性,而是使用正则表达式来生成具有某些属性的字符串.

注意:该函数不需要生成满足正则表达式的每个字符串(因为对于许多正则表达式而言,这将是无限数量的字符串).只需抽取许多有效字符串即可.

这样的事情有多可行?如果解决方案太复杂/太大,我对一般性讨论/大纲感到满意.此外,我对任何现有的程序或库(.NET)感兴趣.

regex computer-science

13
推荐指数
1
解决办法
1590
查看次数

是否有任何使用"真实"语言抽吸引理的例子?

泵引理是一个属性正规语言上下文无关语言.但我见过的所有例子都是这样的:

L = {0 n 1 n 2 n:n≥0}

(顺便说一句,这不是一种无上下文的语言).

但我感兴趣的是:它是否有任何与远程实用或有用语言一起使用的例子?我找不到任何东西.这是其中一个还是纯粹的理论价值,绝对没有实际应用?

computer-science

13
推荐指数
2
解决办法
1932
查看次数

是否有理由用纯二进制编写代码?

有没有ASM只是不够低水平的情况?毕竟,装配工仍然需要组装.有没有人用二进制编写程序?我只是想知道为什么这样做可能是实用的,或者即使它可能在现代计算机上有理论上的原因.

language-agnostic binary computer-science

13
推荐指数
2
解决办法
2595
查看次数

为什么IEEE浮点数使用偏置形式计算指数?

比方说,对于c中的float类型,根据IEEE浮点规范,有8位用于分数字段,并且计算为首先取这些8位并将其转换为无符号数,然后减去BIASE,即2 ^ 7 - 1 = 127,结果是指数范围从-127到128(含).但是为什么我们不能将这些8位模式视为有符号数,因为结果范围是[-128,127],几乎与前一个相同.

binary computer-science

13
推荐指数
1
解决办法
5357
查看次数

一串英文文本的熵如何表示低质量?

杰夫阿特伍德最近发布了一个链接到CodeReview帖子,他想知道社区是否可以改善他的" 计算字符串熵 "代码片段.他解释说,"我们正在计算Stack Overflow中几个字符串的熵,作为低质量的标志."

他的方法的要点似乎是,如果计算字符串中唯一字符的数量,则表示熵(代码取自PieterG的答案):

int uniqueCharacterCount = string.Distinct().Count();
Run Code Online (Sandbox Code Playgroud)

我不明白唯一字符数如何表示字符串的熵,以及字符串的熵如何表示低质量.我想知道在这方面有更多知识的人是否可以解释阿特伍德先生想要完成的事情.

谢谢!

computer-science entropy information-theory

13
推荐指数
2
解决办法
7372
查看次数

如何在Visual Studio 2010中折叠.xaml文件中的.cs文件?

如何将我的ViewModel文件(.cs文件)折叠在其对应的View文件(.xaml文件)文件中,如图像中所示?

在此输入图像描述

xaml computer-science folding visual-studio

13
推荐指数
1
解决办法
4916
查看次数

在现实代码中混淆时间和空间位置

我正在阅读这个问题,我想更多地询问他展示的代码,即

for(i = 0; i < 20; i++)
    for(j = 0; j < 10; j++)
        a[i] = a[i]*j;
Run Code Online (Sandbox Code Playgroud)

问题是,

  1. 我理解时间局部性,我认为对i和j的引用应该是时间局部性.我对吗?
  2. 我也理解空间局部性,因为我链接答案的问题是对[i]的引用应该是空间局部性.我对吗?
  3. 那个人说,

    "内部循环在访问[i]十次时会调用相同的内存地址,这是我猜的时间局部性的一个例子.但是在上面的循环中是否还有空间局部性?"

    我不同意他的猜测.由[a]生成的引用应该是空间局部性(它们将引用块中的下一个元素).我对吗?

computer-science spatial computer-architecture temporal

13
推荐指数
2
解决办法
2万
查看次数

是否有工具可以自动计算函数的 Big-O 复杂度

在研究算法和数据结构时,我手动评估了脚本的 BigO 复杂性。有没有办法,比如任何 Python IDE 或包中的一个按钮,来计算任何给定函数或程序的 BigO?

更新:

假设我有

def print_first_element(a):
    print a[0]
Run Code Online (Sandbox Code Playgroud)

为什么我不能编写分析器,它会说我可以通过索引及其 O(1) 访问数组(列表),或者

def print_all_element_of_list(a):
    for i in a:
        print i
Run Code Online (Sandbox Code Playgroud)

好的,你有完整的扫描,所以复杂度是 O(n)

等等

python algorithm big-o computer-science

13
推荐指数
2
解决办法
8万
查看次数

求解:T(n)= T(n/2)+ n/2 + 1

我很难用O表示法定义以下算法的运行时间.我的第一个猜测是O(n),但是迭代和我应用的数字之间的差距并不稳定.我怎么错误地定义了这个?

public int function (int n ) 
{
  if ( n == 0) {
    return 0;
  }

  int i = 1;
  int j = n ;
  while ( i < j ) 
  {
    i = i + 1;
    j = j - 1;
  }
  return function ( i - 1) + 1;
}
Run Code Online (Sandbox Code Playgroud)

computer-science time-complexity asymptotic-complexity computer-science-theory

13
推荐指数
2
解决办法
1629
查看次数

Python中的QM编码实现 - 是16位字强制性的吗?

我正在尝试为教育目的实施QM编码.我的主要资源是"数据压缩手册"第5版第5.11章.这是我现在对编码器的粗略实现:

def _encode_bit(self, bit):
    if bit == self._lps:
        self._code_lps()
    else:
        self._code_mps()

def _code_mps(self):
    self._a = self._a - self._q_e()
    if self._a < 0x8000:
        self._switch_intervals_if_needed()
        self._renormalize()
        self._p_table.next_mps()

def _code_lps(self):
    self._c = self._c + self._a - self._q_e()
    self._a = self._q_e()
    self._switch_intervals_if_needed()
    self._renormalize()
    self._p_table.next_lps()

def _renormalize(self):
    while self._a < 0x8000:
        #C < 0,5 (0xFFFF / 3)
        if self._c < 0x5555:
            b = 0
            d = 0
        else:
            b = 1
            d = 0x5555
        self._write_bit(b)
        logger.debug("Written '%i' to output", b)
        #C = 2 * (C …
Run Code Online (Sandbox Code Playgroud)

python compression computer-science bit-manipulation

13
推荐指数
1
解决办法
306
查看次数