比特币泊松密度转化为代码

时间:2016-08-05 06:20:04

标签: c++ probability bitcoin bitcoind bitcoinj

以下内容来自Bitcoin whitepaper。目标是计算攻击者可能获得幸运的概率(P)并覆盖z个块数,q是控制网络的百分比。

我有兴趣从此向前移动并计算攻击者必须控制的网络百分比,以便在给定成功概率P的情况下回滚x块。

这可能还是我在想这个奇怪的事情?

我如何在代码中代表q代替求解?

    Converting to C code...
    #include <math.h>
    double AttackerSuccessProbability(double q, int z)
    {
       double p = 1.0 - q;
       double lambda = z * (q / p);
       double sum = 1.0;
       int i, k;
       for (k = 0; k <= z; k++) {
             double poisson = exp(-lambda);
             for (i = 1; i <= k; i++) {
                     poisson *= lambda / i;
                     sum -= poisson * (1 - pow(q / p, z - k));
             }
       return sum;
       }
    }

0 个答案:

没有答案