标签: code-complexity

“Hello World”上的代码保龄球?

与流行的代码高尔夫挑战相反,这里展示了许多常客的天才,我希望看到这种天才以相反的方式得到体现。

挑战是成功执行“Hello World”,特别关注过于复杂的问题。不是冗长,不是晦涩,只是纯粹的草率/过于复杂。

《Daily WTF》视为灵感。

function mb2($o){return (int)($o*2);}
$alphabet = str_split("abcdefghijklmnopqrstuvwxyz");
$alphabet[] = " ";
$output = "";
for ($i = 0; $i <= 10; $i++)
  switch (mb2($i*.5)) {
    case  0: $output = $output . $alphabet[07]; break;
    case  1: $output = $output . $alphabet[04]; break;
    case  2: $output = $output . $alphabet[11]; break;
    case  3: $output = $output . $alphabet[11]; break;
    case  4: $output = $output . $alphabet[14]; break;
    case  5: $output = $output . array_pop($alphabet); break;
    case …
Run Code Online (Sandbox Code Playgroud)

language-agnostic architecture code-complexity

47
推荐指数
10
解决办法
6065
查看次数

代码有多复杂?

我正在研究可以帮助我编写更小但更复杂的代码的算法.我可以设计一个20行的算法,而不是编写150行if-else语句.问题是很多这些算法都很复杂,需要大量的数学才能理解它们.我也是这里唯一了解他们的人.

为了代码的可维护性,像其他人一样编写代码会更好,还是使用算法更好?

algorithm maintainability cyclomatic-complexity code-complexity

38
推荐指数
11
解决办法
8698
查看次数

你写的最难的课程是什么?

只是好奇,我想知道你所经历过的所有程序员或新手(像我一样)都做了什么.那么你写的最复杂的程序是什么?

code-complexity

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

可维护性指数

我发现维护性指数(MI)的推荐值如下:

  • 85以上:良好的可维护性
  • 65-85:适度可维护性
  • 65及以下:使用非常糟糕的代码(大的,未注释的,非结构化的)难以维护MI值甚至可能是负的

这些价值取决于技术吗?例如,对于大型机来说,70的值是好的,但对于Java来说难以维护吗?

可以使用独立于技术的相同尺度吗?

maintainability code-complexity visual-studio

11
推荐指数
3
解决办法
5528
查看次数

是否有适用于ES6的代码复杂性计量工具?

我的项目是ES6(webpack + babel).柏拉图是伟大的,但不与ES6工作还没有.我看了一下escomplex和一系列相关软件包,但看起来作者不再维护它了,似乎它不支持ES6.

我正在使用ESLint复杂性规则至少警告我是否存在问题(它设置为在6处发出警告),但它与漂亮的报告不同.

有什么建议?

code-complexity ecmascript-6 plato webpack babeljs

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

两个下三角矩阵乘法的复杂性

我知道两个完整矩阵乘法的下界是Ω(n ^ 2).矩阵乘法

我一直试图用问题转换方法证明两个下三角矩阵乘法的下界.

我最初的想法是(1)变换下三角矩阵,(2)估计这种变换的时间复杂度.

T(lower_triangular_matrix_multiplication(n))+O(lower_triangular_matrix_transformation(n))>?(full_matrix_multiplication(n)) = ?(n^2)
Run Code Online (Sandbox Code Playgroud)

现在,我只需要证明O(lower_triangular_matrix_transformation(n)),我需要使三角矩阵成为一个完整的矩阵,所以为了简单起见,我只是让这个三角矩阵乘以它自身的变化,比如转置.

原因是下三角矩阵的平方仍然是下三角矩阵,下三角矩阵乘以其转置变化是"全矩阵".

所以我只需要分析三角矩阵的复杂性乘以其转置变化.

任何人都可以表明我的想法是否"合理"?

code-complexity lower-bound matrix-multiplication

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

降低GWT的代码复杂性

我开始在谷歌上通过示例学习GWT ,我的第一个结论是:代码太多了

像这样:

stocks.add(symbol);
        stocksFlexTable.setText(row, 0, symbol);
        stocksFlexTable.setWidget(row, 2, new Label());
        stocksFlexTable.getCellFormatter().addStyleName(row, 1,
                "watchListNumericColumn");
        stocksFlexTable.getCellFormatter().addStyleName(row, 2,
                "watchListNumericColumn");
        stocksFlexTable.getCellFormatter().addStyleName(row, 3,
                "watchListRemoveColumn");
Run Code Online (Sandbox Code Playgroud)

GWT是否有任何扩展来减少代码大小和简化创建GWT表单?

mvp gwt code-complexity gwt-mvp

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

在O(n)时间内查找字符串中最长有效括号序列的长度

我的朋友在接受采访时遇到了一个问题,他被告知有一个O(n)解决方案.但是,我们都不能想到它.这是一个问题:

有一个字符串,它包含just,()找到最长有效括号子串的长度,它应该很好地形成.

例如")()())",最长的有效括号是()(),长度是4.

我用动态编程想出来了,但它不是O(n).有任何想法吗?

public int getLongestLen(String s) {
    if (s == null || s.length() == 0)
        return 0;

    int len = s.length(), maxLen = 0;
    boolean[][] isValid = new boolean[len][len];
    for (int l = 2; l < len; l *= 2)
        for (int start = 0; start <= len - l; start++) {
            if ((s.charAt(start) == '(' && s.charAt(start + l - 1) == ')') && 
                (l == 2 || isValid[start+1][start+l-2])) …
Run Code Online (Sandbox Code Playgroud)

language-agnostic algorithm dynamic-programming code-complexity

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

如何在Landscape.io中禁用McCabe测试MC0001

Landscape.io提供了很好的Python代码测试,基于PEP8,PyLint,McCabe等.

我的一些解析器方法包含大的开关块,所以我想禁用所选方法的McCabe测试MC0001.我怎样才能做到这一点?

我为PyLint找到了这个语法:

for file in get_files():  # pylint:disable=redefined-builtin
Run Code Online (Sandbox Code Playgroud)

资料来源:https://docs.landscape.io/suppressing.html

...但没有显示语法mccabe.根据我的Google研究,可以为项目中的所有文件禁用McCabe规则,但这不是我的目标.这是一个全局禁用MC0001的yaml文件:

mccabe:
  disable:
  - MC0001
Run Code Online (Sandbox Code Playgroud)

来源:https:///0x7df.wordpress.com/tag/mccabe/

python code-complexity landscape.io

7
推荐指数
0
解决办法
707
查看次数

声纳与 lizard 集成以跟踪 android studio 中失败的代码复杂性

我正在尝试集成lizard来跟踪 sonarqube 上 Android 应用程序的代码复杂性。用于从 lizard 获取复杂性报告的命令是:

\n
lizard src/main -x"./test/*" -x"./androidTest" --xml >lizard/lizardReport.xml \n
Run Code Online (Sandbox Code Playgroud)\n

build.gradle应用程序的文件中,sonarqube 属性配置如下:

\n

\r\n
\r\n
lizard src/main -x"./test/*" -x"./androidTest" --xml >lizard/lizardReport.xml \n
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

在此设置结束时,我运行命令gradle sonarqube来构建项目并运行声纳设置,但在 sonarqube 仪表板上查看报告时,没有发现代码复杂性的趋势。

\n

我在这里缺少什么吗?

\n

complexity-theory android code-complexity android-studio sonarqube

7
推荐指数
1
解决办法
303
查看次数