标签: implementation

实现Barabasi-Albert方法创建无标度网络

我正在尝试实现一种非常简单的优先附加算法来创建无标度网络.它们具有遵循幂律的度分布,即P(k)~k ^ -g,其中g是指数.下面的算法应该产生指数等于3 +/- 0.1的度分布,我的实现并不是指数更接近2.5 +/- 0.1.我显然不是在某处理解某些东西并继续弄错.

我很抱歉,如果这是在错误的地方,我无法决定它是否应该在stackoverflow或maths.stackexchange.com.

The Algorithm:
Input: Number of Nodes N; Minimum degree d >= 1.
Output: scale-free multigraph
G = ({0,....,N-1}, E)
M: array of length 2Nd
for (v=0,...,n-1)
   for (i=0,...,d-1)
      M[2(vd+i)] = v;
      r = random number selected uniformly at random from {0,.....,2(vd+i)};
      M[2(vd+i)+1] = M[r];
   end
end

E = {};
for (i=0,...,nd-1)
   E[i] = {M[2i], M[2i+1]}
end
Run Code Online (Sandbox Code Playgroud)

我在C/C++中的实现:

void SF_LCD(std::vector< std::vector<int> >& graph, int N, int d) {
    if(d < 1 || d …
Run Code Online (Sandbox Code Playgroud)

implementation neural-network

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

Miller-Rabin Primality测试FIPS 186-3实施

我试图根据FIPS 186-3 C.3.1中的描述实施Miller-Rabin素性测试.无论我做什么,我都无法让它发挥作用.说明是非常具体的,我不认为我错过任何东西,但我得到true非素数值.

我做错了什么?

template <typename R, typename S, typename T>
T POW(R base, S exponent, const T mod){
    T result = 1;
    while (exponent){
        if (exponent & 1)
            result = (result * base) % mod;
        exponent >>= 1;
        base = (base * base) % mod;
    }
    return result;
}



// used uint64_t to prevent overflow, but only testing with small numbers for now
bool MillerRabin_FIPS186(uint64_t w, unsigned int iterations = 50){
    srand(time(0));
    unsigned int a = …
Run Code Online (Sandbox Code Playgroud)

c++ math implementation primality-test

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

后台服务Android中的位置监听器

哪种方法更好,直接实现LocationListener这样

public class BackgroundService extends Service implements LocationListener {}
Run Code Online (Sandbox Code Playgroud)

或者通常LocationListener在课堂内宣布?

LocationListener locationListener = new LocationListener() {};
Run Code Online (Sandbox Code Playgroud)

java implementation android locationlistener

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

实现A*算法

所以我在C中实现A*算法.这是程序.

我正在为所有开放节点使用Priority Queue [using array].由于我将有重复的距离,这是多个具有相同距离/优先级的节点,因此在PQ中插入节点时,如果插入节点的父节点具有相同的优先级,我仍然将它们交换,以便我最新输入的成员保持在顶部(或尽可能高),以便我继续遵循特定的方向.另外,在删除时,当我将最顶层的元素与最后一个元素交换时,再次,如果交换的最后一个元素与其中一个子元素相同,那么它将被交换到底部.(我不确定这是否会影响以任何方式).

现在的问题是我有一个100*100矩阵,我有2D阵列的(0,20)到(15,20)的障碍,我正在移动.现在对于一个起始位置(2,2)和结束位置(16,20),我得到一条直线路径,即首先一直向右走,然后向下走到15,然后向右移动一个,我就完成了.

但是,如果我以(2,2)开始并且最后以(12,78)开始,即点被障碍物分开并且路径必须绕过它,我仍然经过(16,20)和我的路径之后(16,20)仍然是直的,但是我的路径(16,20)是曲折的,即我向下走了一段距离,然后向右走了一段距离,然后向下向右走,依此类推,最终达到(16,20)在那之后直奔.

为什么这个zig zag路径为距离的前半部分,我可以做些什么来确保我的路径是直的,因为它是,当我的目的地是(16,20)而不是(12,78).

谢谢.

void findPath(array[ROW][COLUMN],sourceX,sourceY,destX,destY) {
  PQ pq[SIZE];
  int x,y;

  insert(pq,sourceX,sourceY);

  while(!empty(pq)) {
    remove(pq);
    if(removedIsDestination)
        break;                  //Path Found
    insertAdjacent(pq,x,y,destX,destY);
  }
}

void insert(PQ pq[SIZE],element){
  ++sizeOfPQ;
  PQ[sizeOfPQ]==element
  int i=sizeOfPQ;
  while(i>0){
    if(pq[i].priority <= pq[(i-1)/2].priority){
      swapWithParent
      i=(i-1)/2;
    }
    else
      break;
  }
}
Run Code Online (Sandbox Code Playgroud)

c implementation a-star

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

如何在MySQL中实现时态数据

我目前有一个非时间MySQL数据库,需要将其更改为时态MySQL数据库.换句话说,为了报告目的,我需要能够保留随时间对记录所做的更改历史记录.

我实现这一点的第一个想法是简单地在表中插入而不是更新,当我需要选择数据时,只需GROUP BY在某个列上执行并按时间戳排序DESC.

但是,在仔细考虑了一下之后,我意识到这会让事情搞得一团糟,因为每个插入的主键(实际上只是模拟单个记录上的一些更新)会有所不同,从而搞乱任何联系使用主键链接到数据库中的其他记录.

因此,我的下一个想法是继续更新数据库中的主表,但也创建一个新的插入到"审计表"中,它只是更新后的完整记录的副本,然后当我需要报告时时态数据,我可以使用审计表进行查询.

有人可以给我一些指导或链接,如何正确地做到这一点?
谢谢.

mysql database implementation temporal-database

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

MPI实现:MPI_Recv可以从许多MPI_Send接收消息吗?

现在我尝试使用MPI_Send和MPI_Recv在多个进程中传递最佳找到的解决方案.每个流程中找到的最佳解决方案应该传递到控制流程,以便存储所有最佳解决方案并在需要时发送到其他流程.我的问题是如何实现它?例如,一旦进程1找到新的最佳,它就可以调用MPI_Send并将其发送到控制进程.有没有办法让控制过程检测到有消息要接收?每个MPI_Send都需要MPI_Recv吗?期待听取您的专家的意见.谢谢!

谢谢你的建议.我想要做的是让几个工作进程向一个控制进程发送消息.工作流程决定何时发送.控制过程必须检测何时接收.MPI_Proble可以这样做吗?

implementation mpi

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

从其他接口继承的接口的显式 C# 接口实现

考虑以下三个接口:

interface IBaseInterface
{
    event EventHandler SomeEvent;
}

interface IInterface1 : IBaseInterface
{
    ...
}

interface IInterface2 : IBaseInterface
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在考虑以下实现 IInterface1 和 IInterface 2 的类:

class Foo : IInterface1, IInterface2
{
    event EventHandler IInterface1.SomeEvent
    {
        add { ... }
        remove { ... }
    }

    event EventHandler IInterface2.SomeEvent
    {
        add { ... }
        remove { ... }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会导致错误,因为 SomeEvent 不是 IInterface1 或 IInterface2 的一部分,而是 IBaseInterface 的一部分。

Foo 类如何同时实现 IInterface1 和 IInterface2?

c# implementation explicit interface explicit-implementation

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

在Scheme或C++中实现AKS素性测试

我正在阅读关于主要测试算法的文章并找到了AKS素性测试.这个算法可以在Scheme或C++中实现吗?

有没有人尝试过实施AKS测试?

c++ scheme implementation primality-test

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

实现中的构造函数与标头

据我所知,构造函数应该在实现文件中定义,但我只能在一个主文件中找到包含类的示例,而不是拆分为 .h 和 .cpp 文件

我需要知道的是我的以下代码是否以可接受的方式分开。

实体.h:

    using namespace std;

class cEntity {
private:
    /*-----------------------------
    ----------Init Methods---------
    -----------------------------*/
    int *X, *Y;
    int *Height, *Width;

public:
    /*-----------------------------
    ----------Constructor----------
    -----------------------------*/
    cEntity (int,int, int, int);

    /*-----------------------------
    ----------Destructor-----------
    -----------------------------*/
    ~cEntity ();

    /*-----------------------------
    ----------Set Methods----------
    -----------------------------*/

    /*Set X,Y Methods*/
    void setX(int x){*X=x;};
    void setY(int y){*Y=y;};
    void setXY(int x, int y){*X=x; *Y=y;};

    /*Set Height, Width Methods*/
    void setHeight(int x){*Height=x;};
    void setWidth(int x){*Width=x;};
    void setDimensions(int x, int y){*Height=x; *Width=y;};

    /*-----------------------------
    ----------Get Methods----------
    -----------------------------*/

    /*Get X,Y Methods*/
    int …
Run Code Online (Sandbox Code Playgroud)

c++ implementation header

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

LL(1)解析器用堆栈实现:如何构建AST?

我目前正在手工构建解析器.它是LL(1)解析器.目前,它是一个很好的识别器:它的函数解析(List tokens)决定令牌是否是该语言的成员.

现在,我想为该输入构建相应的AST.但是,我知道如何以递归下降的方式实现它(已经做到了).也就是说,对于挑战,我使用经典算法的堆栈实现我的堆栈:

next <- first token of the input
stack <- START_SYMBOL
do {
    top <- stack.pop()
    if (top is a terminal and top == next) {
        next <- next token of the input
    } else if (top is a non terminal and PARSING_TABLE[top, next] exists) {
        stack.push(PARSING_TABLE[top, next]);
    } else {
         return invalid input;
    }
} while (stack is not empty);
return valid input;
Run Code Online (Sandbox Code Playgroud)

其中PARSING_TABLE是LL(1)表.但是,我想知道如何在这样的配置中实现构建AST的部分.我不要求完整的实现,更多的是实现的想法.

谢谢 !

implementation parsing context-free-grammar ll-grammar

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