小编Mr.*_*ama的帖子

关于数学因子的Javascript代码

我正在读这本关于JavaScript的书,它有关于计算数学因子的练习.好吧,它以一种有趣的方式呈现,其中代码必须打印出一个单词(在这种情况下为"clunk"),它打印出来的时间取决于在调用函数时作为参数传递的数字.

在此示例中,数字为5,因此您可以总共进行120种组合(5x4x3x2x1).

问题是我很难理解代码中的逻辑.这里是:

function clunk(times) {
    var num = times;
    while (num > 0) {
        display("clunk");
        num = num - 1;
    }
}

function thingamajig(size) {
    var facky = 1;
    clunkCounter = 0;

    if (size === 0) {
        display("clank");

    } else if (size === 1) {
        display("thunk");

    } else {
        while (size > 1) {
            facky = facky * size;
            size = size - 1;
        }
        clunk(facky);
    }
}

function display(output) {
    console.log(output);
    clunkCounter = clunkCounter + 1;
}

var …
Run Code Online (Sandbox Code Playgroud)

javascript math

3
推荐指数
1
解决办法
159
查看次数

查找长度为 6 个字符的单词

我有一个文件.txt

fhadja
ksjfskdasd
adasda
sada
s
adasaaa
Run Code Online (Sandbox Code Playgroud)

我只需要从那里提取 6 个字符长度的单词。

结果我需要获得的示例:

fhadja
adasda
Run Code Online (Sandbox Code Playgroud)

谢谢你。

bash parsing text-parsing

3
推荐指数
1
解决办法
4132
查看次数

POSIX getline()-EOF上的行缓冲区状态?

这个问题是关于POSIX C功能的getline

文档指出,如果getline发生错误(包括EOF),则返回-1,但没有说明在这种情况下会发生什么lineptrn在这种情况下会发生什么。
我了解某些错误可能会以不同的方式处理-例如失败realloc-但是EOF呢?是否lineptr并且n仍然保留其原始值?具体实施吗?未定义的行为?

c posix getline

3
推荐指数
1
解决办法
959
查看次数

在 Perl 中跨线程共享文件数据的巧妙方法

我正在寻找一种可靠的(并且可能是聪明的)方法来在 Perl 中跨可变数量的线程共享文件数据。我希望有一个设置,其中主线程从文件中读取行,而其他工作线程则处理各个条目。

到目前为止,我已经尝试使用 Thread::Queue 但并没有什么好运气。当我到达文件末尾时,大多数线程都陷入阻塞状态,等待主线程完成读取后从中读取数据。因此,线程有些陷入困境,并且 join() 无法将它们卷回。

当对队列使用非阻塞访问时,线程往往会陷入“尝试获取数据,不,它未定义,尝试获取数据......”的紧密循环中,这最终会破坏 CPU 并且不执行任何工作。即使只有一个工作线程,每个线程通常也会至少获得该紧密循环的几次迭代。加入 sleep() 并没有太大帮助,因为它只接受整数值(sleep(0) 没有用,而且 sleep(1) 太慢)。

最理想的是,我希望能够共享输入文件的流并让每个线程锁定它,从中读取一行,然后解锁它,但是禁止/不支持共享全局变量。我会首先将整个文件加载到内存中,但鉴于它有 4000 万个条目(作为较低端估计),这并不是非常可行。

所以这就是你们进来的地方。我需要一种方便的方法来实现主线程和工作线程之间的读取器/处理器设置,该方法不会浪费过多的 CPU 等待数据并将线程保留在 join()-able 中一旦读者到达文件末尾,状态。

非常感谢您的任何帮助或想法!

perl multithreading

2
推荐指数
1
解决办法
1364
查看次数

使用string.erase()使字符串更长?

我在调试错误的字符串修剪函数时遇到了这个问题,现在我想知道究竟是什么导致了这种行为.

这是一个只包含相关位的代码片段:

#include <iostream>
#include <string>
using namespace std;

void debug(string s) { cout << "Len: " << s.length() << "; Value: '" << s << "'" << endl; }

