小编int*_*jay的帖子

在哪里可以找到有关D*或D*Lite寻路算法的信息?

有链接到d*一些文件在这里,但他们有点太数学对我来说.有没有关于D*/D*Lite的信息更适合初学者?

algorithm path-finding d-star

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

T(n)= T(n-1)+ 1/n的渐近复杂度

存在具有时间复杂度的算法

    T(n)=T(n-1)+1/n if n>1
        =1          otherwise
Run Code Online (Sandbox Code Playgroud)

我正在解决它的渐近复杂性,并将命令作为'n',但给出的答案是'log n'.这是对的吗?如果是log n,那么为什么呢?

algorithm math recursion

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

总计一个表的每3行

我有以下查询来计算每分钟的所有数据.

$sql= "SELECT COUNT(*) AS count, date_trunc('minute', date) AS momento
FROM p WHERE fk_id_b=$id_b GROUP BY date_trunc('minute', date) 
ORDER BY momento ASC";
Run Code Online (Sandbox Code Playgroud)

我需要做的是获得每行的计数总和以及过去2分钟的计数.

For example with the result of the $sql query above
|-------date---------|----count----|
|2012-06-21 05:20:00 |      12     |
|2012-06-21 05:21:00 |      14     |
|2012-06-21 05:22:00 |      10     |
|2012-06-21 05:23:00 |      20     |
|2012-06-21 05:24:00 |      25     |
|2012-06-21 05:25:00 |      30     |
|2012-06-21 05:26:00 |      10     |  

I want this result:

|-------date---------|----count----|
|2012-06-21 05:20:00 |      12     |   
|2012-06-21 …
Run Code Online (Sandbox Code Playgroud)

postgresql group-by sum rows window-functions

7
推荐指数
3
解决办法
5343
查看次数

clang 3.6倍表达左/右

我正在使用clang 3.6' - std = c ++ 1z'来尝试折叠表达式,但是我不太了解.我正在测试的功能是:

auto minus = [](auto... args) { return (args - ...); };
...
std::cout << minus(10, 3, 2) << std::endl;
Run Code Online (Sandbox Code Playgroud)

根据n4191,我期待它作为左折叠扩展

(10 - 3) - 2
Run Code Online (Sandbox Code Playgroud)

然而,给出结果5,结果是9,这似乎是正确的折叠扩展,即

10 - (3 - 2)
Run Code Online (Sandbox Code Playgroud)

我错过了什么或误解了n4191吗?谢谢

c++ clang clang++ c++17

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

为什么shared_ptr可以通过加入"受保护的访问权限"来访问

我用shared_ptr做了一些测试,我想不出下面的事情.我刚开始学习boost库.有人可以告诉我原因吗?

#include <boost\shared_ptr.hpp>
#include <iostream>

class A 
{
public:  
    virtual void sing()
    {
        std::cout<<"A";
    }
protected:  virtual ~A() {};

};

class B : public A 
{
public:  
    virtual void sing() 
    {   
        std::cout << "B"; 
    }
    virtual ~B() {};
};


int foo()
{   
    boost::shared_ptr<A> pa(new B());
    pa->sing();

    delete static_cast<B*>(pa.get());

    delete pa.get(); //this line has a problem error C2248: “A::~A”: can't access protected memmber(declared in class“A")   
    return 0;
}

int main()
{
    foo();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是当该行被注释掉时它可以被编译.当然,这并不意味着shared_ptr将删除内部维护的主函数指针,就像我所做的那样.返回pa.get()的指针与内部维护的指针之间是否有任何区别?

c++ shared-ptr

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

用于C++运算符重载的Python绑定

我有一个类似于以下的类:

class A {
    vector<double> v;
    double& x(int i) { return v[2*i]; }
    double& y(int i) { return v[2*i+1]; }
    double x(int i) const { return v[2*i]; }
    double y(int i) const { return v[2*i+1]; }
}
Run Code Online (Sandbox Code Playgroud)

我想让以下Python代码工作:

a = A()
a.x[0] = 4
print a.x[0]
Run Code Online (Sandbox Code Playgroud)

我在想的__setattr____getattr__,但如果它的工作原理不清楚.另一种方法是实现以下Python:

a = A()
a['x', 0] = 4
print a['x', 0]
Run Code Online (Sandbox Code Playgroud)

不如前一个好,但可能更容易实现(用__slice__?).

PS.我正在使用sip进行绑定.

谢谢.

c++ python reference python-sip

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

单击元素时,一个模态呈现不同的模板

我有不同的按钮(一个用于创建'sprint',另一个用于创建注释等).执行这些任务的表单将附加到单击不同按钮时显示的模式对话框.

这些是流量:

点击"Sprint"按钮>追加"Sprint"表格>显示模态

那么如果你点击其他按钮:

点击"评论"按钮>空模态内容>追加"评论"表格>显示模态

目前,不同的内容以字符串形式保存,并在单击按钮时附加到模式.

但现在我正在使用Backbone和Underscore模板,我无法弄清楚如何做同样的事情.我不想在模态中包含所有模板,并根据您单击的按钮显示它们; 我想在点击时追加已经缓存的模板.

有没有办法用Backbone和Underscore做到这一点?

javascript backbone.js underscore.js backbone-views

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

减去排序数据

我有一个排序数组X [k].现在我想找到

在此输入图像描述

我试过这个

    int ans=0;
    for(int i=1;i<=k;i++)
    {
        for(int j=i+1;j<=k;j++)
        {
            ans+=abs(X[i]-X[j]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我使用上面的解决方案得到了正确的答案,但它没有优化,在某些情况下超出了时间限制.是否有任何算法以最小的复杂性实现这一点?

algorithm data-structures

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

为什么修改字符串的代码不起作用?

对于c样式的字符串,如何将字符指针指向的内存地址赋予char?例如,在下面的示例中,我想将num更改为"123456",因此我尝试将p设置为'0'所在的数字,并尝试用'4'覆盖它.谢谢.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char* num = (char*)malloc(100);
    char* p = num;

    num = "123056";

    p = p+3;    //set pointer to where '4' should be
    p = '4';

    printf("%s\n", num );

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

c pointers char segmentation-fault access-violation

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

比较2个一维信号

我有以下问题:随着时间的推移,我有2个信号.它们来自同一个来源,因此它们应该是相同的.我想检查一下他们是不是真的.

并发症:

  • 它们可以用不同的采样率来测量
  • 开始/结束时间不相关.测量不是同时开始并且同时结束.
  • 两个信号之间可能存在时间偏移.

我的想法是用傅里叶变换,卷积和统计方法进行比较.有人可以给我发一些链接,我可以找到更多关于如何处理这个问题的信息吗?

algorithm signal-processing

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