int main()
{
    string str = "ABC";
    debug(str);

    str.erase( str.begin() + 4, str.end() );  // Magic!
    debug(str):

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

您会注意到擦除函数正在使用一个迭代器,该迭代器从字符串末尾开始.这不是我遇到问题时使用的确切输入(它有一个打破空字符串的+1),但它有类似的效果.这是输出:

Len: 3; Value: 'ABC'
Len: 4; Value: 'ABC '
Run Code Online (Sandbox Code Playgroud)

当我更改str.begin() + 4为更大的东西+ 10时,很明显我开始引入垃圾数据.

我的问题是:如何使用erase()函数最终使字符串比以前更长?另外,它只是运气,还是字符串结束后的下一个字符总是空白?

c++

2
推荐指数
1
解决办法
82
查看次数

Perl Here-文件挫折

我似乎很难让我的here-document工作正常.我有一大块文本,我需要填入变量并保持非插值.

这就是我所拥有的:

my $move_func <<'FUNC';
function safemove
{
    if [[ ! -f $1 ]] ; then echo "Source File Not Found: $1"; return 1; fi
    if [[ ! -r $1 ]] ; then echo "Cannot Read Source File: $1"; return 2; fi
    if [[ -f $2 ]]   ; then echo "Destination File Already Exists: $1 -> $2"; return 3; fi
    mv $1 $2
}
FUNC

# Do stuff with $move_func
Run Code Online (Sandbox Code Playgroud)

哪能给我

Scalar found where operator expected at ./heredoc.pl line 9, …
Run Code Online (Sandbox Code Playgroud)

perl heredoc

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

在c ++ Linux中调用"system"时隐藏sh:-c错误消息

我正在使用系统来执行带有它的参数的命令.我不想使用exec/fork.当我在命令中有不匹配的引号时,会出现以下错误:

sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

如何抑制这些shell的错误消息?我尝试>/dev/null 2>&1在无效命令的末尾添加,但它不会抑制shell错误消息.对于后台,我正在运行用户提供的命令,这些命令可能有效也可能无效.我不能事先知道它们是否有效,但我想要压制错误消息.

这是一个生成我试图压制的错误类型的代码示例:

int main()
{
   // This command is meant to be invalid as I'm trying to suppress the shell syntax error message
   system("date ' >/dev/null 2>&1");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

c++ linux bash

2
推荐指数
1
解决办法
1381
查看次数

如何在Oracle中选择最密集的1分钟

我有时间戳列表tmstmp,这个表包含某些事件的日志.我需要找出在1分钟间隔内发生的最大数量事件.

请仔细阅读!我不是要提取的时间戳极小部分,总结如下:

select count(*), TO_CHAR(tmstmp,'MI') 
   from log_table 
     group by TO_CHAR(tmstmp,'MI')
     order by TO_CHAR(tmstmp,'MI');
Run Code Online (Sandbox Code Playgroud)

它需要取第一条记录,然后向前看,直到它从1号和1号记录中选择所有记录,然后取2号并做同样的事情.

结果必须有一个记录集(总和,开始时间戳).

任何人都有一个代码片段并且愿意分享吗?

sql oracle oracle11g

2
推荐指数
1
解决办法
77
查看次数

Big-O 表示法中的嵌套循环?

也许我对 Big-O 符号的理解有误(我已经有一段时间没有学习算法课程了),但以下内容对我来说从来没有太大意义:

这将被视为 O(n^2):

for (int i = 0; i < num_1; i++)
{
    for (int j = 0; j < num_2; j++) 
    {
        cout << i << " " << j << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

这将被视为 O(n):

for (int z = 0; z < num_3; z++) { cout << z << endl; }
Run Code Online (Sandbox Code Playgroud)

我的问题是当涉及到实际条款时。让我们假设num_1 = 10; num_2 = 20; num_3 = 1000;。在这种情况下,第一个示例 O(n^2) 将比 O(n) 第二个示例运行的内部迭代少得多。

更笼统地说:num_3 > num_1 * num_2那么 O(n^2) 片段的效果小于 O(n) …

theory big-o

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

Ruby新手 - 在IRB中循环问题

所以几天前我决定尝试学习Ruby,实际上它已经很顺利了.我一直忙于在IRB中徘徊,直到我找到一个非常重要的程序来编码来测试我的知识.

然而,今天我遇到了一个关于While循环的意外问题,我希望你们都可以帮我解决这个问题:

irb(main):001:0> i = 0
=> 0
irb(main):002:0> while (i < 1000)
irb(main):003:1> i++
irb(main):004:1* end
SyntaxError: (irb):4: syntax error, unexpected keyword_end
        from C:/WINDOWS/Ruby/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

为什么这不正常,因为我期待它?根据这个网站我的结构是正确的,所以我在这里缺少什么?

我在Windows XP下运行Ruby 1.9.2,如果有任何帮助的话.

ruby

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

标签 统计

bash ×2

c++ ×2

perl ×2

big-o ×1

c ×1

getline ×1

heredoc ×1

javascript ×1

linux ×1

math ×1

multithreading ×1

oracle ×1

oracle11g ×1

parsing ×1

posix ×1

ruby ×1

sql ×1

text-parsing ×1

theory ×1